linear_algebra.free_module.pid
⟷
Mathlib.LinearAlgebra.FreeModule.PID
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
@@ -608,6 +608,10 @@ begin
simp [hi]
end
+instance (F : Type u) [comm_ring F] [algebra F R] (b : basis ι R S) {I : ideal S} (hI : I ≠ ⊥) (i) :
+ module F (R ⧸ ideal.span ({I.smith_coeffs b hI i} : set R)) :=
+by apply_instance -- quotient.module' _
+
end ideal
end smith_normal
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2020 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-/
-import LinearAlgebra.Dimension
+import LinearAlgebra.Dimension.Basic
import LinearAlgebra.FreeModule.Basic
import RingTheory.PrincipalIdealDomain
import RingTheory.Finiteness
@@ -376,7 +376,7 @@ noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι
variable {M}
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (i «expr ∉ » I) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (i «expr ∉ » I) -/
#print Module.basisOfFiniteTypeTorsionFree /-
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -72,7 +72,7 @@ theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodul
rw [Submodule.eq_bot_iff]
intro x hx
refine' b.ext_elem fun i => _
- rw [(eq_bot_iff_generator_eq_zero _).mpr hgen] at hϕ
+ rw [(eq_bot_iff_generator_eq_zero _).mpr hgen] at hϕ
rw [LinearEquiv.map_zero, Finsupp.zero_apply]
exact
(Submodule.eq_bot_iff _).mp (not_bot_lt_iff.1 <| hϕ (Finsupp.lapply i ∘ₗ ↑b.repr)) _
@@ -88,7 +88,7 @@ theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M}
rw [Submodule.eq_bot_iff]
intro x hx
refine' congr_arg coe (show (⟨x, hNO hx⟩ : O) = 0 from b.ext_elem fun i => _)
- rw [(eq_bot_iff_generator_eq_zero _).mpr hgen] at hϕ
+ rw [(eq_bot_iff_generator_eq_zero _).mpr hgen] at hϕ
rw [LinearEquiv.map_zero, Finsupp.zero_apply]
refine' (Submodule.eq_bot_iff _).mp (not_bot_lt_iff.1 <| hϕ (Finsupp.lapply i ∘ₗ ↑b.repr)) _ _
exact (LinearMap.mem_submoduleImage_of_le hNO).mpr ⟨x, hx, rfl⟩
@@ -259,7 +259,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
by
intro c x xM' hc
obtain ⟨⟨x, xM⟩, hx', rfl⟩ := submodule.mem_map.mp xM'
- rw [LinearMap.mem_ker] at hx'
+ rw [LinearMap.mem_ker] at hx'
have hc' : (c • ⟨y', y'M⟩ + ⟨x, xM⟩ : M) = 0 := Subtype.coe_injective hc
simpa only [LinearMap.map_add, LinearMap.map_zero, LinearMap.map_smul, smul_eq_mul, add_zero,
mul_eq_zero, ϕy'_ne_zero, hx', or_false_iff] using congr_arg ϕ hc'
@@ -274,7 +274,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
· refine' Basis.mkFinConsOfLE y yN bN' N'_le_N _ _
· intro c z zN' hc
refine' ay'_ortho_N' c z zN' _
- rwa [← a_smul_y'] at hc
+ rwa [← a_smul_y'] at hc
· intro z zN
obtain ⟨b, hb⟩ : _ ∣ ϕ ⟨z, N_le_M zN⟩ := generator_submodule_image_dvd_of_mem N_le_M ϕ zN
refine' ⟨-b, submodule.mem_map.mpr ⟨⟨_, N.sub_mem zN (N.smul_mem b yN)⟩, _, _⟩⟩
@@ -692,7 +692,7 @@ theorem LinearIndependent.restrict_scalars_algebras {R S M ι : Type _} [CommSem
[AddCommMonoid M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M]
(hinj : Function.Injective (algebraMap R S)) {v : ι → M} (li : LinearIndependent S v) :
LinearIndependent R v :=
- LinearIndependent.restrict_scalars (by rwa [Algebra.algebraMap_eq_smul_one'] at hinj ) li
+ LinearIndependent.restrict_scalars (by rwa [Algebra.algebraMap_eq_smul_one'] at hinj) li
#align linear_independent.restrict_scalars_algebras LinearIndependent.restrict_scalars_algebras
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -382,19 +382,58 @@ variable {M}
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
(hs : span R (range s) = ⊤) [NoZeroSMulDivisors R M] : Σ n : ℕ, Basis (Fin n) R M := by
classical
+ -- We define `N` as the submodule spanned by a maximal linear independent subfamily of `s`
+ have := exists_maximal_independent R s
+ let I : Set ι := this.some
+ obtain
+ ⟨indepI : LinearIndependent R (s ∘ coe : I → M), hI :
+ ∀ (i) (_ : i ∉ I), ∃ a : R, a ≠ 0 ∧ a • s i ∈ span R (s '' I)⟩ :=
+ this.some_spec
+ let N := span R (range <| (s ∘ coe : I → M))
+ -- same as `span R (s '' I)` but more convenient
+ let sI : I → N := fun i => ⟨s i.1, subset_span (mem_range_self i)⟩
+ -- `s` restricted to `I`
+ let sI_basis : Basis I R N
+ -- `s` restricted to `I` is a basis of `N`
+ exact Basis.span indepI
+ -- Our first goal is to build `A ≠ 0` such that `A • M ⊆ N`
+ have exists_a : ∀ i : ι, ∃ a : R, a ≠ 0 ∧ a • s i ∈ N :=
+ by
+ intro i
+ by_cases hi : i ∈ I
+ · use 1, zero_ne_one.symm
+ rw [one_smul]
+ exact subset_span (mem_range_self (⟨i, hi⟩ : I))
+ · simpa [image_eq_range s I] using hI i hi
+ choose a ha ha' using exists_a
+ let A := ∏ i, a i
+ have hA : A ≠ 0 := by
+ rw [Finset.prod_ne_zero_iff]
+ simpa using ha
+ -- `M ≃ A • M` because `M` is torsion free and `A ≠ 0`
+ let φ : M →ₗ[R] M := LinearMap.lsmul R M A
+ have : φ.ker = ⊥ := LinearMap.ker_lsmul hA
+ let ψ : M ≃ₗ[R] φ.range := LinearEquiv.ofInjective φ (linear_map.ker_eq_bot.mp this)
+ have : φ.range ≤ N :=
+ by
+ -- as announced, `A • M ⊆ N`
+ suffices ∀ i, φ (s i) ∈ N
+ by
+ rw [LinearMap.range_eq_map, ← hs, φ.map_span_le]
+ rintro _ ⟨i, rfl⟩; apply this
+ intro i
+ calc
+ (∏ j, a j) • s i = (∏ j in {i}ᶜ, a j) • a i • s i := by
+ rw [Fintype.prod_eq_prod_compl_mul i, mul_smul]
+ _ ∈ N := N.smul_mem _ (ha' i)
+ -- Since a submodule of a free `R`-module is free, we get that `A • M` is free
+ obtain ⟨n, b : Basis (Fin n) R φ.range⟩ := Submodule.basisOfPidOfLE this sI_basis
+ -- hence `M` is free.
+ exact ⟨n, b.map ψ.symm⟩
#align module.basis_of_finite_type_torsion_free Module.basisOfFiniteTypeTorsionFree
-/
#print Module.free_of_finite_type_torsion_free /-
--- We define `N` as the submodule spanned by a maximal linear independent subfamily of `s`
--- same as `span R (s '' I)` but more convenient
--- `s` restricted to `I`
--- `s` restricted to `I` is a basis of `N`
--- Our first goal is to build `A ≠ 0` such that `A • M ⊆ N`
--- `M ≃ A • M` because `M` is torsion free and `A ≠ 0`
--- as announced, `A • M ⊆ N`
--- Since a submodule of a free `R`-module is free, we get that `A • M` is free
--- hence `M` is free.
theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs : span R (range s) = ⊤)
[NoZeroSMulDivisors R M] : Module.Free R M :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -382,58 +382,19 @@ variable {M}
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
(hs : span R (range s) = ⊤) [NoZeroSMulDivisors R M] : Σ n : ℕ, Basis (Fin n) R M := by
classical
- -- We define `N` as the submodule spanned by a maximal linear independent subfamily of `s`
- have := exists_maximal_independent R s
- let I : Set ι := this.some
- obtain
- ⟨indepI : LinearIndependent R (s ∘ coe : I → M), hI :
- ∀ (i) (_ : i ∉ I), ∃ a : R, a ≠ 0 ∧ a • s i ∈ span R (s '' I)⟩ :=
- this.some_spec
- let N := span R (range <| (s ∘ coe : I → M))
- -- same as `span R (s '' I)` but more convenient
- let sI : I → N := fun i => ⟨s i.1, subset_span (mem_range_self i)⟩
- -- `s` restricted to `I`
- let sI_basis : Basis I R N
- -- `s` restricted to `I` is a basis of `N`
- exact Basis.span indepI
- -- Our first goal is to build `A ≠ 0` such that `A • M ⊆ N`
- have exists_a : ∀ i : ι, ∃ a : R, a ≠ 0 ∧ a • s i ∈ N :=
- by
- intro i
- by_cases hi : i ∈ I
- · use 1, zero_ne_one.symm
- rw [one_smul]
- exact subset_span (mem_range_self (⟨i, hi⟩ : I))
- · simpa [image_eq_range s I] using hI i hi
- choose a ha ha' using exists_a
- let A := ∏ i, a i
- have hA : A ≠ 0 := by
- rw [Finset.prod_ne_zero_iff]
- simpa using ha
- -- `M ≃ A • M` because `M` is torsion free and `A ≠ 0`
- let φ : M →ₗ[R] M := LinearMap.lsmul R M A
- have : φ.ker = ⊥ := LinearMap.ker_lsmul hA
- let ψ : M ≃ₗ[R] φ.range := LinearEquiv.ofInjective φ (linear_map.ker_eq_bot.mp this)
- have : φ.range ≤ N :=
- by
- -- as announced, `A • M ⊆ N`
- suffices ∀ i, φ (s i) ∈ N
- by
- rw [LinearMap.range_eq_map, ← hs, φ.map_span_le]
- rintro _ ⟨i, rfl⟩; apply this
- intro i
- calc
- (∏ j, a j) • s i = (∏ j in {i}ᶜ, a j) • a i • s i := by
- rw [Fintype.prod_eq_prod_compl_mul i, mul_smul]
- _ ∈ N := N.smul_mem _ (ha' i)
- -- Since a submodule of a free `R`-module is free, we get that `A • M` is free
- obtain ⟨n, b : Basis (Fin n) R φ.range⟩ := Submodule.basisOfPidOfLE this sI_basis
- -- hence `M` is free.
- exact ⟨n, b.map ψ.symm⟩
#align module.basis_of_finite_type_torsion_free Module.basisOfFiniteTypeTorsionFree
-/
#print Module.free_of_finite_type_torsion_free /-
+-- We define `N` as the submodule spanned by a maximal linear independent subfamily of `s`
+-- same as `span R (s '' I)` but more convenient
+-- `s` restricted to `I`
+-- `s` restricted to `I` is a basis of `N`
+-- Our first goal is to build `A ≠ 0` such that `A • M ⊆ N`
+-- `M ≃ A • M` because `M` is torsion free and `A ≠ 0`
+-- as announced, `A • M ⊆ N`
+-- Since a submodule of a free `R`-module is free, we get that `A • M` is free
+-- hence `M` is free.
theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs : span R (range s) = ⊤)
[NoZeroSMulDivisors R M] : Module.Free R M :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -225,7 +225,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
let y' : O := ∑ i, c i • b'M i
have y'M : y' ∈ M := M.sum_mem fun i _ => M.smul_mem (c i) (b'M i).2
have mk_y' : (⟨y', y'M⟩ : M) = ∑ i, c i • b'M i :=
- Subtype.ext (show y' = M.subtype _ by simp only [LinearMap.map_sum, LinearMap.map_smul]; rfl)
+ Subtype.ext (show y' = M.subtype _ by simp only [map_sum, LinearMap.map_smul]; rfl)
have a_smul_y' : a • y' = y :=
by
refine' congr_arg coe (show (a • ⟨y', y'M⟩ : M) = ⟨y, N_le_M yN⟩ from _)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2020 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-/
-import Mathbin.LinearAlgebra.Dimension
-import Mathbin.LinearAlgebra.FreeModule.Basic
-import Mathbin.RingTheory.PrincipalIdealDomain
-import Mathbin.RingTheory.Finiteness
+import LinearAlgebra.Dimension
+import LinearAlgebra.FreeModule.Basic
+import RingTheory.PrincipalIdealDomain
+import RingTheory.Finiteness
#align_import linear_algebra.free_module.pid from "leanprover-community/mathlib"@"d87199d51218d36a0a42c66c82d147b5a7ff87b3"
@@ -376,7 +376,7 @@ noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι
variable {M}
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » I) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (i «expr ∉ » I) -/
#print Module.basisOfFiniteTypeTorsionFree /-
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -271,7 +271,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
rw [mul_comm, mul_smul, hc]
-- So we can extend a basis for `N'` with `y`
refine' ⟨y'_ortho_M', ay'_ortho_N', fun n' bN' => ⟨_, _⟩⟩
- · refine' Basis.mkFinConsOfLe y yN bN' N'_le_N _ _
+ · refine' Basis.mkFinConsOfLE y yN bN' N'_le_N _ _
· intro c z zN' hc
refine' ay'_ortho_N' c z zN' _
rwa [← a_smul_y'] at hc
@@ -284,7 +284,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
-- And extend a basis for `M'` with `y'`
intro m' hn'm' bM'
refine' ⟨Nat.succ_le_succ hn'm', _, _⟩
- · refine' Basis.mkFinConsOfLe y' y'M bM' M'_le_M y'_ortho_M' _
+ · refine' Basis.mkFinConsOfLE y' y'M bM' M'_le_M y'_ortho_M' _
intro z zM
refine' ⟨-ϕ ⟨z, zM⟩, ⟨⟨z, zM⟩ - ϕ ⟨z, zM⟩ • ⟨y', y'M⟩, linear_map.mem_ker.mpr _, _⟩⟩
· rw [LinearMap.map_sub, LinearMap.map_smul, ϕy'_eq, smul_eq_mul, mul_one, sub_self]
@@ -293,7 +293,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
intro as h
refine' ⟨Fin.cons a as, _⟩
intro i
- rw [Basis.coe_mkFinConsOfLe, Basis.coe_mkFinConsOfLe]
+ rw [Basis.coe_mkFinConsOfLE, Basis.coe_mkFinConsOfLE]
refine' Fin.cases _ (fun i => _) i
· simp only [Fin.cons_zero, Fin.castLE_zero]
exact a_smul_y'.symm
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2020 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-
-! This file was ported from Lean 3 source module linear_algebra.free_module.pid
-! leanprover-community/mathlib commit d87199d51218d36a0a42c66c82d147b5a7ff87b3
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.LinearAlgebra.Dimension
import Mathbin.LinearAlgebra.FreeModule.Basic
import Mathbin.RingTheory.PrincipalIdealDomain
import Mathbin.RingTheory.Finiteness
+#align_import linear_algebra.free_module.pid from "leanprover-community/mathlib"@"d87199d51218d36a0a42c66c82d147b5a7ff87b3"
+
/-! # Free modules over PID
> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
@@ -379,7 +376,7 @@ noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι
variable {M}
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » I) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » I) -/
#print Module.basisOfFiniteTypeTorsionFree /-
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
mathlib commit https://github.com/leanprover-community/mathlib/commit/2fe465deb81bcd7ccafa065bb686888a82f15372
@@ -193,9 +193,9 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
∀ (m') (hn'm' : n' ≤ m') (bM' : Basis (Fin m') R M'),
∃ (hnm : n' + 1 ≤ m' + 1) (bM : Basis (Fin (m' + 1)) R M),
∀ (as : Fin n' → R)
- (h : ∀ i : Fin n', (bN' i : O) = as i • (bM' (Fin.castLE hn'm' i) : O)),
+ (h : ∀ i : Fin n', (bN' i : O) = as i • (bM' (Fin.castLEEmb hn'm' i) : O)),
∃ as' : Fin (n' + 1) → R,
- ∀ i : Fin (n' + 1), (bN i : O) = as' i • (bM (Fin.castLE hnm i) : O) :=
+ ∀ i : Fin (n' + 1), (bN i : O) = as' i • (bM (Fin.castLEEmb hnm i) : O) :=
by
-- Let `ϕ` be a maximal projection of `M` onto `R`, in the sense that there is
-- no `ψ` whose image of `N` is larger than `ϕ`'s image of `N`.
@@ -492,7 +492,7 @@ This is a strengthening of `submodule.basis_of_pid_of_le`.
theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M) (N O : Submodule R M)
(N_le_O : N ≤ O) :
∃ (n o : ℕ) (hno : n ≤ o) (bO : Basis (Fin o) R O) (bN : Basis (Fin n) R N) (a : Fin n → R),
- ∀ i, (bN i : M) = a i • bO (Fin.castLE hno i) :=
+ ∀ i, (bN i : M) = a i • bO (Fin.castLEEmb hno i) :=
by
cases nonempty_fintype ι
revert N
@@ -527,7 +527,7 @@ noncomputable def Submodule.smithNormalFormOfLE [Finite ι] (b : Basis ι R M) (
by
choose n o hno bO bN a snf using N.exists_smith_normal_form_of_le b O N_le_O
refine'
- ⟨o, n, bO, bN.map (comap_subtype_equiv_of_le N_le_O).symm, (Fin.castLE hno).toEmbedding, a,
+ ⟨o, n, bO, bN.map (comap_subtype_equiv_of_le N_le_O).symm, (Fin.castLEEmb hno).toEmbedding, a,
fun i => _⟩
ext
simp only [snf, Basis.map_apply, Submodule.comapSubtypeEquivOfLe_symm_apply,
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -67,6 +67,7 @@ variable {ι : Type _} (b : Basis ι R M)
open Submodule.IsPrincipal Submodule
+#print eq_bot_of_generator_maximal_map_eq_zero /-
theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodule R M}
{ϕ : M →ₗ[R] R} (hϕ : ∀ ψ : M →ₗ[R] R, ¬N.map ϕ < N.map ψ) [(N.map ϕ).IsPrincipal]
(hgen : generator (N.map ϕ) = (0 : R)) : N = ⊥ :=
@@ -80,7 +81,9 @@ theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodul
(Submodule.eq_bot_iff _).mp (not_bot_lt_iff.1 <| hϕ (Finsupp.lapply i ∘ₗ ↑b.repr)) _
⟨x, hx, rfl⟩
#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zero
+-/
+#print eq_bot_of_generator_maximal_submoduleImage_eq_zero /-
theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M} (b : Basis ι R O)
(hNO : N ≤ O) {ϕ : O →ₗ[R] R} (hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
[(ϕ.submoduleImage N).IsPrincipal] (hgen : generator (ϕ.submoduleImage N) = 0) : N = ⊥ :=
@@ -93,6 +96,7 @@ theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M}
refine' (Submodule.eq_bot_iff _).mp (not_bot_lt_iff.1 <| hϕ (Finsupp.lapply i ∘ₗ ↑b.repr)) _ _
exact (LinearMap.mem_submoduleImage_of_le hNO).mpr ⟨x, hx, rfl⟩
#align eq_bot_of_generator_maximal_submodule_image_eq_zero eq_bot_of_generator_maximal_submoduleImage_eq_zero
+-/
end Ring
@@ -126,6 +130,7 @@ variable {M : Type _} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal
+#print generator_maximal_submoduleImage_dvd /-
theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤ O) {ϕ : O →ₗ[R] R}
(hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
[(ϕ.submoduleImage N).IsPrincipal] (y : M) (yN : y ∈ N)
@@ -161,7 +166,9 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
exact ideal.span_singleton_le_span_singleton.mpr d_dvd_left
· exact subset_span (mem_insert _ _)
#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvd
+-/
+#print Submodule.basis_of_pid_aux /-
/-- The induction hypothesis of `submodule.basis_of_pid` and `submodule.smith_normal_form`.
Basically, it says: let `N ≤ M` be a pair of submodules, then we can find a pair of
@@ -295,7 +302,9 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
exact a_smul_y'.symm
· rw [Fin.castLE_succ]; simp only [Fin.cons_succ, coe_of_le, h i]
#align submodule.basis_of_pid_aux Submodule.basis_of_pid_aux
+-/
+#print Submodule.nonempty_basis_of_pid /-
/-- A submodule of a free `R`-module of finite rank is also a free `R`-module of finite rank,
if `R` is a principal ideal domain.
@@ -320,6 +329,7 @@ theorem Submodule.nonempty_basis_of_pid {ι : Type _} [Finite ι] (b : Basis ι
obtain ⟨bN, hbN⟩ := h' n' bN'
exact ⟨n' + 1, ⟨bN⟩⟩
#align submodule.nonempty_basis_of_pid Submodule.nonempty_basis_of_pid
+-/
#print Submodule.basisOfPid /-
/-- A submodule of a free `R`-module of finite rank is also a free `R`-module of finite rank,
@@ -333,6 +343,7 @@ noncomputable def Submodule.basisOfPid {ι : Type _} [Finite ι] (b : Basis ι R
#align submodule.basis_of_pid Submodule.basisOfPid
-/
+#print Submodule.basisOfPid_bot /-
theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
Submodule.basisOfPid b ⊥ = ⟨0, Basis.empty _⟩ :=
by
@@ -341,7 +352,9 @@ theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
obtain rfl : n = 0 := by simpa using fintype.card_eq.mpr ⟨e⟩
exact Sigma.eq rfl (Basis.eq_of_apply_eq <| finZeroElim)
#align submodule.basis_of_pid_bot Submodule.basisOfPid_bot
+-/
+#print Submodule.basisOfPidOfLE /-
/-- A submodule inside a free `R`-submodule of finite rank is also a free `R`-module of finite rank,
if `R` is a principal ideal domain.
@@ -352,7 +365,9 @@ noncomputable def Submodule.basisOfPidOfLE {ι : Type _} [Finite ι] {N O : Subm
let ⟨n, bN'⟩ := Submodule.basisOfPid b (N.comap O.Subtype)
⟨n, bN'.map (Submodule.comapSubtypeEquivOfLe hNO)⟩
#align submodule.basis_of_pid_of_le Submodule.basisOfPidOfLE
+-/
+#print Submodule.basisOfPidOfLESpan /-
/-- A submodule inside the span of a linear independent family is a free `R`-module of finite rank,
if `R` is a principal ideal domain. -/
noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι → M}
@@ -360,10 +375,12 @@ noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι
Σ n : ℕ, Basis (Fin n) R N :=
Submodule.basisOfPidOfLE le (Basis.span hb)
#align submodule.basis_of_pid_of_le_span Submodule.basisOfPidOfLESpan
+-/
variable {M}
/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » I) -/
+#print Module.basisOfFiniteTypeTorsionFree /-
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
(hs : span R (range s) = ⊤) [NoZeroSMulDivisors R M] : Σ n : ℕ, Basis (Fin n) R M := by
@@ -417,7 +434,9 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M
-- hence `M` is free.
exact ⟨n, b.map ψ.symm⟩
#align module.basis_of_finite_type_torsion_free Module.basisOfFiniteTypeTorsionFree
+-/
+#print Module.free_of_finite_type_torsion_free /-
theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs : span R (range s) = ⊤)
[NoZeroSMulDivisors R M] : Module.Free R M :=
by
@@ -425,22 +444,28 @@ theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs :
obtain ⟨n, b⟩ : Σ n, Basis (Fin n) R M := Module.basisOfFiniteTypeTorsionFree hs
exact Module.Free.of_basis b
#align module.free_of_finite_type_torsion_free Module.free_of_finite_type_torsion_free
+-/
+#print Module.basisOfFiniteTypeTorsionFree' /-
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree' [Module.Finite R M]
[NoZeroSMulDivisors R M] : Σ n : ℕ, Basis (Fin n) R M :=
Module.basisOfFiniteTypeTorsionFree Module.Finite.exists_fin.choose_spec.choose_spec
#align module.basis_of_finite_type_torsion_free' Module.basisOfFiniteTypeTorsionFree'
+-/
+#print Module.free_of_finite_type_torsion_free' /-
theorem Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMulDivisors R M] :
Module.Free R M :=
by
obtain ⟨n, b⟩ : Σ n, Basis (Fin n) R M := Module.basisOfFiniteTypeTorsionFree'
exact Module.Free.of_basis b
#align module.free_of_finite_type_torsion_free' Module.free_of_finite_type_torsion_free'
+-/
section SmithNormal
+#print Basis.SmithNormalForm /-
/-- A Smith normal form basis for a submodule `N` of a module `M` consists of
bases for `M` and `N` such that the inclusion map `N → M` can be written as a
(rectangular) matrix with `a` along the diagonal: in Smith normal form. -/
@@ -452,7 +477,9 @@ structure Basis.SmithNormalForm (N : Submodule R M) (ι : Type _) (n : ℕ) wher
a : Fin n → R
snf : ∀ i, (bN i : M) = a i • bM (f i)
#align basis.smith_normal_form Basis.SmithNormalForm
+-/
+#print Submodule.exists_smith_normal_form_of_le /-
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
in Smith normal form.
@@ -483,7 +510,9 @@ theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M)
obtain ⟨as, has⟩ := h'' as' has'
exact ⟨_, _, hmn, bM, bN, as, has⟩
#align submodule.exists_smith_normal_form_of_le Submodule.exists_smith_normal_form_of_le
+-/
+#print Submodule.smithNormalFormOfLE /-
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
in Smith normal form.
@@ -504,7 +533,9 @@ noncomputable def Submodule.smithNormalFormOfLE [Finite ι] (b : Basis ι R M) (
simp only [snf, Basis.map_apply, Submodule.comapSubtypeEquivOfLe_symm_apply,
Submodule.coe_smul_of_tower, RelEmbedding.coe_toEmbedding]
#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLE
+-/
+#print Submodule.smithNormalForm /-
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
in Smith normal form.
@@ -524,11 +555,13 @@ noncomputable def Submodule.smithNormalForm [Finite ι] (b : Basis ι R M) (N :
Submodule.comapSubtypeEquivOfLe_apply_coe, coe_coe, Basis.reindex_apply,
Equiv.toEmbedding_apply, Function.Embedding.trans_apply, Equiv.symm_apply_apply]⟩
#align submodule.smith_normal_form Submodule.smithNormalForm
+-/
section Ideal
variable {S : Type _} [CommRing S] [IsDomain S] [Algebra R S]
+#print Ideal.smithNormalForm /-
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -547,9 +580,11 @@ noncomputable def Ideal.smithNormalForm [Fintype ι] (b : Basis ι R S) (I : Ide
⟨bS, bI.reindex e, e.symm.toEmbedding.trans f, a ∘ e.symm, fun i => by
simp only [snf, Basis.coe_reindex, Function.Embedding.trans_apply, Equiv.toEmbedding_apply]⟩
#align ideal.smith_normal_form Ideal.smithNormalForm
+-/
variable [Finite ι]
+#print Ideal.exists_smith_normal_form /-
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -575,7 +610,9 @@ theorem Ideal.exists_smith_normal_form (b : Basis ι R S) (I : Ideal S) (hI : I
simp only [snf, fe, Basis.map_apply, LinearEquiv.restrictScalars_apply,
Submodule.restrictScalarsEquiv_apply, Basis.coe_reindex]⟩
#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_form
+-/
+#print Ideal.ringBasis /-
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -587,7 +624,9 @@ and `ideal.self_basis_def` for the proof that the inclusion map forms a square d
noncomputable def Ideal.ringBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) : Basis ι R S :=
(Ideal.exists_smith_normal_form b I hI).some
#align ideal.ring_basis Ideal.ringBasis
+-/
+#print Ideal.selfBasis /-
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -599,7 +638,9 @@ and `ideal.self_basis_def` for the proof that the inclusion map forms a square d
noncomputable def Ideal.selfBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) : Basis ι R I :=
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose_spec.some
#align ideal.self_basis Ideal.selfBasis
+-/
+#print Ideal.smithCoeffs /-
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -611,7 +652,9 @@ and `ideal.self_basis_def` for the proof that the inclusion map forms a square d
noncomputable def Ideal.smithCoeffs (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) : ι → R :=
(Ideal.exists_smith_normal_form b I hI).choose_spec.some
#align ideal.smith_coeffs Ideal.smithCoeffs
+-/
+#print Ideal.selfBasis_def /-
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -622,7 +665,9 @@ theorem Ideal.selfBasis_def (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) :
∀ i, (Ideal.selfBasis b I hI i : S) = Ideal.smithCoeffs b I hI i • Ideal.ringBasis b I hI i :=
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose_spec.choose_spec
#align ideal.self_basis_def Ideal.selfBasis_def
+-/
+#print Ideal.smithCoeffs_ne_zero /-
@[simp]
theorem Ideal.smithCoeffs_ne_zero (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) (i) :
Ideal.smithCoeffs b I hI i ≠ 0 := by
@@ -631,6 +676,7 @@ theorem Ideal.smithCoeffs_ne_zero (b : Basis ι R S) (I : Ideal S) (hI : I ≠
refine' Subtype.coe_injective _
simp [hi]
#align ideal.smith_coeffs_ne_zero Ideal.smithCoeffs_ne_zero
+-/
instance (F : Type u) [CommRing F] [Algebra F R] (b : Basis ι R S) {I : Ideal S} (hI : I ≠ ⊥) (i) :
Module F (R ⧸ Ideal.span ({I.smithCoeffs b hI i} : Set R)) := by infer_instance
@@ -642,6 +688,7 @@ end SmithNormal
end PrincipalIdealDomain
+#print LinearIndependent.restrict_scalars_algebras /-
/-- A set of linearly independent vectors in a module `M` over a semiring `S` is also linearly
independent over a subring `R` of `K`. -/
theorem LinearIndependent.restrict_scalars_algebras {R S M ι : Type _} [CommSemiring R] [Semiring S]
@@ -650,4 +697,5 @@ theorem LinearIndependent.restrict_scalars_algebras {R S M ι : Type _} [CommSem
LinearIndependent R v :=
LinearIndependent.restrict_scalars (by rwa [Algebra.algebraMap_eq_smul_one'] at hinj ) li
#align linear_independent.restrict_scalars_algebras LinearIndependent.restrict_scalars_algebras
+-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -236,8 +236,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
a • ϕ ⟨y', y'M⟩ = ϕ ⟨a • y', _⟩ := (ϕ.map_smul a ⟨y', y'M⟩).symm
_ = ϕ ⟨y, N_le_M yN⟩ := by simp only [a_smul_y']
_ = a := ϕy_eq
- _ = a * 1 := (mul_one a).symm
- )
+ _ = a * 1 := (mul_one a).symm)
have ϕy'_ne_zero : ϕ ⟨y', y'M⟩ ≠ 0 := by simpa only [ϕy'_eq] using one_ne_zero
-- `M' := ker (ϕ : M → R)` is smaller than `M` and `N' := ker (ϕ : N → R)` is smaller than `N`.
let M' : Submodule R O := ϕ.ker.map M.subtype
@@ -413,7 +412,6 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M
(∏ j, a j) • s i = (∏ j in {i}ᶜ, a j) • a i • s i := by
rw [Fintype.prod_eq_prod_compl_mul i, mul_smul]
_ ∈ N := N.smul_mem _ (ha' i)
-
-- Since a submodule of a free `R`-module is free, we get that `A • M` is free
obtain ⟨n, b : Basis (Fin n) R φ.range⟩ := Submodule.basisOfPidOfLE this sI_basis
-- hence `M` is free.
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -364,7 +364,7 @@ noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι
variable {M}
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » I) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » I) -/
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
(hs : span R (range s) = ⊤) [NoZeroSMulDivisors R M] : Σ n : ℕ, Basis (Fin n) R M := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -369,55 +369,55 @@ variable {M}
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
(hs : span R (range s) = ⊤) [NoZeroSMulDivisors R M] : Σ n : ℕ, Basis (Fin n) R M := by
classical
- -- We define `N` as the submodule spanned by a maximal linear independent subfamily of `s`
- have := exists_maximal_independent R s
- let I : Set ι := this.some
- obtain
- ⟨indepI : LinearIndependent R (s ∘ coe : I → M), hI :
- ∀ (i) (_ : i ∉ I), ∃ a : R, a ≠ 0 ∧ a • s i ∈ span R (s '' I)⟩ :=
- this.some_spec
- let N := span R (range <| (s ∘ coe : I → M))
- -- same as `span R (s '' I)` but more convenient
- let sI : I → N := fun i => ⟨s i.1, subset_span (mem_range_self i)⟩
- -- `s` restricted to `I`
- let sI_basis : Basis I R N
- -- `s` restricted to `I` is a basis of `N`
- exact Basis.span indepI
- -- Our first goal is to build `A ≠ 0` such that `A • M ⊆ N`
- have exists_a : ∀ i : ι, ∃ a : R, a ≠ 0 ∧ a • s i ∈ N :=
- by
- intro i
- by_cases hi : i ∈ I
- · use 1, zero_ne_one.symm
- rw [one_smul]
- exact subset_span (mem_range_self (⟨i, hi⟩ : I))
- · simpa [image_eq_range s I] using hI i hi
- choose a ha ha' using exists_a
- let A := ∏ i, a i
- have hA : A ≠ 0 := by
- rw [Finset.prod_ne_zero_iff]
- simpa using ha
- -- `M ≃ A • M` because `M` is torsion free and `A ≠ 0`
- let φ : M →ₗ[R] M := LinearMap.lsmul R M A
- have : φ.ker = ⊥ := LinearMap.ker_lsmul hA
- let ψ : M ≃ₗ[R] φ.range := LinearEquiv.ofInjective φ (linear_map.ker_eq_bot.mp this)
- have : φ.range ≤ N :=
+ -- We define `N` as the submodule spanned by a maximal linear independent subfamily of `s`
+ have := exists_maximal_independent R s
+ let I : Set ι := this.some
+ obtain
+ ⟨indepI : LinearIndependent R (s ∘ coe : I → M), hI :
+ ∀ (i) (_ : i ∉ I), ∃ a : R, a ≠ 0 ∧ a • s i ∈ span R (s '' I)⟩ :=
+ this.some_spec
+ let N := span R (range <| (s ∘ coe : I → M))
+ -- same as `span R (s '' I)` but more convenient
+ let sI : I → N := fun i => ⟨s i.1, subset_span (mem_range_self i)⟩
+ -- `s` restricted to `I`
+ let sI_basis : Basis I R N
+ -- `s` restricted to `I` is a basis of `N`
+ exact Basis.span indepI
+ -- Our first goal is to build `A ≠ 0` such that `A • M ⊆ N`
+ have exists_a : ∀ i : ι, ∃ a : R, a ≠ 0 ∧ a • s i ∈ N :=
+ by
+ intro i
+ by_cases hi : i ∈ I
+ · use 1, zero_ne_one.symm
+ rw [one_smul]
+ exact subset_span (mem_range_self (⟨i, hi⟩ : I))
+ · simpa [image_eq_range s I] using hI i hi
+ choose a ha ha' using exists_a
+ let A := ∏ i, a i
+ have hA : A ≠ 0 := by
+ rw [Finset.prod_ne_zero_iff]
+ simpa using ha
+ -- `M ≃ A • M` because `M` is torsion free and `A ≠ 0`
+ let φ : M →ₗ[R] M := LinearMap.lsmul R M A
+ have : φ.ker = ⊥ := LinearMap.ker_lsmul hA
+ let ψ : M ≃ₗ[R] φ.range := LinearEquiv.ofInjective φ (linear_map.ker_eq_bot.mp this)
+ have : φ.range ≤ N :=
+ by
+ -- as announced, `A • M ⊆ N`
+ suffices ∀ i, φ (s i) ∈ N
by
- -- as announced, `A • M ⊆ N`
- suffices ∀ i, φ (s i) ∈ N
- by
- rw [LinearMap.range_eq_map, ← hs, φ.map_span_le]
- rintro _ ⟨i, rfl⟩; apply this
- intro i
- calc
- (∏ j, a j) • s i = (∏ j in {i}ᶜ, a j) • a i • s i := by
- rw [Fintype.prod_eq_prod_compl_mul i, mul_smul]
- _ ∈ N := N.smul_mem _ (ha' i)
-
- -- Since a submodule of a free `R`-module is free, we get that `A • M` is free
- obtain ⟨n, b : Basis (Fin n) R φ.range⟩ := Submodule.basisOfPidOfLE this sI_basis
- -- hence `M` is free.
- exact ⟨n, b.map ψ.symm⟩
+ rw [LinearMap.range_eq_map, ← hs, φ.map_span_le]
+ rintro _ ⟨i, rfl⟩; apply this
+ intro i
+ calc
+ (∏ j, a j) • s i = (∏ j in {i}ᶜ, a j) • a i • s i := by
+ rw [Fintype.prod_eq_prod_compl_mul i, mul_smul]
+ _ ∈ N := N.smul_mem _ (ha' i)
+
+ -- Since a submodule of a free `R`-module is free, we get that `A • M` is free
+ obtain ⟨n, b : Basis (Fin n) R φ.range⟩ := Submodule.basisOfPidOfLE this sI_basis
+ -- hence `M` is free.
+ exact ⟨n, b.map ψ.symm⟩
#align module.basis_of_finite_type_torsion_free Module.basisOfFiniteTypeTorsionFree
theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs : span R (range s) = ⊤)
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -74,7 +74,7 @@ theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodul
rw [Submodule.eq_bot_iff]
intro x hx
refine' b.ext_elem fun i => _
- rw [(eq_bot_iff_generator_eq_zero _).mpr hgen] at hϕ
+ rw [(eq_bot_iff_generator_eq_zero _).mpr hgen] at hϕ
rw [LinearEquiv.map_zero, Finsupp.zero_apply]
exact
(Submodule.eq_bot_iff _).mp (not_bot_lt_iff.1 <| hϕ (Finsupp.lapply i ∘ₗ ↑b.repr)) _
@@ -88,7 +88,7 @@ theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M}
rw [Submodule.eq_bot_iff]
intro x hx
refine' congr_arg coe (show (⟨x, hNO hx⟩ : O) = 0 from b.ext_elem fun i => _)
- rw [(eq_bot_iff_generator_eq_zero _).mpr hgen] at hϕ
+ rw [(eq_bot_iff_generator_eq_zero _).mpr hgen] at hϕ
rw [LinearEquiv.map_zero, Finsupp.zero_apply]
refine' (Submodule.eq_bot_iff _).mp (not_bot_lt_iff.1 <| hϕ (Finsupp.lapply i ∘ₗ ↑b.repr)) _ _
exact (LinearMap.mem_submoduleImage_of_le hNO).mpr ⟨x, hx, rfl⟩
@@ -176,16 +176,15 @@ but must also feed in a basis for `M` using `basis_of_pid` to keep the induction
theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Module R O]
(M N : Submodule R O) (b'M : Basis ι R M) (N_bot : N ≠ ⊥) (N_le_M : N ≤ M) :
∃ y ∈ M,
- ∃ (a : R)(hay : a • y ∈ N),
+ ∃ (a : R) (hay : a • y ∈ N),
∃ M' ≤ M,
∃ N' ≤ N,
- ∃ (N'_le_M' : N' ≤ M')(y_ortho_M' :
- ∀ (c : R) (z : O), z ∈ M' → c • y + z = 0 → c = 0)(ay_ortho_N' :
- ∀ (c : R) (z : O), z ∈ N' → c • a • y + z = 0 → c = 0),
+ ∃ (N'_le_M' : N' ≤ M') (y_ortho_M' : ∀ (c : R) (z : O), z ∈ M' → c • y + z = 0 → c = 0)
+ (ay_ortho_N' : ∀ (c : R) (z : O), z ∈ N' → c • a • y + z = 0 → c = 0),
∀ (n') (bN' : Basis (Fin n') R N'),
∃ bN : Basis (Fin (n' + 1)) R N,
∀ (m') (hn'm' : n' ≤ m') (bM' : Basis (Fin m') R M'),
- ∃ (hnm : n' + 1 ≤ m' + 1)(bM : Basis (Fin (m' + 1)) R M),
+ ∃ (hnm : n' + 1 ≤ m' + 1) (bM : Basis (Fin (m' + 1)) R M),
∀ (as : Fin n' → R)
(h : ∀ i : Fin n', (bN' i : O) = as i • (bM' (Fin.castLE hn'm' i) : O)),
∃ as' : Fin (n' + 1) → R,
@@ -246,7 +245,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
have M'_le_M : M' ≤ M := M.map_subtype_le ϕ.ker
have N'_le_M' : N' ≤ M' := by
intro x hx
- simp only [mem_map, LinearMap.mem_ker] at hx⊢
+ simp only [mem_map, LinearMap.mem_ker] at hx ⊢
obtain ⟨⟨x, xN⟩, hx, rfl⟩ := hx
exact ⟨⟨x, N_le_M xN⟩, hx, rfl⟩
have N'_le_N : N' ≤ N := N.map_subtype_le (ϕ.comp (of_le N_le_M)).ker
@@ -257,7 +256,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
by
intro c x xM' hc
obtain ⟨⟨x, xM⟩, hx', rfl⟩ := submodule.mem_map.mp xM'
- rw [LinearMap.mem_ker] at hx'
+ rw [LinearMap.mem_ker] at hx'
have hc' : (c • ⟨y', y'M⟩ + ⟨x, xM⟩ : M) = 0 := Subtype.coe_injective hc
simpa only [LinearMap.map_add, LinearMap.map_zero, LinearMap.map_smul, smul_eq_mul, add_zero,
mul_eq_zero, ϕy'_ne_zero, hx', or_false_iff] using congr_arg ϕ hc'
@@ -272,7 +271,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
· refine' Basis.mkFinConsOfLe y yN bN' N'_le_N _ _
· intro c z zN' hc
refine' ay'_ortho_N' c z zN' _
- rwa [← a_smul_y'] at hc
+ rwa [← a_smul_y'] at hc
· intro z zN
obtain ⟨b, hb⟩ : _ ∣ ϕ ⟨z, N_le_M zN⟩ := generator_submodule_image_dvd_of_mem N_le_M ϕ zN
refine' ⟨-b, submodule.mem_map.mpr ⟨⟨_, N.sub_mem zN (N.smul_mem b yN)⟩, _, _⟩⟩
@@ -330,7 +329,7 @@ if `R` is a principal ideal domain.
See also the stronger version `submodule.smith_normal_form`.
-/
noncomputable def Submodule.basisOfPid {ι : Type _} [Finite ι] (b : Basis ι R M)
- (N : Submodule R M) : Σn : ℕ, Basis (Fin n) R N :=
+ (N : Submodule R M) : Σ n : ℕ, Basis (Fin n) R N :=
⟨_, (N.nonempty_basis_of_pid b).choose_spec.some⟩
#align submodule.basis_of_pid Submodule.basisOfPid
-/
@@ -350,7 +349,7 @@ if `R` is a principal ideal domain.
See also the stronger version `submodule.smith_normal_form_of_le`.
-/
noncomputable def Submodule.basisOfPidOfLE {ι : Type _} [Finite ι] {N O : Submodule R M}
- (hNO : N ≤ O) (b : Basis ι R O) : Σn : ℕ, Basis (Fin n) R N :=
+ (hNO : N ≤ O) (b : Basis ι R O) : Σ n : ℕ, Basis (Fin n) R N :=
let ⟨n, bN'⟩ := Submodule.basisOfPid b (N.comap O.Subtype)
⟨n, bN'.map (Submodule.comapSubtypeEquivOfLe hNO)⟩
#align submodule.basis_of_pid_of_le Submodule.basisOfPidOfLE
@@ -359,7 +358,7 @@ noncomputable def Submodule.basisOfPidOfLE {ι : Type _} [Finite ι] {N O : Subm
if `R` is a principal ideal domain. -/
noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι → M}
(hb : LinearIndependent R b) {N : Submodule R M} (le : N ≤ Submodule.span R (Set.range b)) :
- Σn : ℕ, Basis (Fin n) R N :=
+ Σ n : ℕ, Basis (Fin n) R N :=
Submodule.basisOfPidOfLE le (Basis.span hb)
#align submodule.basis_of_pid_of_le_span Submodule.basisOfPidOfLESpan
@@ -368,7 +367,7 @@ variable {M}
/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » I) -/
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
- (hs : span R (range s) = ⊤) [NoZeroSMulDivisors R M] : Σn : ℕ, Basis (Fin n) R M := by
+ (hs : span R (range s) = ⊤) [NoZeroSMulDivisors R M] : Σ n : ℕ, Basis (Fin n) R M := by
classical
-- We define `N` as the submodule spanned by a maximal linear independent subfamily of `s`
have := exists_maximal_independent R s
@@ -425,20 +424,20 @@ theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs :
[NoZeroSMulDivisors R M] : Module.Free R M :=
by
cases nonempty_fintype ι
- obtain ⟨n, b⟩ : Σn, Basis (Fin n) R M := Module.basisOfFiniteTypeTorsionFree hs
+ obtain ⟨n, b⟩ : Σ n, Basis (Fin n) R M := Module.basisOfFiniteTypeTorsionFree hs
exact Module.Free.of_basis b
#align module.free_of_finite_type_torsion_free Module.free_of_finite_type_torsion_free
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree' [Module.Finite R M]
- [NoZeroSMulDivisors R M] : Σn : ℕ, Basis (Fin n) R M :=
+ [NoZeroSMulDivisors R M] : Σ n : ℕ, Basis (Fin n) R M :=
Module.basisOfFiniteTypeTorsionFree Module.Finite.exists_fin.choose_spec.choose_spec
#align module.basis_of_finite_type_torsion_free' Module.basisOfFiniteTypeTorsionFree'
theorem Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMulDivisors R M] :
Module.Free R M :=
by
- obtain ⟨n, b⟩ : Σn, Basis (Fin n) R M := Module.basisOfFiniteTypeTorsionFree'
+ obtain ⟨n, b⟩ : Σ n, Basis (Fin n) R M := Module.basisOfFiniteTypeTorsionFree'
exact Module.Free.of_basis b
#align module.free_of_finite_type_torsion_free' Module.free_of_finite_type_torsion_free'
@@ -467,7 +466,7 @@ This is a strengthening of `submodule.basis_of_pid_of_le`.
-/
theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M) (N O : Submodule R M)
(N_le_O : N ≤ O) :
- ∃ (n o : ℕ)(hno : n ≤ o)(bO : Basis (Fin o) R O)(bN : Basis (Fin n) R N)(a : Fin n → R),
+ ∃ (n o : ℕ) (hno : n ≤ o) (bO : Basis (Fin o) R O) (bN : Basis (Fin n) R N) (a : Fin n → R),
∀ i, (bN i : M) = a i • bO (Fin.castLE hno i) :=
by
cases nonempty_fintype ι
@@ -497,7 +496,7 @@ need to map `N` into a submodule of `O`.
This is a strengthening of `submodule.basis_of_pid_of_le`.
-/
noncomputable def Submodule.smithNormalFormOfLE [Finite ι] (b : Basis ι R M) (N O : Submodule R M)
- (N_le_O : N ≤ O) : Σo n : ℕ, Basis.SmithNormalForm (N.comap O.Subtype) (Fin o) n :=
+ (N_le_O : N ≤ O) : Σ o n : ℕ, Basis.SmithNormalForm (N.comap O.Subtype) (Fin o) n :=
by
choose n o hno bO bN a snf using N.exists_smith_normal_form_of_le b O N_le_O
refine'
@@ -518,7 +517,7 @@ See also `ideal.smith_normal_form`, which moreover proves that the dimension of
an ideal is the same as the dimension of the whole ring.
-/
noncomputable def Submodule.smithNormalForm [Finite ι] (b : Basis ι R M) (N : Submodule R M) :
- Σn : ℕ, Basis.SmithNormalForm N ι n :=
+ Σ n : ℕ, Basis.SmithNormalForm N ι n :=
let ⟨m, n, bM, bN, f, a, snf⟩ := N.smithNormalFormOfLE b ⊤ le_top
let bM' := bM.map (LinearEquiv.ofTop _ rfl)
let e := bM'.indexEquiv b
@@ -565,7 +564,7 @@ The definitions `ideal.ring_basis`, `ideal.self_basis`, `ideal.smith_coeffs` are
choices of values for this existential quantifier.
-/
theorem Ideal.exists_smith_normal_form (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) :
- ∃ (b' : Basis ι R S)(a : ι → R)(ab' : Basis ι R I), ∀ i, (ab' i : S) = a i • b' i := by
+ ∃ (b' : Basis ι R S) (a : ι → R) (ab' : Basis ι R I), ∀ i, (ab' i : S) = a i • b' i := by
cases nonempty_fintype ι <;>
exact
let ⟨bS, bI, f, a, snf⟩ := I.smith_normal_form b hI
@@ -651,6 +650,6 @@ theorem LinearIndependent.restrict_scalars_algebras {R S M ι : Type _} [CommSem
[AddCommMonoid M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M]
(hinj : Function.Injective (algebraMap R S)) {v : ι → M} (li : LinearIndependent S v) :
LinearIndependent R v :=
- LinearIndependent.restrict_scalars (by rwa [Algebra.algebraMap_eq_smul_one'] at hinj) li
+ LinearIndependent.restrict_scalars (by rwa [Algebra.algebraMap_eq_smul_one'] at hinj ) li
#align linear_independent.restrict_scalars_algebras LinearIndependent.restrict_scalars_algebras
mathlib commit https://github.com/leanprover-community/mathlib/commit/88a563b158f59f2983cfad685664da95502e8cdd
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module linear_algebra.free_module.pid
-! leanprover-community/mathlib commit 86d1873c01a723aba6788f0b9051ae3d23b4c1c3
+! leanprover-community/mathlib commit d87199d51218d36a0a42c66c82d147b5a7ff87b3
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -635,6 +635,10 @@ theorem Ideal.smithCoeffs_ne_zero (b : Basis ι R S) (I : Ideal S) (hI : I ≠
simp [hi]
#align ideal.smith_coeffs_ne_zero Ideal.smithCoeffs_ne_zero
+instance (F : Type u) [CommRing F] [Algebra F R] (b : Basis ι R S) {I : Ideal S} (hI : I ≠ ⊥) (i) :
+ Module F (R ⧸ Ideal.span ({I.smithCoeffs b hI i} : Set R)) := by infer_instance
+
+-- quotient.module' _
end Ideal
end SmithNormal
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -55,7 +55,7 @@ free module, finitely generated module, rank, structure theorem
-/
-open BigOperators
+open scoped BigOperators
universe u v
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -67,9 +67,6 @@ variable {ι : Type _} (b : Basis ι R M)
open Submodule.IsPrincipal Submodule
-/- warning: eq_bot_of_generator_maximal_map_eq_zero -> eq_bot_of_generator_maximal_map_eq_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zeroₓ'. -/
theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodule R M}
{ϕ : M →ₗ[R] R} (hϕ : ∀ ψ : M →ₗ[R] R, ¬N.map ϕ < N.map ψ) [(N.map ϕ).IsPrincipal]
(hgen : generator (N.map ϕ) = (0 : R)) : N = ⊥ :=
@@ -84,9 +81,6 @@ theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodul
⟨x, hx, rfl⟩
#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zero
-/- warning: eq_bot_of_generator_maximal_submodule_image_eq_zero -> eq_bot_of_generator_maximal_submoduleImage_eq_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_submodule_image_eq_zero eq_bot_of_generator_maximal_submoduleImage_eq_zeroₓ'. -/
theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M} (b : Basis ι R O)
(hNO : N ≤ O) {ϕ : O →ₗ[R] R} (hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
[(ϕ.submoduleImage N).IsPrincipal] (hgen : generator (ϕ.submoduleImage N) = 0) : N = ⊥ :=
@@ -132,9 +126,6 @@ variable {M : Type _} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal
-/- warning: generator_maximal_submodule_image_dvd -> generator_maximal_submoduleImage_dvd is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvdₓ'. -/
theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤ O) {ϕ : O →ₗ[R] R}
(hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
[(ϕ.submoduleImage N).IsPrincipal] (y : M) (yN : y ∈ N)
@@ -171,9 +162,6 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
· exact subset_span (mem_insert _ _)
#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvd
-/- warning: submodule.basis_of_pid_aux -> Submodule.basis_of_pid_aux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_aux Submodule.basis_of_pid_auxₓ'. -/
/-- The induction hypothesis of `submodule.basis_of_pid` and `submodule.smith_normal_form`.
Basically, it says: let `N ≤ M` be a pair of submodules, then we can find a pair of
@@ -310,9 +298,6 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
· rw [Fin.castLE_succ]; simp only [Fin.cons_succ, coe_of_le, h i]
#align submodule.basis_of_pid_aux Submodule.basis_of_pid_aux
-/- warning: submodule.nonempty_basis_of_pid -> Submodule.nonempty_basis_of_pid is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.nonempty_basis_of_pid Submodule.nonempty_basis_of_pidₓ'. -/
/-- A submodule of a free `R`-module of finite rank is also a free `R`-module of finite rank,
if `R` is a principal ideal domain.
@@ -350,9 +335,6 @@ noncomputable def Submodule.basisOfPid {ι : Type _} [Finite ι] (b : Basis ι R
#align submodule.basis_of_pid Submodule.basisOfPid
-/
-/- warning: submodule.basis_of_pid_bot -> Submodule.basisOfPid_bot is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_bot Submodule.basisOfPid_botₓ'. -/
theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
Submodule.basisOfPid b ⊥ = ⟨0, Basis.empty _⟩ :=
by
@@ -362,9 +344,6 @@ theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
exact Sigma.eq rfl (Basis.eq_of_apply_eq <| finZeroElim)
#align submodule.basis_of_pid_bot Submodule.basisOfPid_bot
-/- warning: submodule.basis_of_pid_of_le -> Submodule.basisOfPidOfLE is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_of_le Submodule.basisOfPidOfLEₓ'. -/
/-- A submodule inside a free `R`-submodule of finite rank is also a free `R`-module of finite rank,
if `R` is a principal ideal domain.
@@ -376,9 +355,6 @@ noncomputable def Submodule.basisOfPidOfLE {ι : Type _} [Finite ι] {N O : Subm
⟨n, bN'.map (Submodule.comapSubtypeEquivOfLe hNO)⟩
#align submodule.basis_of_pid_of_le Submodule.basisOfPidOfLE
-/- warning: submodule.basis_of_pid_of_le_span -> Submodule.basisOfPidOfLESpan is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_of_le_span Submodule.basisOfPidOfLESpanₓ'. -/
/-- A submodule inside the span of a linear independent family is a free `R`-module of finite rank,
if `R` is a principal ideal domain. -/
noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι → M}
@@ -389,12 +365,6 @@ noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι
variable {M}
-/- warning: module.basis_of_finite_type_torsion_free -> Module.basisOfFiniteTypeTorsionFree is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Fintype.{u1} ι] {s : ι -> M}, (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.span.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 (Set.range.{u3, succ u1} M ι s)) (Top.top.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.hasTop.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (SubNegMonoid.toAddMonoid.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_4))))) (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))], Sigma.{0, max u2 u3} Nat (fun (n : Nat) => Basis.{0, u2, u3} (Fin n) R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))
-but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Fintype.{u1} ι] {s : ι -> M}, (Eq.{succ u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.span.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 (Set.range.{u3, succ u1} M ι s)) (Top.top.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.instTopSubmodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (SMulZeroClass.toSMul.{u2, u3} R M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (Module.toMulActionWithZero.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))], Sigma.{0, max u3 u2} Nat (fun (n : Nat) => Basis.{0, u2, u3} (Fin n) R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))
-Case conversion may be inaccurate. Consider using '#align module.basis_of_finite_type_torsion_free Module.basisOfFiniteTypeTorsionFreeₓ'. -/
/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » I) -/
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
@@ -451,12 +421,6 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M
exact ⟨n, b.map ψ.symm⟩
#align module.basis_of_finite_type_torsion_free Module.basisOfFiniteTypeTorsionFree
-/- warning: module.free_of_finite_type_torsion_free -> Module.free_of_finite_type_torsion_free is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι] {s : ι -> M}, (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.span.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 (Set.range.{u3, succ u1} M ι s)) (Top.top.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.hasTop.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (SubNegMonoid.toAddMonoid.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_4))))) (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))], Module.Free.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)
-but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Finite.{succ u3} ι] {s : ι -> M}, (Eq.{succ u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.span.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι s)) (Top.top.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.instTopSubmodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Module.Free.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)
-Case conversion may be inaccurate. Consider using '#align module.free_of_finite_type_torsion_free Module.free_of_finite_type_torsion_freeₓ'. -/
theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs : span R (range s) = ⊤)
[NoZeroSMulDivisors R M] : Module.Free R M :=
by
@@ -465,24 +429,12 @@ theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs :
exact Module.Free.of_basis b
#align module.free_of_finite_type_torsion_free Module.free_of_finite_type_torsion_free
-/- warning: module.basis_of_finite_type_torsion_free' -> Module.basisOfFiniteTypeTorsionFree' is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_4))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Module.Finite.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)
-Case conversion may be inaccurate. Consider using '#align module.basis_of_finite_type_torsion_free' Module.basisOfFiniteTypeTorsionFree'ₓ'. -/
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree' [Module.Finite R M]
[NoZeroSMulDivisors R M] : Σn : ℕ, Basis (Fin n) R M :=
Module.basisOfFiniteTypeTorsionFree Module.Finite.exists_fin.choose_spec.choose_spec
#align module.basis_of_finite_type_torsion_free' Module.basisOfFiniteTypeTorsionFree'
-/- warning: module.free_of_finite_type_torsion_free' -> Module.free_of_finite_type_torsion_free' is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_4))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Module.Free.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] [_inst_6 : Module.Finite.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))], Module.Free.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5
-Case conversion may be inaccurate. Consider using '#align module.free_of_finite_type_torsion_free' Module.free_of_finite_type_torsion_free'ₓ'. -/
theorem Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMulDivisors R M] :
Module.Free R M :=
by
@@ -492,12 +444,6 @@ theorem Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMul
section SmithNormal
-/- warning: basis.smith_normal_form -> Basis.SmithNormalForm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)], (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> Type.{u3} -> Nat -> Sort.{max (succ u1) (succ u2) (succ u3)}
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] {_inst_3 : Type.{u2}} [M : AddCommGroup.{u2} _inst_3] [_inst_4 : Module.{u1, u2} R _inst_3 (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} _inst_3 M)], (Submodule.{u1, u2} R _inst_3 (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} _inst_3 M) _inst_4) -> Type.{u3} -> Nat -> Sort.{max (max (succ u1) (succ u2)) (succ u3)}
-Case conversion may be inaccurate. Consider using '#align basis.smith_normal_form Basis.SmithNormalFormₓ'. -/
/-- A Smith normal form basis for a submodule `N` of a module `M` consists of
bases for `M` and `N` such that the inclusion map `N → M` can be written as a
(rectangular) matrix with `a` along the diagonal: in Smith normal form. -/
@@ -510,9 +456,6 @@ structure Basis.SmithNormalForm (N : Submodule R M) (ι : Type _) (n : ℕ) wher
snf : ∀ i, (bN i : M) = a i • bM (f i)
#align basis.smith_normal_form Basis.SmithNormalForm
-/- warning: submodule.exists_smith_normal_form_of_le -> Submodule.exists_smith_normal_form_of_le is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.exists_smith_normal_form_of_le Submodule.exists_smith_normal_form_of_leₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
in Smith normal form.
@@ -544,9 +487,6 @@ theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M)
exact ⟨_, _, hmn, bM, bN, as, has⟩
#align submodule.exists_smith_normal_form_of_le Submodule.exists_smith_normal_form_of_le
-/- warning: submodule.smith_normal_form_of_le -> Submodule.smithNormalFormOfLE is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLEₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
in Smith normal form.
@@ -568,12 +508,6 @@ noncomputable def Submodule.smithNormalFormOfLE [Finite ι] (b : Basis ι R M) (
Submodule.coe_smul_of_tower, RelEmbedding.coe_toEmbedding]
#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLE
-/- warning: submodule.smith_normal_form -> Submodule.smithNormalForm is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {M : Type.{u_3}} [_inst_4 : AddCommGroup.{u_3} M] [_inst_5 : Module.{u_2, u_3} R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4)] [_inst_6 : Finite.{succ u_1} ι], (Basis.{u_1, u_2, u_3} ι R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u_2, u_3} R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5), Sigma.{0, max u_2 u_3 u_1} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 N ι n))
-but is expected to have type
- forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {M : Type.{u_3}} [_inst_4 : AddCommGroup.{u_3} M] [_inst_5 : Module.{u_2, u_3} R M (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4)] [_inst_6 : Finite.{succ u_1} ι], (Basis.{u_1, u_2, u_3} ι R M (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u_2, u_3} R M (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5), Sigma.{0, max (max u_1 u_3) u_2} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 M _inst_4 _inst_5 N ι n))
-Case conversion may be inaccurate. Consider using '#align submodule.smith_normal_form Submodule.smithNormalFormₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
in Smith normal form.
@@ -598,9 +532,6 @@ section Ideal
variable {S : Type _} [CommRing S] [IsDomain S] [Algebra R S]
-/- warning: ideal.smith_normal_form -> Ideal.smithNormalForm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ideal.smith_normal_form Ideal.smithNormalFormₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -622,9 +553,6 @@ noncomputable def Ideal.smithNormalForm [Fintype ι] (b : Basis ι R S) (I : Ide
variable [Finite ι]
-/- warning: ideal.exists_smith_normal_form -> Ideal.exists_smith_normal_form is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_formₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -651,12 +579,6 @@ theorem Ideal.exists_smith_normal_form (b : Basis ι R S) (I : Ideal S) (hI : I
Submodule.restrictScalarsEquiv_apply, Basis.coe_reindex]⟩
#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_form
-/- warning: ideal.ring_basis -> Ideal.ringBasis is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)))
-but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8)))
-Case conversion may be inaccurate. Consider using '#align ideal.ring_basis Ideal.ringBasisₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -669,9 +591,6 @@ noncomputable def Ideal.ringBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).some
#align ideal.ring_basis Ideal.ringBasis
-/- warning: ideal.self_basis -> Ideal.selfBasis is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ideal.self_basis Ideal.selfBasisₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -684,12 +603,6 @@ noncomputable def Ideal.selfBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose_spec.some
#align ideal.self_basis Ideal.selfBasis
-/- warning: ideal.smith_coeffs -> Ideal.smithCoeffs is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> ι -> R)
-but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)))))) -> ι -> R)
-Case conversion may be inaccurate. Consider using '#align ideal.smith_coeffs Ideal.smithCoeffsₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -702,9 +615,6 @@ noncomputable def Ideal.smithCoeffs (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).choose_spec.some
#align ideal.smith_coeffs Ideal.smithCoeffs
-/- warning: ideal.self_basis_def -> Ideal.selfBasis_def is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ideal.self_basis_def Ideal.selfBasis_defₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -716,12 +626,6 @@ theorem Ideal.selfBasis_def (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) :
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose_spec.choose_spec
#align ideal.self_basis_def Ideal.selfBasis_def
-/- warning: ideal.smith_coeffs_ne_zero -> Ideal.smithCoeffs_ne_zero is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι] (b : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (hI : Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) (i : ι), Ne.{succ u2} R (Ideal.smithCoeffs.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))))
-but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) (I : Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)))))) (i : ι), Ne.{succ u2} R (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align ideal.smith_coeffs_ne_zero Ideal.smithCoeffs_ne_zeroₓ'. -/
@[simp]
theorem Ideal.smithCoeffs_ne_zero (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) (i) :
Ideal.smithCoeffs b I hI i ≠ 0 := by
@@ -737,12 +641,6 @@ end SmithNormal
end PrincipalIdealDomain
-/- warning: linear_independent.restrict_scalars_algebras -> LinearIndependent.restrict_scalars_algebras is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {ι : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : Algebra.{u1, u2} R S _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3] [_inst_6 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_7 : IsScalarTower.{u1, u2, u3} R S M (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2))) (Algebra.toModule.{u1, u2} R S _inst_1 _inst_2 _inst_4))))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u2, u3} S M (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u3} S M (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u2, u3} S M _inst_2 _inst_3 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5))))], (Function.Injective.{succ u1, succ u2} R S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (algebraMap.{u1, u2} R S _inst_1 _inst_2 _inst_4))) -> (forall {v : ι -> M}, (LinearIndependent.{u4, u2, u3} ι S M v _inst_2 _inst_3 _inst_6) -> (LinearIndependent.{u4, u1, u3} ι R M v (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5))
-but is expected to have type
- forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {ι : Type.{u1}} [_inst_1 : CommSemiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : Algebra.{u4, u3} R S _inst_1 _inst_2] [_inst_5 : Module.{u4, u2} R M (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3] [_inst_6 : Module.{u3, u2} S M _inst_2 _inst_3] [_inst_7 : IsScalarTower.{u4, u3, u2} R S M (Algebra.toSMul.{u4, u3} R S _inst_1 _inst_2 _inst_4) (SMulZeroClass.toSMul.{u3, u2} S M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} S M (MonoidWithZero.toZero.{u3} S (Semiring.toMonoidWithZero.{u3} S _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} S M (Semiring.toMonoidWithZero.{u3} S _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} S M _inst_2 _inst_3 _inst_6)))) (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (CommMonoidWithZero.toZero.{u4} R (CommSemiring.toCommMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3 _inst_5))))], (Function.Injective.{succ u4, succ u3} R S (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S _inst_1 _inst_2 _inst_4))) -> (forall {v : ι -> M}, (LinearIndependent.{u1, u3, u2} ι S M v _inst_2 _inst_3 _inst_6) -> (LinearIndependent.{u1, u4, u2} ι R M v (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3 _inst_5))
-Case conversion may be inaccurate. Consider using '#align linear_independent.restrict_scalars_algebras LinearIndependent.restrict_scalars_algebrasₓ'. -/
/-- A set of linearly independent vectors in a module `M` over a semiring `S` is also linearly
independent over a subring `R` of `K`. -/
theorem LinearIndependent.restrict_scalars_algebras {R S M ι : Type _} [CommSemiring R] [Semiring S]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -234,18 +234,13 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
let y' : O := ∑ i, c i • b'M i
have y'M : y' ∈ M := M.sum_mem fun i _ => M.smul_mem (c i) (b'M i).2
have mk_y' : (⟨y', y'M⟩ : M) = ∑ i, c i • b'M i :=
- Subtype.ext
- (show y' = M.subtype _
- by
- simp only [LinearMap.map_sum, LinearMap.map_smul]
- rfl)
+ Subtype.ext (show y' = M.subtype _ by simp only [LinearMap.map_sum, LinearMap.map_smul]; rfl)
have a_smul_y' : a • y' = y :=
by
refine' congr_arg coe (show (a • ⟨y', y'M⟩ : M) = ⟨y, N_le_M yN⟩ from _)
rw [← b'M.sum_repr ⟨y, N_le_M yN⟩, mk_y', Finset.smul_sum]
refine' Finset.sum_congr rfl fun i _ => _
- rw [← mul_smul, ← hc]
- rfl
+ rw [← mul_smul, ← hc]; rfl
-- We found an `y` and an `a`!
refine' ⟨y', y'M, a, a_smul_y'.symm ▸ yN, _⟩
have ϕy'_eq : ϕ ⟨y', y'M⟩ = 1 :=
@@ -295,8 +290,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
refine' ⟨-b, submodule.mem_map.mpr ⟨⟨_, N.sub_mem zN (N.smul_mem b yN)⟩, _, _⟩⟩
· refine' linear_map.mem_ker.mpr (show ϕ (⟨z, N_le_M zN⟩ - b • ⟨y, N_le_M yN⟩) = 0 from _)
rw [LinearMap.map_sub, LinearMap.map_smul, hb, ϕy_eq, smul_eq_mul, mul_comm, sub_self]
- · simp only [sub_eq_add_neg, neg_smul]
- rfl
+ · simp only [sub_eq_add_neg, neg_smul]; rfl
-- And extend a basis for `M'` with `y'`
intro m' hn'm' bM'
refine' ⟨Nat.succ_le_succ hn'm', _, _⟩
@@ -304,8 +298,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
intro z zM
refine' ⟨-ϕ ⟨z, zM⟩, ⟨⟨z, zM⟩ - ϕ ⟨z, zM⟩ • ⟨y', y'M⟩, linear_map.mem_ker.mpr _, _⟩⟩
· rw [LinearMap.map_sub, LinearMap.map_smul, ϕy'_eq, smul_eq_mul, mul_one, sub_self]
- · rw [LinearMap.map_sub, LinearMap.map_smul, sub_eq_add_neg, neg_smul]
- rfl
+ · rw [LinearMap.map_sub, LinearMap.map_smul, sub_eq_add_neg, neg_smul]; rfl
-- It remains to show the extended bases are compatible with each other.
intro as h
refine' ⟨Fin.cons a as, _⟩
@@ -314,8 +307,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
refine' Fin.cases _ (fun i => _) i
· simp only [Fin.cons_zero, Fin.castLE_zero]
exact a_smul_y'.symm
- · rw [Fin.castLE_succ]
- simp only [Fin.cons_succ, coe_of_le, h i]
+ · rw [Fin.castLE_succ]; simp only [Fin.cons_succ, coe_of_le, h i]
#align submodule.basis_of_pid_aux Submodule.basis_of_pid_aux
/- warning: submodule.nonempty_basis_of_pid -> Submodule.nonempty_basis_of_pid is a dubious translation:
@@ -338,8 +330,7 @@ theorem Submodule.nonempty_basis_of_pid {ι : Type _} [Finite ι] (b : Basis ι
intro N ih
let b' := (b.reindex (Fintype.equivFin ι)).map (LinearEquiv.ofTop _ rfl).symm
by_cases N_bot : N = ⊥
- · subst N_bot
- exact ⟨0, ⟨Basis.empty _⟩⟩
+ · subst N_bot; exact ⟨0, ⟨Basis.empty _⟩⟩
obtain ⟨y, -, a, hay, M', -, N', N'_le_N, -, -, ay_ortho, h'⟩ :=
Submodule.basis_of_pid_aux ⊤ N b' N_bot le_top
obtain ⟨n', ⟨bN'⟩⟩ := ih N' N'_le_N _ hay ay_ortho
@@ -447,8 +438,7 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M
suffices ∀ i, φ (s i) ∈ N
by
rw [LinearMap.range_eq_map, ← hs, φ.map_span_le]
- rintro _ ⟨i, rfl⟩
- apply this
+ rintro _ ⟨i, rfl⟩; apply this
intro i
calc
(∏ j, a j) • s i = (∏ j in {i}ᶜ, a j) • a i • s i := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -68,10 +68,7 @@ variable {ι : Type _} (b : Basis ι R M)
open Submodule.IsPrincipal Submodule
/- warning: eq_bot_of_generator_maximal_map_eq_zero -> eq_bot_of_generator_maximal_map_eq_zero is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}}, (Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toHasLt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
-but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}}, (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) -> (forall {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.semilinearMapClass.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.semilinearMapClass.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.semilinearMapClass.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} R (Ring.toAddCommGroup.{u2} R _inst_1)) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.semilinearMapClass.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zeroₓ'. -/
theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodule R M}
{ϕ : M →ₗ[R] R} (hϕ : ∀ ψ : M →ₗ[R] R, ¬N.map ϕ < N.map ψ) [(N.map ϕ).IsPrincipal]
@@ -88,10 +85,7 @@ theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodul
#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zero
/- warning: eq_bot_of_generator_maximal_submodule_image_eq_zero -> eq_bot_of_generator_maximal_submoduleImage_eq_zero is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}} {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, (Basis.{u3, u1, u2} ι R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) (Ring.toSemiring.{u1} R _inst_1) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O)) -> (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) N O) -> (forall {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toHasLt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
-but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}} {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3}, (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) (Ring.toSemiring.{u2} R _inst_1) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O)) -> (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) N O) -> (forall {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_submodule_image_eq_zero eq_bot_of_generator_maximal_submoduleImage_eq_zeroₓ'. -/
theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M} (b : Basis ι R O)
(hNO : N ≤ O) {ϕ : O →ₗ[R] R} (hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
@@ -139,10 +133,7 @@ variable {M : Type _} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal
/- warning: generator_maximal_submodule_image_dvd -> generator_maximal_submoduleImage_dvd is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} (hNO : LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Preorder.toHasLt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u1, u1} R R (CommRing.toRing.{u1} R _inst_1) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) y N), (Eq.{succ u1} R (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ϕ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Dvd.Dvd.{u1} R (semigroupDvd.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ψ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} {O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} (hNO : LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) {ϕ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))}, (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u2, u2} R R (CommRing.toRing.{u2} R _inst_1) (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) y N), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ϕ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Dvd.dvd.{u2} R (semigroupDvd.{u2} R (SemigroupWithZero.toSemigroup.{u2} R (NonUnitalSemiring.toSemigroupWithZero.{u2} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} R (CommRing.toNonUnitalCommRing.{u2} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ψ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvdₓ'. -/
theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤ O) {ϕ : O →ₗ[R] R}
(hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
@@ -181,10 +172,7 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvd
/- warning: submodule.basis_of_pid_aux -> Submodule.basis_of_pid_aux is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] [_inst_6 : Finite.{succ u1} ι] {O : Type.{u3}} [_inst_7 : AddCommGroup.{u3} O] [_inst_8 : Module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)] (M : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (N : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8), (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) -> (Ne.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Submodule.hasBot.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8))) -> (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N M) -> (Exists.{succ u3} O (fun (y : O) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) (fun (H : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) => Exists.{succ u2} R (fun (a : R) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) (fun (hay : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (M' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (N' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') (fun (N'_le_M' : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (y_ortho_M' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (ay_ortho_N' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => forall (n' : Nat) (bN' : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')), Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat Nat.hasLe n' m') (bM' : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (hnm : LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (fun (_x : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) => (Fin n') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (Fin n') (fun (_x : Fin n') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Basis.funLike.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N'))) bN' i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (fun (_x : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) => (Fin m') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (Fin m') (fun (_x : Fin m') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Basis.funLike.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M'))) bM' (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (Fin.hasLe n') (Fin.hasLe m')) (fun (_x : RelEmbedding.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) => (Fin n') -> (Fin m')) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u2} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N))) bN i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as' i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M))) bM (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) hnm) i)))))))))))))))))))))
-but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1538 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_aux Submodule.basis_of_pid_auxₓ'. -/
/-- The induction hypothesis of `submodule.basis_of_pid` and `submodule.smith_normal_form`.
@@ -331,10 +319,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
#align submodule.basis_of_pid_aux Submodule.basis_of_pid_aux
/- warning: submodule.nonempty_basis_of_pid -> Submodule.nonempty_basis_of_pid is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall (N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5), Exists.{1} Nat (fun (n : Nat) => Nonempty.{max 1 (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), Exists.{1} Nat (fun (n : Nat) => Nonempty.{max (max (succ u1) (succ u2)) 1} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N))))
+<too large>
Case conversion may be inaccurate. Consider using '#align submodule.nonempty_basis_of_pid Submodule.nonempty_basis_of_pidₓ'. -/
/-- A submodule of a free `R`-module of finite rank is also a free `R`-module of finite rank,
if `R` is a principal ideal domain.
@@ -375,10 +360,7 @@ noncomputable def Submodule.basisOfPid {ι : Type _} [Finite ι] (b : Basis ι R
-/
/- warning: submodule.basis_of_pid_bot -> Submodule.basisOfPid_bot is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] (b : Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5), Eq.{succ (max u1 u2)} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) (Submodule.basisOfPid.{u1, u2, u3} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 ι _inst_6 b (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Sigma.mk.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Basis.empty.{0, u1, u2} (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Unique.subsingleton.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.uniqueBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) Fin.isEmpty))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), Eq.{max (succ u2) (succ u1)} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (Submodule.basisOfPid.{u2, u1, u3} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 ι _inst_6 b (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Sigma.mk.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Basis.empty.{0, u2, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Unique.instSubsingleton.{succ u1} (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Submodule.uniqueBot.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) Fin.isEmpty))
+<too large>
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_bot Submodule.basisOfPid_botₓ'. -/
theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
Submodule.basisOfPid b ⊥ = ⟨0, Basis.empty _⟩ :=
@@ -390,10 +372,7 @@ theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
#align submodule.basis_of_pid_bot Submodule.basisOfPid_bot
/- warning: submodule.basis_of_pid_of_le -> Submodule.basisOfPidOfLE is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) -> (Basis.{u3, u1, u2} ι R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O)) -> (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {N : Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.completeLattice.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) N O) -> (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Submodule.module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O)) -> (Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N)))
+<too large>
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_of_le Submodule.basisOfPidOfLEₓ'. -/
/-- A submodule inside a free `R`-submodule of finite rank is also a free `R`-module of finite rank,
if `R` is a principal ideal domain.
@@ -407,10 +386,7 @@ noncomputable def Submodule.basisOfPidOfLE {ι : Type _} [Finite ι] {N O : Subm
#align submodule.basis_of_pid_of_le Submodule.basisOfPidOfLE
/- warning: submodule.basis_of_pid_of_le_span -> Submodule.basisOfPidOfLESpan is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {b : ι -> M}, (LinearIndependent.{u3, u1, u2} ι R M b (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N (Submodule.span.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι b))) -> (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {b : ι -> M}, (LinearIndependent.{u3, u1, u2} ι R M b (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall {N : Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.completeLattice.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) N (Submodule.span.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι b))) -> (Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
+<too large>
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_of_le_span Submodule.basisOfPidOfLESpanₓ'. -/
/-- A submodule inside the span of a linear independent family is a free `R`-module of finite rank,
if `R` is a principal ideal domain. -/
@@ -545,10 +521,7 @@ structure Basis.SmithNormalForm (N : Submodule R M) (ι : Type _) (n : ℕ) wher
#align basis.smith_normal_form Basis.SmithNormalForm
/- warning: submodule.exists_smith_normal_form_of_le -> Submodule.exists_smith_normal_form_of_le is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat Nat.hasLe n o) (fun (hno : LE.le.{0} Nat Nat.hasLe n o) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u3} M ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (_x : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => (Fin n) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Basis.funLike.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N))) bN i)) (SMul.smul.{u2, u3} R M (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) (a i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (_x : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => (Fin o) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Basis.funLike.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O))) bO (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (Fin.hasLe n) (Fin.hasLe o)) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) => (Fin n) -> (Fin o)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) (Fin.castLE n o hno) i))))))))))))
-but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), (LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat instLENat n o) (fun (hno : LE.le.{0} Nat instLENat n o) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u1} M (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) N)) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) _x) (Basis.funLike.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) bN i)) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) O)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE n o hno) i)) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE n o hno) i)) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE n o hno) i)) (Submodule.smul.{u2, u2, u1} R R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O (Algebra.toSMul.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (IsScalarTower.left.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (a i) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) _x) (Basis.funLike.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) bO (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE n o hno) i))))))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align submodule.exists_smith_normal_form_of_le Submodule.exists_smith_normal_form_of_leₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
@@ -582,10 +555,7 @@ theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M)
#align submodule.exists_smith_normal_form_of_le Submodule.exists_smith_normal_form_of_le
/- warning: submodule.smith_normal_form_of_le -> Submodule.smithNormalFormOfLE is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Sigma.{0, max u2 u3} Nat (fun (o : Nat) => Sigma.{0, max u2 u3} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 _inst_3 (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.semilinearMapClass.{u2, u2, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
-but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))) N O) -> (Sigma.{0, max u3 u2} Nat (fun (o : Nat) => Sigma.{0, max u3 u2} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (Submodule.addCommMonoid.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.semilinearMapClass.{u2, u2, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
+<too large>
Case conversion may be inaccurate. Consider using '#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLEₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
@@ -639,10 +609,7 @@ section Ideal
variable {S : Type _} [CommRing S] [IsDomain S] [Algebra R S]
/- warning: ideal.smith_normal_form -> Ideal.smithNormalForm is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {S : Type.{u_4}} [_inst_6 : CommRing.{u_4} S] [_inst_7 : IsDomain.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))] [_inst_8 : Algebra.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))] [_inst_9 : Fintype.{u_1} ι], (Basis.{u_1, u_2, u_4} ι R S (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_4} S (NonUnitalNonAssocRing.toAddCommGroup.{u_4} S (NonAssocRing.toNonUnitalNonAssocRing.{u_4} S (Ring.toNonAssocRing.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))), (Ne.{succ u_4} (Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) I (Bot.bot.{u_4} (Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) (Submodule.hasBot.{u_4, u_4} S S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Semiring.toModule.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))) -> (Basis.SmithNormalForm.{u_2, u_4, u_1} R _inst_1 _inst_2 _inst_3 S (NonUnitalNonAssocRing.toAddCommGroup.{u_4} S (NonAssocRing.toNonUnitalNonAssocRing.{u_4} S (Ring.toNonAssocRing.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8) (Submodule.restrictScalars.{u_2, u_4, u_4} R S S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8) (Semiring.toModule.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) (SMulZeroClass.toHasSmul.{u_2, u_4} R S (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u_2, u_4} R S (MulZeroClass.toHasZero.{u_2} R (MulZeroOneClass.toMulZeroClass.{u_2} R (MonoidWithZero.toMulZeroOneClass.{u_2} R (Semiring.toMonoidWithZero.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)))))) (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u_2, u_4} R S (Semiring.toMonoidWithZero.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1))) (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (Module.toMulActionWithZero.{u_2, u_4} R S (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8))))) (Ideal.smithNormalForm._proof_1.{u_2, u_4} R _inst_1 S _inst_6 _inst_8) I) ι (Fintype.card.{u_1} ι _inst_9)))
-but is expected to have type
- forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {S : Type.{u_3}} [_inst_6 : CommRing.{u_3} S] [_inst_7 : IsDomain.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))] [_inst_8 : Algebra.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))] [_inst_9 : Fintype.{u_1} ι], (Basis.{u_1, u_2, u_3} ι R S (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} S (NonAssocRing.toNonUnitalNonAssocRing.{u_3} S (Ring.toNonAssocRing.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))), (Ne.{succ u_3} (Ideal.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))) I (Bot.bot.{u_3} (Ideal.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))) (Submodule.instBotSubmodule.{u_3, u_3} S S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))))) (Semiring.toModule.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)))))) -> (Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 S (Ring.toAddCommGroup.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) _inst_8) (Submodule.restrictScalars.{u_2, u_3, u_3} R S S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))))) (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) _inst_8) (Semiring.toModule.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))) (Algebra.toSMul.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) _inst_8) (IsScalarTower.right.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) _inst_8) I) ι (Fintype.card.{u_1} ι _inst_9)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ideal.smith_normal_form Ideal.smithNormalFormₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -666,10 +633,7 @@ noncomputable def Ideal.smithNormalForm [Fintype ι] (b : Basis ι R S) (I : Ide
variable [Finite ι]
/- warning: ideal.exists_smith_normal_form -> Ideal.exists_smith_normal_form is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Exists.{max (succ u1) (succ u2) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (b' : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => Exists.{max (succ u1) (succ u2)} (ι -> R) (fun (a : ι -> R) => Exists.{max (succ u1) (succ u2) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (fun (ab' : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) => forall (i : ι), Eq.{succ u3} S ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeSubtype.{succ u3} S (fun (x : S) => Membership.Mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.hasMem.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I))))) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (fun (_x : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) => ι -> (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I)) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) ι (fun (_x : ι) => coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Basis.funLike.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)))) ab' i)) (SMul.smul.{u2, u3} R S (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (a i) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (_x : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => ι -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) ι (fun (_x : ι) => S) (Basis.funLike.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) b' i)))))))
-but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))), (Ne.{succ u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)))))) -> (Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) (fun (b' : Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) => Exists.{max (succ u3) (succ u2)} (ι -> R) (fun (a : ι -> R) => Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) (fun (ab' : Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) => forall (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) ab' i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (a i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) b' i)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_formₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -716,10 +680,7 @@ noncomputable def Ideal.ringBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
#align ideal.ring_basis Ideal.ringBasis
/- warning: ideal.self_basis -> Ideal.selfBasis is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))))
-but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) (SetLike.instMembership.{u3, u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ideal.self_basis Ideal.selfBasisₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -752,10 +713,7 @@ noncomputable def Ideal.smithCoeffs (b : Basis ι R S) (I : Ideal S) (hI : I ≠
#align ideal.smith_coeffs Ideal.smithCoeffs
/- warning: ideal.self_basis_def -> Ideal.selfBasis_def is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι] (b : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (hI : Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) (i : ι), Eq.{succ u3} S ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeSubtype.{succ u3} S (fun (x : S) => Membership.Mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.hasMem.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I))))) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) (fun (_x : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) => ι -> (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I)) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) ι (fun (_x : ι) => coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Basis.funLike.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8)))) (Ideal.selfBasis.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i)) (SMul.smul.{u2, u3} R S (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Ideal.smithCoeffs.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (_x : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => ι -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) ι (fun (_x : ι) => S) (Basis.funLike.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (Ideal.ringBasis.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i))
-but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) (I : Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)))))) (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) (Ideal.selfBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) (Ideal.ringBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i))
+<too large>
Case conversion may be inaccurate. Consider using '#align ideal.self_basis_def Ideal.selfBasis_defₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -142,7 +142,7 @@ open Submodule.IsPrincipal
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} (hNO : LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Preorder.toHasLt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u1, u1} R R (CommRing.toRing.{u1} R _inst_1) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) y N), (Eq.{succ u1} R (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ϕ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Dvd.Dvd.{u1} R (semigroupDvd.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ψ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} {O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} (hNO : LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) {ϕ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))}, (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u2, u2} R R (CommRing.toRing.{u2} R _inst_1) (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) y N), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ϕ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Dvd.dvd.{u2} R (semigroupDvd.{u2} R (SemigroupWithZero.toSemigroup.{u2} R (NonUnitalSemiring.toSemigroupWithZero.{u2} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} R (CommRing.toNonUnitalCommRing.{u2} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ψ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} {O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} (hNO : LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) {ϕ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))}, (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u2, u2} R R (CommRing.toRing.{u2} R _inst_1) (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) y N), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ϕ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Dvd.dvd.{u2} R (semigroupDvd.{u2} R (SemigroupWithZero.toSemigroup.{u2} R (NonUnitalSemiring.toSemigroupWithZero.{u2} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} R (CommRing.toNonUnitalCommRing.{u2} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ψ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
Case conversion may be inaccurate. Consider using '#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvdₓ'. -/
theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤ O) {ϕ : O →ₗ[R] R}
(hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -378,7 +378,7 @@ noncomputable def Submodule.basisOfPid {ι : Type _} [Finite ι] (b : Basis ι R
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] (b : Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5), Eq.{succ (max u1 u2)} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) (Submodule.basisOfPid.{u1, u2, u3} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 ι _inst_6 b (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Sigma.mk.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Basis.empty.{0, u1, u2} (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Unique.subsingleton.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.uniqueBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) Fin.isEmpty))
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), Eq.{max (succ u2) (succ u1)} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (Submodule.basisOfPid.{u2, u1, u3} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 ι _inst_6 b (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Sigma.mk.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Basis.empty.{0, u2, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Unique.instSubsingleton.{succ u1} (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Submodule.uniqueBot.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) instIsEmptyFinOfNatNatInstOfNatNat))
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), Eq.{max (succ u2) (succ u1)} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (Submodule.basisOfPid.{u2, u1, u3} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 ι _inst_6 b (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Sigma.mk.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Basis.empty.{0, u2, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Unique.instSubsingleton.{succ u1} (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Submodule.uniqueBot.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) Fin.isEmpty))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_bot Submodule.basisOfPid_botₓ'. -/
theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
Submodule.basisOfPid b ⊥ = ⟨0, Basis.empty _⟩ :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -184,7 +184,7 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] [_inst_6 : Finite.{succ u1} ι] {O : Type.{u3}} [_inst_7 : AddCommGroup.{u3} O] [_inst_8 : Module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)] (M : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (N : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8), (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) -> (Ne.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Submodule.hasBot.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8))) -> (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N M) -> (Exists.{succ u3} O (fun (y : O) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) (fun (H : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) => Exists.{succ u2} R (fun (a : R) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) (fun (hay : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (M' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (N' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') (fun (N'_le_M' : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (y_ortho_M' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (ay_ortho_N' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => forall (n' : Nat) (bN' : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')), Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat Nat.hasLe n' m') (bM' : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (hnm : LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (fun (_x : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) => (Fin n') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (Fin n') (fun (_x : Fin n') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Basis.funLike.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N'))) bN' i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (fun (_x : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) => (Fin m') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (Fin m') (fun (_x : Fin m') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Basis.funLike.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M'))) bM' (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (Fin.hasLe n') (Fin.hasLe m')) (fun (_x : RelEmbedding.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) => (Fin n') -> (Fin m')) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u2} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N))) bN i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as' i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M))) bM (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) hnm) i)))))))))))))))))))))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1538 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
+ forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1538 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_aux Submodule.basis_of_pid_auxₓ'. -/
/-- The induction hypothesis of `submodule.basis_of_pid` and `submodule.smith_normal_form`.
@@ -548,7 +548,7 @@ structure Basis.SmithNormalForm (N : Submodule R M) (ι : Type _) (n : ℕ) wher
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat Nat.hasLe n o) (fun (hno : LE.le.{0} Nat Nat.hasLe n o) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u3} M ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (_x : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => (Fin n) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Basis.funLike.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N))) bN i)) (SMul.smul.{u2, u3} R M (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) (a i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (_x : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => (Fin o) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Basis.funLike.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O))) bO (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (Fin.hasLe n) (Fin.hasLe o)) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) => (Fin n) -> (Fin o)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) (Fin.castLE n o hno) i))))))))))))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), (LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat instLENat n o) (fun (hno : LE.le.{0} Nat instLENat n o) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u1} M (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) N)) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) _x) (Basis.funLike.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) bN i)) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) O)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) (Submodule.smul.{u2, u2, u1} R R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O (Algebra.toSMul.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (IsScalarTower.left.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (a i) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) _x) (Basis.funLike.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) bO (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i))))))))))))
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), (LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat instLENat n o) (fun (hno : LE.le.{0} Nat instLENat n o) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u1} M (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) N)) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) _x) (Basis.funLike.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) bN i)) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) O)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE n o hno) i)) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE n o hno) i)) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE n o hno) i)) (Submodule.smul.{u2, u2, u1} R R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O (Algebra.toSMul.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (IsScalarTower.left.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (a i) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) _x) (Basis.funLike.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) bO (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Fin.castLE n o hno) i))))))))))))
Case conversion may be inaccurate. Consider using '#align submodule.exists_smith_normal_form_of_le Submodule.exists_smith_normal_form_of_leₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
@@ -793,7 +793,7 @@ end PrincipalIdealDomain
lean 3 declaration is
forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {ι : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : Algebra.{u1, u2} R S _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3] [_inst_6 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_7 : IsScalarTower.{u1, u2, u3} R S M (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2))) (Algebra.toModule.{u1, u2} R S _inst_1 _inst_2 _inst_4))))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u2, u3} S M (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u3} S M (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u2, u3} S M _inst_2 _inst_3 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5))))], (Function.Injective.{succ u1, succ u2} R S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (algebraMap.{u1, u2} R S _inst_1 _inst_2 _inst_4))) -> (forall {v : ι -> M}, (LinearIndependent.{u4, u2, u3} ι S M v _inst_2 _inst_3 _inst_6) -> (LinearIndependent.{u4, u1, u3} ι R M v (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5))
but is expected to have type
- forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {ι : Type.{u1}} [_inst_1 : CommSemiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : Algebra.{u4, u3} R S _inst_1 _inst_2] [_inst_5 : Module.{u4, u2} R M (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3] [_inst_6 : Module.{u3, u2} S M _inst_2 _inst_3] [_inst_7 : IsScalarTower.{u4, u3, u2} R S M (Algebra.toSMul.{u4, u3} R S _inst_1 _inst_2 _inst_4) (SMulZeroClass.toSMul.{u3, u2} S M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} S M (MonoidWithZero.toZero.{u3} S (Semiring.toMonoidWithZero.{u3} S _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} S M (Semiring.toMonoidWithZero.{u3} S _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} S M _inst_2 _inst_3 _inst_6)))) (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (CommMonoidWithZero.toZero.{u4} R (CommSemiring.toCommMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3 _inst_5))))], (Function.Injective.{succ u4, succ u3} R S (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S _inst_1 _inst_2 _inst_4))) -> (forall {v : ι -> M}, (LinearIndependent.{u1, u3, u2} ι S M v _inst_2 _inst_3 _inst_6) -> (LinearIndependent.{u1, u4, u2} ι R M v (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3 _inst_5))
+ forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {ι : Type.{u1}} [_inst_1 : CommSemiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : Algebra.{u4, u3} R S _inst_1 _inst_2] [_inst_5 : Module.{u4, u2} R M (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3] [_inst_6 : Module.{u3, u2} S M _inst_2 _inst_3] [_inst_7 : IsScalarTower.{u4, u3, u2} R S M (Algebra.toSMul.{u4, u3} R S _inst_1 _inst_2 _inst_4) (SMulZeroClass.toSMul.{u3, u2} S M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} S M (MonoidWithZero.toZero.{u3} S (Semiring.toMonoidWithZero.{u3} S _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} S M (Semiring.toMonoidWithZero.{u3} S _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} S M _inst_2 _inst_3 _inst_6)))) (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (CommMonoidWithZero.toZero.{u4} R (CommSemiring.toCommMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3 _inst_5))))], (Function.Injective.{succ u4, succ u3} R S (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S _inst_1 _inst_2 _inst_4))) -> (forall {v : ι -> M}, (LinearIndependent.{u1, u3, u2} ι S M v _inst_2 _inst_3 _inst_6) -> (LinearIndependent.{u1, u4, u2} ι R M v (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3 _inst_5))
Case conversion may be inaccurate. Consider using '#align linear_independent.restrict_scalars_algebras LinearIndependent.restrict_scalars_algebrasₓ'. -/
/-- A set of linearly independent vectors in a module `M` over a semiring `S` is also linearly
independent over a subring `R` of `K`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -71,7 +71,7 @@ open Submodule.IsPrincipal Submodule
lean 3 declaration is
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}}, (Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toHasLt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}}, (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) -> (forall {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} R (Ring.toAddCommGroup.{u2} R _inst_1)) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
+ forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}}, (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) -> (forall {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.semilinearMapClass.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.semilinearMapClass.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.semilinearMapClass.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} R (Ring.toAddCommGroup.{u2} R _inst_1)) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.semilinearMapClass.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zeroₓ'. -/
theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodule R M}
{ϕ : M →ₗ[R] R} (hϕ : ∀ ψ : M →ₗ[R] R, ¬N.map ϕ < N.map ψ) [(N.map ϕ).IsPrincipal]
@@ -142,7 +142,7 @@ open Submodule.IsPrincipal
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} (hNO : LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Preorder.toHasLt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u1, u1} R R (CommRing.toRing.{u1} R _inst_1) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) y N), (Eq.{succ u1} R (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ϕ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Dvd.Dvd.{u1} R (semigroupDvd.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ψ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} {O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} (hNO : LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) {ϕ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))}, (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u2, u2} R R (CommRing.toRing.{u2} R _inst_1) (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) y N), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ϕ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Dvd.dvd.{u2} R (semigroupDvd.{u2} R (SemigroupWithZero.toSemigroup.{u2} R (NonUnitalSemiring.toSemigroupWithZero.{u2} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} R (CommRing.toNonUnitalCommRing.{u2} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ψ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} {O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} (hNO : LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) {ϕ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))}, (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u2, u2} R R (CommRing.toRing.{u2} R _inst_1) (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) y N), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ϕ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Dvd.dvd.{u2} R (semigroupDvd.{u2} R (SemigroupWithZero.toSemigroup.{u2} R (NonUnitalSemiring.toSemigroupWithZero.{u2} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} R (CommRing.toNonUnitalCommRing.{u2} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ψ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
Case conversion may be inaccurate. Consider using '#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvdₓ'. -/
theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤ O) {ϕ : O →ₗ[R] R}
(hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
@@ -585,7 +585,7 @@ theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M)
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Sigma.{0, max u2 u3} Nat (fun (o : Nat) => Sigma.{0, max u2 u3} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 _inst_3 (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.semilinearMapClass.{u2, u2, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))) N O) -> (Sigma.{0, max u3 u2} Nat (fun (o : Nat) => Sigma.{0, max u3 u2} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (Submodule.addCommMonoid.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))) N O) -> (Sigma.{0, max u3 u2} Nat (fun (o : Nat) => Sigma.{0, max u3 u2} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (Submodule.addCommMonoid.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.semilinearMapClass.{u2, u2, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
Case conversion may be inaccurate. Consider using '#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLEₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -69,7 +69,7 @@ open Submodule.IsPrincipal Submodule
/- warning: eq_bot_of_generator_maximal_map_eq_zero -> eq_bot_of_generator_maximal_map_eq_zero is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}}, (Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}}, (Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toHasLt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
but is expected to have type
forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}}, (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) -> (forall {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} R (Ring.toAddCommGroup.{u2} R _inst_1)) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zeroₓ'. -/
@@ -89,7 +89,7 @@ theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodul
/- warning: eq_bot_of_generator_maximal_submodule_image_eq_zero -> eq_bot_of_generator_maximal_submoduleImage_eq_zero is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}} {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, (Basis.{u3, u1, u2} ι R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) (Ring.toSemiring.{u1} R _inst_1) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O)) -> (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) N O) -> (forall {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}} {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, (Basis.{u3, u1, u2} ι R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) (Ring.toSemiring.{u1} R _inst_1) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O)) -> (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) N O) -> (forall {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toHasLt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
but is expected to have type
forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}} {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3}, (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) (Ring.toSemiring.{u2} R _inst_1) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O)) -> (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) N O) -> (forall {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_submodule_image_eq_zero eq_bot_of_generator_maximal_submoduleImage_eq_zeroₓ'. -/
@@ -140,7 +140,7 @@ open Submodule.IsPrincipal
/- warning: generator_maximal_submodule_image_dvd -> generator_maximal_submoduleImage_dvd is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} (hNO : LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u1, u1} R R (CommRing.toRing.{u1} R _inst_1) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) y N), (Eq.{succ u1} R (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ϕ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Dvd.Dvd.{u1} R (semigroupDvd.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ψ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} (hNO : LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Preorder.toHasLt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u1, u1} R R (CommRing.toRing.{u1} R _inst_1) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) y N), (Eq.{succ u1} R (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ϕ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Dvd.Dvd.{u1} R (semigroupDvd.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ψ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} {O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} (hNO : LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) {ϕ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))}, (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u2, u2} R R (CommRing.toRing.{u2} R _inst_1) (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) y N), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ϕ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Dvd.dvd.{u2} R (semigroupDvd.{u2} R (SemigroupWithZero.toSemigroup.{u2} R (NonUnitalSemiring.toSemigroupWithZero.{u2} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} R (CommRing.toNonUnitalCommRing.{u2} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ψ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
Case conversion may be inaccurate. Consider using '#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvdₓ'. -/
@@ -182,7 +182,7 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
/- warning: submodule.basis_of_pid_aux -> Submodule.basis_of_pid_aux is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] [_inst_6 : Finite.{succ u1} ι] {O : Type.{u3}} [_inst_7 : AddCommGroup.{u3} O] [_inst_8 : Module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)] (M : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (N : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8), (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) -> (Ne.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Submodule.hasBot.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8))) -> (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N M) -> (Exists.{succ u3} O (fun (y : O) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) (fun (H : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) => Exists.{succ u2} R (fun (a : R) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) (fun (hay : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (M' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (N' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') (fun (N'_le_M' : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (y_ortho_M' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (ay_ortho_N' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => forall (n' : Nat) (bN' : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')), Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat Nat.hasLe n' m') (bM' : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (hnm : LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (fun (_x : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) => (Fin n') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (Fin n') (fun (_x : Fin n') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Basis.funLike.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N'))) bN' i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (fun (_x : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) => (Fin m') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (Fin m') (fun (_x : Fin m') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Basis.funLike.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M'))) bM' (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (Fin.hasLe n') (Fin.hasLe m')) (fun (_x : RelEmbedding.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) => (Fin n') -> (Fin m')) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u2} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N))) bN i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as' i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M))) bM (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) hnm) i)))))))))))))))))))))
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] [_inst_6 : Finite.{succ u1} ι] {O : Type.{u3}} [_inst_7 : AddCommGroup.{u3} O] [_inst_8 : Module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)] (M : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (N : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8), (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) -> (Ne.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Submodule.hasBot.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8))) -> (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N M) -> (Exists.{succ u3} O (fun (y : O) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) (fun (H : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) => Exists.{succ u2} R (fun (a : R) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) (fun (hay : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (M' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (N' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') (fun (N'_le_M' : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (y_ortho_M' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (ay_ortho_N' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => forall (n' : Nat) (bN' : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')), Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat Nat.hasLe n' m') (bM' : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (hnm : LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (fun (_x : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) => (Fin n') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (Fin n') (fun (_x : Fin n') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Basis.funLike.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N'))) bN' i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (fun (_x : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) => (Fin m') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (Fin m') (fun (_x : Fin m') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Basis.funLike.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M'))) bM' (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (Fin.hasLe n') (Fin.hasLe m')) (fun (_x : RelEmbedding.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) => (Fin n') -> (Fin m')) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u2} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N))) bN i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as' i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M))) bM (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) hnm) i)))))))))))))))))))))
but is expected to have type
forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1538 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_aux Submodule.basis_of_pid_auxₓ'. -/
@@ -391,7 +391,7 @@ theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
/- warning: submodule.basis_of_pid_of_le -> Submodule.basisOfPidOfLE is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) -> (Basis.{u3, u1, u2} ι R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O)) -> (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N)))
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) -> (Basis.{u3, u1, u2} ι R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O)) -> (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N)))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {N : Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.completeLattice.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) N O) -> (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Submodule.module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O)) -> (Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N)))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_of_le Submodule.basisOfPidOfLEₓ'. -/
@@ -408,7 +408,7 @@ noncomputable def Submodule.basisOfPidOfLE {ι : Type _} [Finite ι] {N O : Subm
/- warning: submodule.basis_of_pid_of_le_span -> Submodule.basisOfPidOfLESpan is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {b : ι -> M}, (LinearIndependent.{u3, u1, u2} ι R M b (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N (Submodule.span.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι b))) -> (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {b : ι -> M}, (LinearIndependent.{u3, u1, u2} ι R M b (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N (Submodule.span.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι b))) -> (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {b : ι -> M}, (LinearIndependent.{u3, u1, u2} ι R M b (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall {N : Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.completeLattice.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) N (Submodule.span.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι b))) -> (Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_of_le_span Submodule.basisOfPidOfLESpanₓ'. -/
@@ -546,7 +546,7 @@ structure Basis.SmithNormalForm (N : Submodule R M) (ι : Type _) (n : ℕ) wher
/- warning: submodule.exists_smith_normal_form_of_le -> Submodule.exists_smith_normal_form_of_le is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat Nat.hasLe n o) (fun (hno : LE.le.{0} Nat Nat.hasLe n o) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u3} M ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (_x : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => (Fin n) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Basis.funLike.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N))) bN i)) (SMul.smul.{u2, u3} R M (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) (a i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (_x : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => (Fin o) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Basis.funLike.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O))) bO (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (Fin.hasLe n) (Fin.hasLe o)) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) => (Fin n) -> (Fin o)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) (Fin.castLE n o hno) i))))))))))))
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat Nat.hasLe n o) (fun (hno : LE.le.{0} Nat Nat.hasLe n o) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u3} M ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (_x : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => (Fin n) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Basis.funLike.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N))) bN i)) (SMul.smul.{u2, u3} R M (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) (a i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (_x : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => (Fin o) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Basis.funLike.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O))) bO (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (Fin.hasLe n) (Fin.hasLe o)) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) => (Fin n) -> (Fin o)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) (Fin.castLE n o hno) i))))))))))))
but is expected to have type
forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), (LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat instLENat n o) (fun (hno : LE.le.{0} Nat instLENat n o) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u1} M (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) N)) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) _x) (Basis.funLike.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) bN i)) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) O)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) (Submodule.smul.{u2, u2, u1} R R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O (Algebra.toSMul.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (IsScalarTower.left.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (a i) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) _x) (Basis.funLike.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) bO (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i))))))))))))
Case conversion may be inaccurate. Consider using '#align submodule.exists_smith_normal_form_of_le Submodule.exists_smith_normal_form_of_leₓ'. -/
@@ -583,7 +583,7 @@ theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M)
/- warning: submodule.smith_normal_form_of_le -> Submodule.smithNormalFormOfLE is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Sigma.{0, max u2 u3} Nat (fun (o : Nat) => Sigma.{0, max u2 u3} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 _inst_3 (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.semilinearMapClass.{u2, u2, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toHasLe.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Sigma.{0, max u2 u3} Nat (fun (o : Nat) => Sigma.{0, max u2 u3} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 _inst_3 (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.semilinearMapClass.{u2, u2, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
but is expected to have type
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))) N O) -> (Sigma.{0, max u3 u2} Nat (fun (o : Nat) => Sigma.{0, max u3 u2} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (Submodule.addCommMonoid.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
Case conversion may be inaccurate. Consider using '#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLEₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -184,7 +184,7 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] [_inst_6 : Finite.{succ u1} ι] {O : Type.{u3}} [_inst_7 : AddCommGroup.{u3} O] [_inst_8 : Module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)] (M : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (N : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8), (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) -> (Ne.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Submodule.hasBot.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8))) -> (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N M) -> (Exists.{succ u3} O (fun (y : O) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) (fun (H : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) => Exists.{succ u2} R (fun (a : R) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) (fun (hay : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (M' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (N' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') (fun (N'_le_M' : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (y_ortho_M' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (ay_ortho_N' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => forall (n' : Nat) (bN' : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')), Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat Nat.hasLe n' m') (bM' : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (hnm : LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (fun (_x : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) => (Fin n') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (Fin n') (fun (_x : Fin n') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Basis.funLike.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N'))) bN' i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (fun (_x : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) => (Fin m') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (Fin m') (fun (_x : Fin m') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Basis.funLike.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M'))) bM' (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (Fin.hasLe n') (Fin.hasLe m')) (fun (_x : RelEmbedding.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) => (Fin n') -> (Fin m')) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u2} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N))) bN i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as' i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M))) bM (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) hnm) i)))))))))))))))))))))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1567 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
+ forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1538 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_aux Submodule.basis_of_pid_auxₓ'. -/
/-- The induction hypothesis of `submodule.basis_of_pid` and `submodule.smith_normal_form`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -184,7 +184,7 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] [_inst_6 : Finite.{succ u1} ι] {O : Type.{u3}} [_inst_7 : AddCommGroup.{u3} O] [_inst_8 : Module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)] (M : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (N : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8), (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) -> (Ne.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Submodule.hasBot.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8))) -> (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N M) -> (Exists.{succ u3} O (fun (y : O) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) (fun (H : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) => Exists.{succ u2} R (fun (a : R) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) (fun (hay : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (M' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (N' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') (fun (N'_le_M' : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (y_ortho_M' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (ay_ortho_N' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => forall (n' : Nat) (bN' : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')), Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat Nat.hasLe n' m') (bM' : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (hnm : LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (fun (_x : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) => (Fin n') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (Fin n') (fun (_x : Fin n') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Basis.funLike.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N'))) bN' i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (fun (_x : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) => (Fin m') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (Fin m') (fun (_x : Fin m') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Basis.funLike.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M'))) bM' (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (Fin.hasLe n') (Fin.hasLe m')) (fun (_x : RelEmbedding.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) => (Fin n') -> (Fin m')) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u2} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N))) bN i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as' i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M))) bM (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) hnm) i)))))))))))))))))))))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1575 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
+ forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1567 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_aux Submodule.basis_of_pid_auxₓ'. -/
/-- The induction hypothesis of `submodule.basis_of_pid` and `submodule.smith_normal_form`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -71,7 +71,7 @@ open Submodule.IsPrincipal Submodule
lean 3 declaration is
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}}, (Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}}, (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) -> (forall {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} R (Ring.toAddCommGroup.{u2} R _inst_1)) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
+ forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}}, (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) -> (forall {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} R (Ring.toAddCommGroup.{u2} R _inst_1)) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zeroₓ'. -/
theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodule R M}
{ϕ : M →ₗ[R] R} (hϕ : ∀ ψ : M →ₗ[R] R, ¬N.map ϕ < N.map ψ) [(N.map ϕ).IsPrincipal]
@@ -91,7 +91,7 @@ theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodul
lean 3 declaration is
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}} {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, (Basis.{u3, u1, u2} ι R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) (Ring.toSemiring.{u1} R _inst_1) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O)) -> (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) N O) -> (forall {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}} {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3}, (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) (Ring.toSemiring.{u2} R _inst_1) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O)) -> (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) N O) -> (forall {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
+ forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}} {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3}, (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) (Ring.toSemiring.{u2} R _inst_1) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O)) -> (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) N O) -> (forall {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_submodule_image_eq_zero eq_bot_of_generator_maximal_submoduleImage_eq_zeroₓ'. -/
theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M} (b : Basis ι R O)
(hNO : N ≤ O) {ϕ : O →ₗ[R] R} (hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
@@ -142,7 +142,7 @@ open Submodule.IsPrincipal
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} (hNO : LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u1, u1} R R (CommRing.toRing.{u1} R _inst_1) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) y N), (Eq.{succ u1} R (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ϕ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Dvd.Dvd.{u1} R (semigroupDvd.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ψ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {N : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} {O : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} (hNO : LE.le.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) {ϕ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))}, (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u2, u2} R R (CommRing.toRing.{u2} R _inst_1) (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) y N), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) ϕ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))), Dvd.dvd.{u2} R (semigroupDvd.{u2} R (SemigroupWithZero.toSemigroup.{u2} R (NonUnitalSemiring.toSemigroupWithZero.{u2} R (NonUnitalRing.toNonUnitalSemiring.{u2} R (NonUnitalCommRing.toNonUnitalRing.{u2} R (CommRing.toNonUnitalCommRing.{u2} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) O ϕ N) _inst_6) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) ψ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} {O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} (hNO : LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) {ϕ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))}, (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Submodule.completeLattice.{u2, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u2, u2} R R (CommRing.toRing.{u2} R _inst_1) (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) y N), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ϕ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Dvd.dvd.{u2} R (semigroupDvd.{u2} R (SemigroupWithZero.toSemigroup.{u2} R (NonUnitalSemiring.toSemigroupWithZero.{u2} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} R (CommRing.toNonUnitalCommRing.{u2} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) ψ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
Case conversion may be inaccurate. Consider using '#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvdₓ'. -/
theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤ O) {ϕ : O →ₗ[R] R}
(hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
@@ -184,7 +184,7 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] [_inst_6 : Finite.{succ u1} ι] {O : Type.{u3}} [_inst_7 : AddCommGroup.{u3} O] [_inst_8 : Module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)] (M : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (N : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8), (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) -> (Ne.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Submodule.hasBot.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8))) -> (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N M) -> (Exists.{succ u3} O (fun (y : O) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) (fun (H : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) => Exists.{succ u2} R (fun (a : R) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) (fun (hay : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (M' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (N' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') (fun (N'_le_M' : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (y_ortho_M' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (ay_ortho_N' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => forall (n' : Nat) (bN' : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')), Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat Nat.hasLe n' m') (bM' : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (hnm : LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (fun (_x : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) => (Fin n') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (Fin n') (fun (_x : Fin n') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Basis.funLike.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N'))) bN' i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (fun (_x : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) => (Fin m') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (Fin m') (fun (_x : Fin m') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Basis.funLike.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M'))) bM' (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (Fin.hasLe n') (Fin.hasLe m')) (fun (_x : RelEmbedding.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) => (Fin n') -> (Fin m')) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u2} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N))) bN i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as' i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M))) bM (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) hnm) i)))))))))))))))))))))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1575 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
+ forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1575 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_aux Submodule.basis_of_pid_auxₓ'. -/
/-- The induction hypothesis of `submodule.basis_of_pid` and `submodule.smith_normal_form`.
@@ -334,7 +334,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall (N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5), Exists.{1} Nat (fun (n : Nat) => Nonempty.{max 1 (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), Exists.{1} Nat (fun (n : Nat) => Nonempty.{max (max (succ u1) (succ u2)) 1} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N))))
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), Exists.{1} Nat (fun (n : Nat) => Nonempty.{max (max (succ u1) (succ u2)) 1} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N))))
Case conversion may be inaccurate. Consider using '#align submodule.nonempty_basis_of_pid Submodule.nonempty_basis_of_pidₓ'. -/
/-- A submodule of a free `R`-module of finite rank is also a free `R`-module of finite rank,
if `R` is a principal ideal domain.
@@ -378,7 +378,7 @@ noncomputable def Submodule.basisOfPid {ι : Type _} [Finite ι] (b : Basis ι R
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] (b : Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5), Eq.{succ (max u1 u2)} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) (Submodule.basisOfPid.{u1, u2, u3} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 ι _inst_6 b (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Sigma.mk.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Basis.empty.{0, u1, u2} (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Unique.subsingleton.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.uniqueBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) Fin.isEmpty))
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), Eq.{max (succ u2) (succ u1)} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (Submodule.basisOfPid.{u2, u1, u3} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 ι _inst_6 b (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Sigma.mk.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Basis.empty.{0, u2, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Unique.instSubsingleton.{succ u1} (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Submodule.uniqueBot.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) instIsEmptyFinOfNatNatInstOfNatNat))
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), Eq.{max (succ u2) (succ u1)} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (Submodule.basisOfPid.{u2, u1, u3} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 ι _inst_6 b (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Sigma.mk.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Basis.empty.{0, u2, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Unique.instSubsingleton.{succ u1} (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Submodule.uniqueBot.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) instIsEmptyFinOfNatNatInstOfNatNat))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_bot Submodule.basisOfPid_botₓ'. -/
theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
Submodule.basisOfPid b ⊥ = ⟨0, Basis.empty _⟩ :=
@@ -393,7 +393,7 @@ theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) -> (Basis.{u3, u1, u2} ι R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O)) -> (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N)))
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) N O) -> (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O)) -> (Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N)))
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {N : Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.completeLattice.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) N O) -> (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Submodule.module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O)) -> (Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N)))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_of_le Submodule.basisOfPidOfLEₓ'. -/
/-- A submodule inside a free `R`-submodule of finite rank is also a free `R`-module of finite rank,
if `R` is a principal ideal domain.
@@ -410,7 +410,7 @@ noncomputable def Submodule.basisOfPidOfLE {ι : Type _} [Finite ι] {N O : Subm
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {b : ι -> M}, (LinearIndependent.{u3, u1, u2} ι R M b (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N (Submodule.span.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι b))) -> (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {b : ι -> M}, (LinearIndependent.{u3, u1, u2} ι R M b (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) N (Submodule.span.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι b))) -> (Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {b : ι -> M}, (LinearIndependent.{u3, u1, u2} ι R M b (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall {N : Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.completeLattice.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) N (Submodule.span.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι b))) -> (Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_of_le_span Submodule.basisOfPidOfLESpanₓ'. -/
/-- A submodule inside the span of a linear independent family is a free `R`-module of finite rank,
if `R` is a principal ideal domain. -/
@@ -426,7 +426,7 @@ variable {M}
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Fintype.{u1} ι] {s : ι -> M}, (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.span.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 (Set.range.{u3, succ u1} M ι s)) (Top.top.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.hasTop.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (SubNegMonoid.toAddMonoid.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_4))))) (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))], Sigma.{0, max u2 u3} Nat (fun (n : Nat) => Basis.{0, u2, u3} (Fin n) R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))
but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Fintype.{u1} ι] {s : ι -> M}, (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.span.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 (Set.range.{u3, succ u1} M ι s)) (Top.top.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.instTopSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (SMulZeroClass.toSMul.{u2, u3} R M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))], Sigma.{0, max u3 u2} Nat (fun (n : Nat) => Basis.{0, u2, u3} (Fin n) R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Fintype.{u1} ι] {s : ι -> M}, (Eq.{succ u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.span.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 (Set.range.{u3, succ u1} M ι s)) (Top.top.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.instTopSubmodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (SMulZeroClass.toSMul.{u2, u3} R M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (Module.toMulActionWithZero.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))], Sigma.{0, max u3 u2} Nat (fun (n : Nat) => Basis.{0, u2, u3} (Fin n) R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))
Case conversion may be inaccurate. Consider using '#align module.basis_of_finite_type_torsion_free Module.basisOfFiniteTypeTorsionFreeₓ'. -/
/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » I) -/
/-- A finite type torsion free module over a PID admits a basis. -/
@@ -489,7 +489,7 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι] {s : ι -> M}, (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.span.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 (Set.range.{u3, succ u1} M ι s)) (Top.top.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.hasTop.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (SubNegMonoid.toAddMonoid.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_4))))) (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))], Module.Free.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Finite.{succ u3} ι] {s : ι -> M}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.span.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι s)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.instTopSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Module.Free.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)
+ forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Finite.{succ u3} ι] {s : ι -> M}, (Eq.{succ u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.span.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι s)) (Top.top.{u2} (Submodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.instTopSubmodule.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Module.Free.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)
Case conversion may be inaccurate. Consider using '#align module.free_of_finite_type_torsion_free Module.free_of_finite_type_torsion_freeₓ'. -/
theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs : span R (range s) = ⊤)
[NoZeroSMulDivisors R M] : Module.Free R M :=
@@ -503,7 +503,7 @@ theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs :
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_4))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Module.Finite.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)
Case conversion may be inaccurate. Consider using '#align module.basis_of_finite_type_torsion_free' Module.basisOfFiniteTypeTorsionFree'ₓ'. -/
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree' [Module.Finite R M]
@@ -515,7 +515,7 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree' [Module.Finite R M]
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_4))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Module.Free.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] [_inst_6 : Module.Finite.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))], Module.Free.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] [_inst_6 : Module.Finite.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))], Module.Free.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5
Case conversion may be inaccurate. Consider using '#align module.free_of_finite_type_torsion_free' Module.free_of_finite_type_torsion_free'ₓ'. -/
theorem Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMulDivisors R M] :
Module.Free R M :=
@@ -530,7 +530,7 @@ section SmithNormal
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)], (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> Type.{u3} -> Nat -> Sort.{max (succ u1) (succ u2) (succ u3)}
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] {_inst_3 : Type.{u2}} [M : AddCommGroup.{u2} _inst_3] [_inst_4 : Module.{u1, u2} R _inst_3 (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} _inst_3 M)], (Submodule.{u1, u2} R _inst_3 (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} _inst_3 M) _inst_4) -> Type.{u3} -> Nat -> Sort.{max (max (succ u1) (succ u2)) (succ u3)}
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))] {_inst_3 : Type.{u2}} [M : AddCommGroup.{u2} _inst_3] [_inst_4 : Module.{u1, u2} R _inst_3 (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} _inst_3 M)], (Submodule.{u1, u2} R _inst_3 (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} _inst_3 M) _inst_4) -> Type.{u3} -> Nat -> Sort.{max (max (succ u1) (succ u2)) (succ u3)}
Case conversion may be inaccurate. Consider using '#align basis.smith_normal_form Basis.SmithNormalFormₓ'. -/
/-- A Smith normal form basis for a submodule `N` of a module `M` consists of
bases for `M` and `N` such that the inclusion map `N → M` can be written as a
@@ -548,7 +548,7 @@ structure Basis.SmithNormalForm (N : Submodule R M) (ι : Type _) (n : ℕ) wher
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat Nat.hasLe n o) (fun (hno : LE.le.{0} Nat Nat.hasLe n o) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u3} M ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (_x : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => (Fin n) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Basis.funLike.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N))) bN i)) (SMul.smul.{u2, u3} R M (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) (a i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (_x : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => (Fin o) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Basis.funLike.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O))) bO (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (Fin.hasLe n) (Fin.hasLe o)) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) => (Fin n) -> (Fin o)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) (Fin.castLE n o hno) i))))))))))))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (O : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), (LE.le.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat instLENat n o) (fun (hno : LE.le.{0} Nat instLENat n o) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u1} M (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) N)) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) _x) (Basis.funLike.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) bN i)) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) O)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) (Submodule.smul.{u2, u2, u1} R R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O (Algebra.toSMul.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (IsScalarTower.left.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (a i) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) _x) (Basis.funLike.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) bO (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i))))))))))))
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (O : Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), (LE.le.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat instLENat n o) (fun (hno : LE.le.{0} Nat instLENat n o) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u1} M (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) N)) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) _x) (Basis.funLike.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) bN i)) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) O)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) (Submodule.smul.{u2, u2, u1} R R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O (Algebra.toSMul.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (IsScalarTower.left.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (a i) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) _x) (Basis.funLike.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) bO (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i))))))))))))
Case conversion may be inaccurate. Consider using '#align submodule.exists_smith_normal_form_of_le Submodule.exists_smith_normal_form_of_leₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
@@ -585,7 +585,7 @@ theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M)
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Sigma.{0, max u2 u3} Nat (fun (o : Nat) => Sigma.{0, max u2 u3} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 _inst_3 (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.semilinearMapClass.{u2, u2, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))) N O) -> (Sigma.{0, max u3 u2} Nat (fun (o : Nat) => Sigma.{0, max u3 u2} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))) N O) -> (Sigma.{0, max u3 u2} Nat (fun (o : Nat) => Sigma.{0, max u3 u2} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (Submodule.addCommMonoid.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
Case conversion may be inaccurate. Consider using '#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLEₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
@@ -612,7 +612,7 @@ noncomputable def Submodule.smithNormalFormOfLE [Finite ι] (b : Basis ι R M) (
lean 3 declaration is
forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {M : Type.{u_3}} [_inst_4 : AddCommGroup.{u_3} M] [_inst_5 : Module.{u_2, u_3} R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4)] [_inst_6 : Finite.{succ u_1} ι], (Basis.{u_1, u_2, u_3} ι R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u_2, u_3} R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5), Sigma.{0, max u_2 u_3 u_1} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 N ι n))
but is expected to have type
- forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {M : Type.{u_3}} [_inst_4 : AddCommGroup.{u_3} M] [_inst_5 : Module.{u_2, u_3} R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4)] [_inst_6 : Finite.{succ u_1} ι], (Basis.{u_1, u_2, u_3} ι R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u_2, u_3} R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5), Sigma.{0, max (max u_1 u_3) u_2} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 M _inst_4 _inst_5 N ι n))
+ forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {M : Type.{u_3}} [_inst_4 : AddCommGroup.{u_3} M] [_inst_5 : Module.{u_2, u_3} R M (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4)] [_inst_6 : Finite.{succ u_1} ι], (Basis.{u_1, u_2, u_3} ι R M (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u_2, u_3} R M (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5), Sigma.{0, max (max u_1 u_3) u_2} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 M _inst_4 _inst_5 N ι n))
Case conversion may be inaccurate. Consider using '#align submodule.smith_normal_form Submodule.smithNormalFormₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
@@ -642,7 +642,7 @@ variable {S : Type _} [CommRing S] [IsDomain S] [Algebra R S]
lean 3 declaration is
forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {S : Type.{u_4}} [_inst_6 : CommRing.{u_4} S] [_inst_7 : IsDomain.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))] [_inst_8 : Algebra.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))] [_inst_9 : Fintype.{u_1} ι], (Basis.{u_1, u_2, u_4} ι R S (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_4} S (NonUnitalNonAssocRing.toAddCommGroup.{u_4} S (NonAssocRing.toNonUnitalNonAssocRing.{u_4} S (Ring.toNonAssocRing.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))), (Ne.{succ u_4} (Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) I (Bot.bot.{u_4} (Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) (Submodule.hasBot.{u_4, u_4} S S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Semiring.toModule.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))) -> (Basis.SmithNormalForm.{u_2, u_4, u_1} R _inst_1 _inst_2 _inst_3 S (NonUnitalNonAssocRing.toAddCommGroup.{u_4} S (NonAssocRing.toNonUnitalNonAssocRing.{u_4} S (Ring.toNonAssocRing.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8) (Submodule.restrictScalars.{u_2, u_4, u_4} R S S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8) (Semiring.toModule.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) (SMulZeroClass.toHasSmul.{u_2, u_4} R S (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u_2, u_4} R S (MulZeroClass.toHasZero.{u_2} R (MulZeroOneClass.toMulZeroClass.{u_2} R (MonoidWithZero.toMulZeroOneClass.{u_2} R (Semiring.toMonoidWithZero.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)))))) (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u_2, u_4} R S (Semiring.toMonoidWithZero.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1))) (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (Module.toMulActionWithZero.{u_2, u_4} R S (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8))))) (Ideal.smithNormalForm._proof_1.{u_2, u_4} R _inst_1 S _inst_6 _inst_8) I) ι (Fintype.card.{u_1} ι _inst_9)))
but is expected to have type
- forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {S : Type.{u_3}} [_inst_6 : CommRing.{u_3} S] [_inst_7 : IsDomain.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))] [_inst_8 : Algebra.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))] [_inst_9 : Fintype.{u_1} ι], (Basis.{u_1, u_2, u_3} ι R S (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} S (NonAssocRing.toNonUnitalNonAssocRing.{u_3} S (Ring.toNonAssocRing.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))), (Ne.{succ u_3} (Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) I (Bot.bot.{u_3} (Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) (Submodule.instBotSubmodule.{u_3, u_3} S S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Semiring.toModule.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)))))) -> (Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 S (Ring.toAddCommGroup.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (Submodule.restrictScalars.{u_2, u_3, u_3} R S S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (Semiring.toModule.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) (Algebra.toSMul.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (IsScalarTower.right.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) I) ι (Fintype.card.{u_1} ι _inst_9)))
+ forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {S : Type.{u_3}} [_inst_6 : CommRing.{u_3} S] [_inst_7 : IsDomain.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))] [_inst_8 : Algebra.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))] [_inst_9 : Fintype.{u_1} ι], (Basis.{u_1, u_2, u_3} ι R S (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} S (NonAssocRing.toNonUnitalNonAssocRing.{u_3} S (Ring.toNonAssocRing.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))), (Ne.{succ u_3} (Ideal.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))) I (Bot.bot.{u_3} (Ideal.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))) (Submodule.instBotSubmodule.{u_3, u_3} S S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))))) (Semiring.toModule.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)))))) -> (Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 S (Ring.toAddCommGroup.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) _inst_8) (Submodule.restrictScalars.{u_2, u_3, u_3} R S S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))))) (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) _inst_8) (Semiring.toModule.{u_3} S (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6))) (Algebra.toSMul.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) _inst_8) (IsScalarTower.right.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (CommSemiring.toSemiring.{u_3} S (CommRing.toCommSemiring.{u_3} S _inst_6)) _inst_8) I) ι (Fintype.card.{u_1} ι _inst_9)))
Case conversion may be inaccurate. Consider using '#align ideal.smith_normal_form Ideal.smithNormalFormₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -669,7 +669,7 @@ variable [Finite ι]
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Exists.{max (succ u1) (succ u2) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (b' : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => Exists.{max (succ u1) (succ u2)} (ι -> R) (fun (a : ι -> R) => Exists.{max (succ u1) (succ u2) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (fun (ab' : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) => forall (i : ι), Eq.{succ u3} S ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeSubtype.{succ u3} S (fun (x : S) => Membership.Mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.hasMem.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I))))) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (fun (_x : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) => ι -> (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I)) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) ι (fun (_x : ι) => coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Basis.funLike.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)))) ab' i)) (SMul.smul.{u2, u3} R S (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (a i) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (_x : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => ι -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) ι (fun (_x : ι) => S) (Basis.funLike.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) b' i)))))))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))), (Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) -> (Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) (fun (b' : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) => Exists.{max (succ u3) (succ u2)} (ι -> R) (fun (a : ι -> R) => Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) (fun (ab' : Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) => forall (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ab' i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (a i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) b' i)))))))
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))), (Ne.{succ u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)))))) -> (Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) (fun (b' : Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) => Exists.{max (succ u3) (succ u2)} (ι -> R) (fun (a : ι -> R) => Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) (fun (ab' : Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) => forall (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) ab' i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (a i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) b' i)))))))
Case conversion may be inaccurate. Consider using '#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_formₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -701,7 +701,7 @@ theorem Ideal.exists_smith_normal_form (b : Basis ι R S) (I : Ideal S) (hI : I
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)))
but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)))
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8)))
Case conversion may be inaccurate. Consider using '#align ideal.ring_basis Ideal.ringBasisₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -719,7 +719,7 @@ noncomputable def Ideal.ringBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))))
but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.instMembership.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) (SetLike.instMembership.{u3, u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8))))
Case conversion may be inaccurate. Consider using '#align ideal.self_basis Ideal.selfBasisₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -737,7 +737,7 @@ noncomputable def Ideal.selfBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> ι -> R)
but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> ι -> R)
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_6)))))) -> ι -> R)
Case conversion may be inaccurate. Consider using '#align ideal.smith_coeffs Ideal.smithCoeffsₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -755,7 +755,7 @@ noncomputable def Ideal.smithCoeffs (b : Basis ι R S) (I : Ideal S) (hI : I ≠
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι] (b : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (hI : Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) (i : ι), Eq.{succ u3} S ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeSubtype.{succ u3} S (fun (x : S) => Membership.Mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.hasMem.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I))))) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) (fun (_x : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) => ι -> (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I)) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) ι (fun (_x : ι) => coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Basis.funLike.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8)))) (Ideal.selfBasis.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i)) (SMul.smul.{u2, u3} R S (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Ideal.smithCoeffs.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (_x : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => ι -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) ι (fun (_x : ι) => S) (Basis.funLike.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (Ideal.ringBasis.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) (Ideal.selfBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) (Ideal.ringBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i))
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) (I : Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)))))) (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) x I)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8))) (Ideal.selfBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) (Ideal.ringBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i))
Case conversion may be inaccurate. Consider using '#align ideal.self_basis_def Ideal.selfBasis_defₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -772,7 +772,7 @@ theorem Ideal.selfBasis_def (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) :
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι] (b : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (hI : Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) (i : ι), Ne.{succ u2} R (Ideal.smithCoeffs.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) (i : ι), Ne.{succ u2} R (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2)))))
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) _inst_8)) (I : Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_6)))))) (i : ι), Ne.{succ u2} R (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2)))))
Case conversion may be inaccurate. Consider using '#align ideal.smith_coeffs_ne_zero Ideal.smithCoeffs_ne_zeroₓ'. -/
@[simp]
theorem Ideal.smithCoeffs_ne_zero (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) (i) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/9b2b58d6b14b895b2f375108e765cb47de71aebd
@@ -71,7 +71,7 @@ open Submodule.IsPrincipal Submodule
lean 3 declaration is
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}}, (Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}}, (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) -> (forall {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)))))) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} R (Ring.toAddCommGroup.{u2} R _inst_1)) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
+ forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}}, (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) -> (forall {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} R (Ring.toAddCommGroup.{u2} R _inst_1)) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zeroₓ'. -/
theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodule R M}
{ϕ : M →ₗ[R] R} (hϕ : ∀ ψ : M →ₗ[R] R, ¬N.map ϕ < N.map ψ) [(N.map ϕ).IsPrincipal]
@@ -91,7 +91,7 @@ theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodul
lean 3 declaration is
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}} {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, (Basis.{u3, u1, u2} ι R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) (Ring.toSemiring.{u1} R _inst_1) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O)) -> (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) N O) -> (forall {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}} {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3}, (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) (Ring.toSemiring.{u2} R _inst_1) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O)) -> (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) N O) -> (forall {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)))))) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) O ϕ N) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) O ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) O ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
+ forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}} {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3}, (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) (Ring.toSemiring.{u2} R _inst_1) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O)) -> (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) N O) -> (forall {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1))))))) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R _inst_1)) O ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_submodule_image_eq_zero eq_bot_of_generator_maximal_submoduleImage_eq_zeroₓ'. -/
theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M} (b : Basis ι R O)
(hNO : N ≤ O) {ϕ : O →ₗ[R] R} (hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
@@ -142,7 +142,7 @@ open Submodule.IsPrincipal
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} (hNO : LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u1, u1} R R (CommRing.toRing.{u1} R _inst_1) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) y N), (Eq.{succ u1} R (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ϕ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Dvd.Dvd.{u1} R (semigroupDvd.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ψ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {N : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} {O : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} (hNO : LE.le.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) {ϕ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))}, (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u2, u2} R R (CommRing.toRing.{u2} R _inst_1) (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) y N), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) ϕ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Dvd.dvd.{u2} R (semigroupDvd.{u2} R (SemigroupWithZero.toSemigroup.{u2} R (NonUnitalSemiring.toSemigroupWithZero.{u2} R (NonUnitalRing.toNonUnitalSemiring.{u2} R (NonUnitalCommRing.toNonUnitalRing.{u2} R (CommRing.toNonUnitalCommRing.{u2} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) ψ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {N : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} {O : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} (hNO : LE.le.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) {ϕ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))}, (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u2, u2} R R (CommRing.toRing.{u2} R _inst_1) (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) y N), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) ϕ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))), Dvd.dvd.{u2} R (semigroupDvd.{u2} R (SemigroupWithZero.toSemigroup.{u2} R (NonUnitalSemiring.toSemigroupWithZero.{u2} R (NonUnitalRing.toNonUnitalSemiring.{u2} R (NonUnitalCommRing.toNonUnitalRing.{u2} R (CommRing.toNonUnitalCommRing.{u2} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) O ϕ N) _inst_6) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) ψ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
Case conversion may be inaccurate. Consider using '#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvdₓ'. -/
theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤ O) {ϕ : O →ₗ[R] R}
(hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
@@ -184,7 +184,7 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] [_inst_6 : Finite.{succ u1} ι] {O : Type.{u3}} [_inst_7 : AddCommGroup.{u3} O] [_inst_8 : Module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)] (M : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (N : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8), (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) -> (Ne.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Submodule.hasBot.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8))) -> (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N M) -> (Exists.{succ u3} O (fun (y : O) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) (fun (H : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) => Exists.{succ u2} R (fun (a : R) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) (fun (hay : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (M' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (N' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') (fun (N'_le_M' : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (y_ortho_M' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (ay_ortho_N' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => forall (n' : Nat) (bN' : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')), Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat Nat.hasLe n' m') (bM' : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (hnm : LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (fun (_x : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) => (Fin n') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (Fin n') (fun (_x : Fin n') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Basis.funLike.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N'))) bN' i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (fun (_x : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) => (Fin m') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (Fin m') (fun (_x : Fin m') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Basis.funLike.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M'))) bM' (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (Fin.hasLe n') (Fin.hasLe m')) (fun (_x : RelEmbedding.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) => (Fin n') -> (Fin m')) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u2} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N))) bN i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as' i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M))) bM (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) hnm) i)))))))))))))))))))))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1563 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
+ forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1575 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_aux Submodule.basis_of_pid_auxₓ'. -/
/-- The induction hypothesis of `submodule.basis_of_pid` and `submodule.smith_normal_form`.
@@ -642,7 +642,7 @@ variable {S : Type _} [CommRing S] [IsDomain S] [Algebra R S]
lean 3 declaration is
forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {S : Type.{u_4}} [_inst_6 : CommRing.{u_4} S] [_inst_7 : IsDomain.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))] [_inst_8 : Algebra.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))] [_inst_9 : Fintype.{u_1} ι], (Basis.{u_1, u_2, u_4} ι R S (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_4} S (NonUnitalNonAssocRing.toAddCommGroup.{u_4} S (NonAssocRing.toNonUnitalNonAssocRing.{u_4} S (Ring.toNonAssocRing.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))), (Ne.{succ u_4} (Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) I (Bot.bot.{u_4} (Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) (Submodule.hasBot.{u_4, u_4} S S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Semiring.toModule.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))) -> (Basis.SmithNormalForm.{u_2, u_4, u_1} R _inst_1 _inst_2 _inst_3 S (NonUnitalNonAssocRing.toAddCommGroup.{u_4} S (NonAssocRing.toNonUnitalNonAssocRing.{u_4} S (Ring.toNonAssocRing.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8) (Submodule.restrictScalars.{u_2, u_4, u_4} R S S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8) (Semiring.toModule.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) (SMulZeroClass.toHasSmul.{u_2, u_4} R S (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u_2, u_4} R S (MulZeroClass.toHasZero.{u_2} R (MulZeroOneClass.toMulZeroClass.{u_2} R (MonoidWithZero.toMulZeroOneClass.{u_2} R (Semiring.toMonoidWithZero.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)))))) (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u_2, u_4} R S (Semiring.toMonoidWithZero.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1))) (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (Module.toMulActionWithZero.{u_2, u_4} R S (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8))))) (Ideal.smithNormalForm._proof_1.{u_2, u_4} R _inst_1 S _inst_6 _inst_8) I) ι (Fintype.card.{u_1} ι _inst_9)))
but is expected to have type
- forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {S : Type.{u_3}} [_inst_6 : CommRing.{u_3} S] [_inst_7 : IsDomain.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))] [_inst_8 : Algebra.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))] [_inst_9 : Fintype.{u_1} ι], (Basis.{u_1, u_2, u_3} ι R S (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} S (NonAssocRing.toNonUnitalNonAssocRing.{u_3} S (Ring.toNonAssocRing.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) _inst_6 _inst_8)) -> (forall (I : Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))), (Ne.{succ u_3} (Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) I (Bot.bot.{u_3} (Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) (Submodule.instBotSubmodule.{u_3, u_3} S S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Semiring.toModule.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)))))) -> (Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 S (Ring.toAddCommGroup.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (Submodule.restrictScalars.{u_2, u_3, u_3} R S S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (Semiring.toModule.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) (Algebra.toSMul.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (IsScalarTower.right.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) I) ι (Fintype.card.{u_1} ι _inst_9)))
+ forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {S : Type.{u_3}} [_inst_6 : CommRing.{u_3} S] [_inst_7 : IsDomain.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))] [_inst_8 : Algebra.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))] [_inst_9 : Fintype.{u_1} ι], (Basis.{u_1, u_2, u_3} ι R S (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} S (NonAssocRing.toNonUnitalNonAssocRing.{u_3} S (Ring.toNonAssocRing.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))), (Ne.{succ u_3} (Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) I (Bot.bot.{u_3} (Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) (Submodule.instBotSubmodule.{u_3, u_3} S S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Semiring.toModule.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)))))) -> (Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 S (Ring.toAddCommGroup.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (Submodule.restrictScalars.{u_2, u_3, u_3} R S S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (Semiring.toModule.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) (Algebra.toSMul.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (IsScalarTower.right.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) I) ι (Fintype.card.{u_1} ι _inst_9)))
Case conversion may be inaccurate. Consider using '#align ideal.smith_normal_form Ideal.smithNormalFormₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -669,7 +669,7 @@ variable [Finite ι]
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Exists.{max (succ u1) (succ u2) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (b' : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => Exists.{max (succ u1) (succ u2)} (ι -> R) (fun (a : ι -> R) => Exists.{max (succ u1) (succ u2) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (fun (ab' : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) => forall (i : ι), Eq.{succ u3} S ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeSubtype.{succ u3} S (fun (x : S) => Membership.Mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.hasMem.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I))))) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (fun (_x : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) => ι -> (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I)) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) ι (fun (_x : ι) => coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Basis.funLike.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)))) ab' i)) (SMul.smul.{u2, u3} R S (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (a i) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (_x : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => ι -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) ι (fun (_x : ι) => S) (Basis.funLike.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) b' i)))))))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) -> (forall (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))), (Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) -> (Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) (fun (b' : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) => Exists.{max (succ u3) (succ u2)} (ι -> R) (fun (a : ι -> R) => Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) (fun (ab' : Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) => forall (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ab' i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (a i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) b' i)))))))
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))), (Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) -> (Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) (fun (b' : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) => Exists.{max (succ u3) (succ u2)} (ι -> R) (fun (a : ι -> R) => Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) (fun (ab' : Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) => forall (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ab' i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (a i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) b' i)))))))
Case conversion may be inaccurate. Consider using '#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_formₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -701,7 +701,7 @@ theorem Ideal.exists_smith_normal_form (b : Basis ι R S) (I : Ideal S) (hI : I
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)))
but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)))
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)))
Case conversion may be inaccurate. Consider using '#align ideal.ring_basis Ideal.ringBasisₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -719,7 +719,7 @@ noncomputable def Ideal.ringBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))))
but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.instMembership.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.instMembership.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))
Case conversion may be inaccurate. Consider using '#align ideal.self_basis Ideal.selfBasisₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -737,7 +737,7 @@ noncomputable def Ideal.selfBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> ι -> R)
but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> ι -> R)
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> ι -> R)
Case conversion may be inaccurate. Consider using '#align ideal.smith_coeffs Ideal.smithCoeffsₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -755,7 +755,7 @@ noncomputable def Ideal.smithCoeffs (b : Basis ι R S) (I : Ideal S) (hI : I ≠
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι] (b : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (hI : Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) (i : ι), Eq.{succ u3} S ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeSubtype.{succ u3} S (fun (x : S) => Membership.Mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.hasMem.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I))))) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) (fun (_x : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) => ι -> (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I)) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) ι (fun (_x : ι) => coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Basis.funLike.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8)))) (Ideal.selfBasis.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i)) (SMul.smul.{u2, u3} R S (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Ideal.smithCoeffs.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (_x : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => ι -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) ι (fun (_x : ι) => S) (Basis.funLike.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (Ideal.ringBasis.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) (Ideal.selfBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) (Ideal.ringBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i))
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) (Ideal.selfBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) (Ideal.ringBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i))
Case conversion may be inaccurate. Consider using '#align ideal.self_basis_def Ideal.selfBasis_defₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -772,7 +772,7 @@ theorem Ideal.selfBasis_def (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) :
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι] (b : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (hI : Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) (i : ι), Ne.{succ u2} R (Ideal.smithCoeffs.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) (i : ι), Ne.{succ u2} R (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2)))))
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8)) (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) (i : ι), Ne.{succ u2} R (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2)))))
Case conversion may be inaccurate. Consider using '#align ideal.smith_coeffs_ne_zero Ideal.smithCoeffs_ne_zeroₓ'. -/
@[simp]
theorem Ideal.smithCoeffs_ne_zero (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) (i) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/52932b3a083d4142e78a15dc928084a22fea9ba0
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module linear_algebra.free_module.pid
-! leanprover-community/mathlib commit 210657c4ea4a4a7b234392f70a3a2a83346dfa90
+! leanprover-community/mathlib commit 86d1873c01a723aba6788f0b9051ae3d23b4c1c3
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.RingTheory.Finiteness
/-! # Free modules over PID
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
A free `R`-module `M` is a module with a basis over `R`,
equivalently it is an `R`-module linearly equivalent to `ι →₀ R` for some `ι`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/730c6d4cab72b9d84fcfb9e95e8796e9cd8f40ba
@@ -64,6 +64,12 @@ variable {ι : Type _} (b : Basis ι R M)
open Submodule.IsPrincipal Submodule
+/- warning: eq_bot_of_generator_maximal_map_eq_zero -> eq_bot_of_generator_maximal_map_eq_zero is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}}, (Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Submodule.map.{u1, u1, u2, u1, max u2 u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.semilinearMapClass.{u1, u1, u2, u1} R R M R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) _inst_3 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
+but is expected to have type
+ forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}}, (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) -> (forall {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)))))) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (Submodule.map.{u2, u2, u3, u2, max u2 u3} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} R (Ring.toAddCommGroup.{u2} R _inst_1)) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) M R (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u2} R R M R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) _inst_3 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zeroₓ'. -/
theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodule R M}
{ϕ : M →ₗ[R] R} (hϕ : ∀ ψ : M →ₗ[R] R, ¬N.map ϕ < N.map ψ) [(N.map ϕ).IsPrincipal]
(hgen : generator (N.map ϕ) = (0 : R)) : N = ⊥ :=
@@ -78,6 +84,12 @@ theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodul
⟨x, hx, rfl⟩
#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zero
+/- warning: eq_bot_of_generator_maximal_submodule_image_eq_zero -> eq_bot_of_generator_maximal_submoduleImage_eq_zero is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {ι : Type.{u3}} {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, (Basis.{u3, u1, u2} ι R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) (Ring.toSemiring.{u1} R _inst_1) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O)) -> (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) N O) -> (forall {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u1, u1} R R _inst_1 (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N)], (Eq.{succ u1} R (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) _inst_1 (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R _inst_1)) O ϕ N) _inst_4) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))))))) -> (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) N (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
+but is expected to have type
+ forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] {ι : Type.{u1}} {N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3} {O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3}, (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) (Ring.toSemiring.{u2} R _inst_1) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O)) -> (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) N O) -> (forall {ϕ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)}, (forall (ψ : LinearMap.{u2, u2, u3, u2} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x O)) R (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 O) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1)))))) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) O ϕ N) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) O ψ N))) -> (forall [_inst_4 : Submodule.IsPrincipal.{u2, u2} R R _inst_1 (Ring.toAddCommGroup.{u2} R _inst_1) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) O ϕ N)], (Eq.{succ u2} R (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R _inst_1) _inst_1 (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) (LinearMap.submoduleImage.{u2, u3, u2} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R _inst_1)))) (instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRing.{u2} R _inst_1) O ϕ N) _inst_4) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_1)))))) -> (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.instBotSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align eq_bot_of_generator_maximal_submodule_image_eq_zero eq_bot_of_generator_maximal_submoduleImage_eq_zeroₓ'. -/
theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M} (b : Basis ι R O)
(hNO : N ≤ O) {ϕ : O →ₗ[R] R} (hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
[(ϕ.submoduleImage N).IsPrincipal] (hgen : generator (ϕ.submoduleImage N) = 0) : N = ⊥ :=
@@ -101,6 +113,7 @@ variable {M : Type _} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal Set Submodule
+#print dvd_generator_iff /-
theorem dvd_generator_iff {I : Ideal R} [I.IsPrincipal] {x : R} (hx : x ∈ I) :
x ∣ generator I ↔ I = Ideal.span {x} :=
by
@@ -108,6 +121,7 @@ theorem dvd_generator_iff {I : Ideal R} [I.IsPrincipal] {x : R} (hx : x ∈ I) :
erw [Ideal.span_singleton_eq_span_singleton, ← dvd_dvd_iff_associated, ← mem_iff_generator_dvd]
exact ⟨fun h => ⟨hx, h⟩, fun h => h.2⟩
#align dvd_generator_iff dvd_generator_iff
+-/
end IsDomain
@@ -121,6 +135,12 @@ variable {M : Type _} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal
+/- warning: generator_maximal_submodule_image_dvd -> generator_maximal_submoduleImage_dvd is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} (hNO : LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) {ϕ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))}, (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Not (LT.lt.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Preorder.toLT.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (Submodule.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u1, u1} R R (CommRing.toRing.{u1} R _inst_1) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) y N), (Eq.{succ u1} R (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ϕ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))), Dvd.Dvd.{u1} R (semigroupDvd.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u1, u1} R R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CommRing.toRing.{u1} R _inst_1) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearMap.submoduleImage.{u1, u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) O ϕ N) _inst_6) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u2, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) => (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) -> R) (LinearMap.hasCoeToFun.{u1, u1, u2, u1} R R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ψ (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {N : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} {O : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5} (hNO : LE.le.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) {ϕ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))}, (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Not (LT.lt.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Preorder.toLT.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (PartialOrder.toPreorder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Submodule.completeLattice.{u2, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ψ N))) -> (forall [_inst_6 : Submodule.IsPrincipal.{u2, u2} R R (CommRing.toRing.{u2} R _inst_1) (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N)] (y : M) (yN : Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) y N), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) ϕ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6)) -> (forall (ψ : LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))), Dvd.dvd.{u2} R (semigroupDvd.{u2} R (SemigroupWithZero.toSemigroup.{u2} R (NonUnitalSemiring.toSemigroupWithZero.{u2} R (NonUnitalRing.toNonUnitalSemiring.{u2} R (NonUnitalCommRing.toNonUnitalRing.{u2} R (CommRing.toNonUnitalCommRing.{u2} R _inst_1)))))) (Submodule.IsPrincipal.generator.{u2, u2} R R (Ring.toAddCommGroup.{u2} R (CommRing.toRing.{u2} R _inst_1)) (CommRing.toRing.{u2} R _inst_1) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.submoduleImage.{u2, u1, u2} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) O ϕ N) _inst_6) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (LinearMap.{u2, u2, u1, u2} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (fun (_x : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) => R) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u2} R R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_1 (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) ψ (Subtype.mk.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O) y (hNO y yN)))))
+Case conversion may be inaccurate. Consider using '#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvdₓ'. -/
theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤ O) {ϕ : O →ₗ[R] R}
(hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
[(ϕ.submoduleImage N).IsPrincipal] (y : M) (yN : y ∈ N)
@@ -157,6 +177,12 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
· exact subset_span (mem_insert _ _)
#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvd
+/- warning: submodule.basis_of_pid_aux -> Submodule.basis_of_pid_aux is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] [_inst_6 : Finite.{succ u1} ι] {O : Type.{u3}} [_inst_7 : AddCommGroup.{u3} O] [_inst_8 : Module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)] (M : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (N : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8), (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) -> (Ne.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Submodule.hasBot.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8))) -> (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N M) -> (Exists.{succ u3} O (fun (y : O) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) (fun (H : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) y M) => Exists.{succ u2} R (fun (a : R) => Exists.{0} (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) (fun (hay : Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y) N) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (M' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) M' M) => Exists.{succ u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (fun (N' : Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) (fun (H : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' N) => Exists.{0} (LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') (fun (N'_le_M' : LE.le.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (Preorder.toLE.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (y_ortho_M' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z M') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c y) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) (fun (ay_ortho_N' : forall (c : R) (z : O), (Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) z N') -> (Eq.{succ u3} O (HAdd.hAdd.{u3, u3, u3} O O O (instHAdd.{u3} O (AddZeroClass.toHasAdd.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7)))))) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) c (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) a y)) z) (OfNat.ofNat.{u3} O 0 (OfNat.mk.{u3} O 0 (Zero.zero.{u3} O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (SubNegMonoid.toAddMonoid.{u3} O (AddGroup.toSubNegMonoid.{u3} O (AddCommGroup.toAddGroup.{u3} O _inst_7))))))))) -> (Eq.{succ u2} R c (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))))))))) => forall (n' : Nat) (bN' : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')), Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat Nat.hasLe n' m') (bM' : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (hnm : LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (fun (_x : Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) => (Fin n') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N')) (Fin n') (fun (_x : Fin n') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Basis.funLike.{0, u2, u3} (Fin n') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N'))) bN' i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M'))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (fun (_x : Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) => (Fin m') -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M')) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M')) (Fin m') (fun (_x : Fin m') => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Basis.funLike.{0, u2, u3} (Fin m') R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M') (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M') (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M'))) bM' (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (Fin.hasLe n') (Fin.hasLe m')) (fun (_x : RelEmbedding.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) => (Fin n') -> (Fin m')) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n') (Fin m') (LE.le.{0} (Fin n') (Fin.hasLe n')) (LE.le.{0} (Fin m') (Fin.hasLe m'))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u2} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))), Eq.{succ u3} O ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 N))) bN i)) (SMul.smul.{u2, u3} R O (SMulZeroClass.toHasSmul.{u2, u3} R O (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R O (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R O (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} O (AddMonoid.toAddZeroClass.{u3} O (AddCommMonoid.toAddMonoid.{u3} O (AddCommGroup.toAddCommMonoid.{u3} O _inst_7)))) (Module.toMulActionWithZero.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)))) (as' i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) O (coeSubtype.{succ u3} O (fun (x : O) => Membership.Mem.{u3, u3} O (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) x M))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (fun (_x : Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Basis.funLike.{0, u2, u3} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8) O (Submodule.setLike.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8)) M) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M) (Submodule.module.{u2, u3} R O (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} O _inst_7) _inst_8 M))) bM (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) m' (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) hnm) i)))))))))))))))))))))
+but is expected to have type
+ forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] [_inst_6 : Finite.{succ u3} ι] {O : Type.{u2}} [_inst_7 : AddCommGroup.{u2} O] [_inst_8 : Module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7)] (M : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (N : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8), (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) -> (Ne.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N (Bot.bot.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.instBotSubmodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))) -> (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N M) -> (Exists.{succ u2} O (fun (y : O) => And (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) y M) (Exists.{succ u1} R (fun (a : R) => Exists.{0} (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) (fun (x._@.Mathlib.LinearAlgebra.FreeModule.PID._hyg.1563 : Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y) N) => Exists.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (M' : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) M' M) (Exists.{succ u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (fun (N' : Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) => And (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' N) (Exists.{0} (LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') (fun (_N'_le_M' : LE.le.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Preorder.toLE.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (Submodule.completeLattice.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) N' M') => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_y_ortho_M' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z M') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c y) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => Exists.{0} (forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) (fun (_ay_ortho_N' : forall (c : R) (z : O), (Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) z N') -> (Eq.{succ u2} O (HAdd.hAdd.{u2, u2, u2} O O O (instHAdd.{u2} O (AddZeroClass.toAdd.{u2} O (AddMonoid.toAddZeroClass.{u2} O (SubNegMonoid.toAddMonoid.{u2} O (AddGroup.toSubNegMonoid.{u2} O (AddCommGroup.toAddGroup.{u2} O _inst_7)))))) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) c (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) a y)) z) (OfNat.ofNat.{u2} O 0 (Zero.toOfNat0.{u2} O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7)))))))) -> (Eq.{succ u1} R c (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))))))) => forall (n' : Nat) (bN' : Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')), Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (fun (bN : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) => forall (m' : Nat) (hn'm' : LE.le.{0} Nat instLENat n' m') (bM' : Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')), Exists.{0} (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (hnm : LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Exists.{max (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (fun (bM : Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) => forall (as : (Fin n') -> R), (forall (i : Fin n'), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) a) (Basis.funLike.{0, u1, u2} (Fin n') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N')) bN' i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M')) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) (Fin m') (fun (a : Fin m') => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin m') => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) a) (Basis.funLike.{0, u1, u2} (Fin m') R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M')) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M') (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M')) bM' (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (fun (a : Fin n') => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n') => Fin m') a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Lattice.toInf.{0} (Fin n') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n')))) (Lattice.toInf.{0} (Fin m') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m')))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (DistribLattice.toLattice.{0} (Fin n') (instDistribLattice.{0} (Fin n') (Fin.instLinearOrderFin n'))) (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n') (Fin m') (instLEFin n') (instLEFin m')) (Fin n') (Fin m') (Fin.instLinearOrderFin n') (DistribLattice.toLattice.{0} (Fin m') (instDistribLattice.{0} (Fin m') (Fin.instLinearOrderFin m'))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n') (Fin m') (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n') (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n') => LE.le.{0} (Fin n') (instLEFin n') x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin m') (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin m') => LE.le.{0} (Fin m') (instLEFin m') x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n' m' hn'm') i))))) -> (Exists.{succ u1} ((Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) (fun (as' : (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) -> R) => forall (i : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))), Eq.{succ u2} O (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) N)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 N)) bN i)) (HSMul.hSMul.{u1, u2, u2} R O O (instHSMul.{u1, u2} R O (SMulZeroClass.toSMul.{u1, u2} R O (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R O (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R O (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} O (SubNegZeroMonoid.toNegZeroClass.{u2} O (SubtractionMonoid.toSubNegZeroMonoid.{u2} O (SubtractionCommMonoid.toSubtractionMonoid.{u2} O (AddCommGroup.toDivisionAddCommMonoid.{u2} O _inst_7))))) (Module.toMulActionWithZero.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8))))) (as' i) (Subtype.val.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Set.{u2} O) (Set.instMembershipSet.{u2} O) x (SetLike.coe.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) M)) (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) a) (Basis.funLike.{0, u1, u2} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) R (Subtype.{succ u2} O (fun (x : O) => Membership.mem.{u2, u2} O (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8) O (Submodule.setLike.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8)) x M)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M) (Submodule.module.{u1, u2} R O (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} O _inst_7) _inst_8 M)) bM (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (a : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m')) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat m') (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) m' (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) hnm) i)))))))))))))))))))))
+Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_aux Submodule.basis_of_pid_auxₓ'. -/
/-- The induction hypothesis of `submodule.basis_of_pid` and `submodule.smith_normal_form`.
Basically, it says: let `N ≤ M` be a pair of submodules, then we can find a pair of
@@ -301,6 +327,12 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
simp only [Fin.cons_succ, coe_of_le, h i]
#align submodule.basis_of_pid_aux Submodule.basis_of_pid_aux
+/- warning: submodule.nonempty_basis_of_pid -> Submodule.nonempty_basis_of_pid is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall (N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5), Exists.{1} Nat (fun (n : Nat) => Nonempty.{max 1 (succ u1) (succ u2)} (Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), Exists.{1} Nat (fun (n : Nat) => Nonempty.{max (max (succ u1) (succ u2)) 1} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N))))
+Case conversion may be inaccurate. Consider using '#align submodule.nonempty_basis_of_pid Submodule.nonempty_basis_of_pidₓ'. -/
/-- A submodule of a free `R`-module of finite rank is also a free `R`-module of finite rank,
if `R` is a principal ideal domain.
@@ -327,6 +359,7 @@ theorem Submodule.nonempty_basis_of_pid {ι : Type _} [Finite ι] (b : Basis ι
exact ⟨n' + 1, ⟨bN⟩⟩
#align submodule.nonempty_basis_of_pid Submodule.nonempty_basis_of_pid
+#print Submodule.basisOfPid /-
/-- A submodule of a free `R`-module of finite rank is also a free `R`-module of finite rank,
if `R` is a principal ideal domain.
@@ -336,7 +369,14 @@ noncomputable def Submodule.basisOfPid {ι : Type _} [Finite ι] (b : Basis ι R
(N : Submodule R M) : Σn : ℕ, Basis (Fin n) R N :=
⟨_, (N.nonempty_basis_of_pid b).choose_spec.some⟩
#align submodule.basis_of_pid Submodule.basisOfPid
+-/
+/- warning: submodule.basis_of_pid_bot -> Submodule.basisOfPid_bot is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] (b : Basis.{u3, u1, u2} ι R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5), Eq.{succ (max u1 u2)} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) (Submodule.basisOfPid.{u1, u2, u3} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 ι _inst_6 b (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Sigma.mk.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Basis.empty.{0, u1, u2} (Fin (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Unique.subsingleton.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.hasBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) (Submodule.uniqueBot.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) Fin.isEmpty))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), Eq.{max (succ u2) (succ u1)} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (Submodule.basisOfPid.{u2, u1, u3} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 ι _inst_6 b (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Sigma.mk.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Basis.empty.{0, u2, u1} (Fin (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))) (Unique.instSubsingleton.{succ u1} (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x (Bot.bot.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.instBotSubmodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (Submodule.uniqueBot.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) instIsEmptyFinOfNatNatInstOfNatNat))
+Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_bot Submodule.basisOfPid_botₓ'. -/
theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
Submodule.basisOfPid b ⊥ = ⟨0, Basis.empty _⟩ :=
by
@@ -346,27 +386,45 @@ theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
exact Sigma.eq rfl (Basis.eq_of_apply_eq <| finZeroElim)
#align submodule.basis_of_pid_bot Submodule.basisOfPid_bot
+/- warning: submodule.basis_of_pid_of_le -> Submodule.basisOfPidOfLE is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N O) -> (Basis.{u3, u1, u2} ι R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O)) -> (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5} {O : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) N O) -> (Basis.{u3, u1, u2} ι R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x O)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 O)) -> (Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N)))
+Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_of_le Submodule.basisOfPidOfLEₓ'. -/
/-- A submodule inside a free `R`-submodule of finite rank is also a free `R`-module of finite rank,
if `R` is a principal ideal domain.
See also the stronger version `submodule.smith_normal_form_of_le`.
-/
-noncomputable def Submodule.basisOfPidOfLe {ι : Type _} [Finite ι] {N O : Submodule R M}
+noncomputable def Submodule.basisOfPidOfLE {ι : Type _} [Finite ι] {N O : Submodule R M}
(hNO : N ≤ O) (b : Basis ι R O) : Σn : ℕ, Basis (Fin n) R N :=
let ⟨n, bN'⟩ := Submodule.basisOfPid b (N.comap O.Subtype)
⟨n, bN'.map (Submodule.comapSubtypeEquivOfLe hNO)⟩
-#align submodule.basis_of_pid_of_le Submodule.basisOfPidOfLe
-
+#align submodule.basis_of_pid_of_le Submodule.basisOfPidOfLE
+
+/- warning: submodule.basis_of_pid_of_le_span -> Submodule.basisOfPidOfLESpan is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {b : ι -> M}, (LinearIndependent.{u3, u1, u2} ι R M b (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)))) N (Submodule.span.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι b))) -> (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] {ι : Type.{u3}} [_inst_6 : Finite.{succ u3} ι] {b : ι -> M}, (LinearIndependent.{u3, u1, u2} ι R M b (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> (forall {N : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5}, (LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))) N (Submodule.span.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι b))) -> (Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 N))))
+Case conversion may be inaccurate. Consider using '#align submodule.basis_of_pid_of_le_span Submodule.basisOfPidOfLESpanₓ'. -/
/-- A submodule inside the span of a linear independent family is a free `R`-module of finite rank,
if `R` is a principal ideal domain. -/
-noncomputable def Submodule.basisOfPidOfLeSpan {ι : Type _} [Finite ι] {b : ι → M}
+noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι → M}
(hb : LinearIndependent R b) {N : Submodule R M} (le : N ≤ Submodule.span R (Set.range b)) :
Σn : ℕ, Basis (Fin n) R N :=
- Submodule.basisOfPidOfLe le (Basis.span hb)
-#align submodule.basis_of_pid_of_le_span Submodule.basisOfPidOfLeSpan
+ Submodule.basisOfPidOfLE le (Basis.span hb)
+#align submodule.basis_of_pid_of_le_span Submodule.basisOfPidOfLESpan
variable {M}
+/- warning: module.basis_of_finite_type_torsion_free -> Module.basisOfFiniteTypeTorsionFree is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Fintype.{u1} ι] {s : ι -> M}, (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.span.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 (Set.range.{u3, succ u1} M ι s)) (Top.top.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.hasTop.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (SubNegMonoid.toAddMonoid.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_4))))) (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))], Sigma.{0, max u2 u3} Nat (fun (n : Nat) => Basis.{0, u2, u3} (Fin n) R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))
+but is expected to have type
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Fintype.{u1} ι] {s : ι -> M}, (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.span.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 (Set.range.{u3, succ u1} M ι s)) (Top.top.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.instTopSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (SMulZeroClass.toSMul.{u2, u3} R M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_4))))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))], Sigma.{0, max u3 u2} Nat (fun (n : Nat) => Basis.{0, u2, u3} (Fin n) R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))
+Case conversion may be inaccurate. Consider using '#align module.basis_of_finite_type_torsion_free Module.basisOfFiniteTypeTorsionFreeₓ'. -/
/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » I) -/
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
@@ -419,11 +477,17 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M
_ ∈ N := N.smul_mem _ (ha' i)
-- Since a submodule of a free `R`-module is free, we get that `A • M` is free
- obtain ⟨n, b : Basis (Fin n) R φ.range⟩ := Submodule.basisOfPidOfLe this sI_basis
+ obtain ⟨n, b : Basis (Fin n) R φ.range⟩ := Submodule.basisOfPidOfLE this sI_basis
-- hence `M` is free.
exact ⟨n, b.map ψ.symm⟩
#align module.basis_of_finite_type_torsion_free Module.basisOfFiniteTypeTorsionFree
+/- warning: module.free_of_finite_type_torsion_free -> Module.free_of_finite_type_torsion_free is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι] {s : ι -> M}, (Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.span.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 (Set.range.{u3, succ u1} M ι s)) (Top.top.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.hasTop.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (SubNegMonoid.toAddMonoid.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_4))))) (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))], Module.Free.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)
+but is expected to have type
+ forall {ι : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Finite.{succ u3} ι] {s : ι -> M}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.span.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5 (Set.range.{u2, succ u3} M ι s)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) (Submodule.instTopSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))) -> (forall [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Module.Free.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)
+Case conversion may be inaccurate. Consider using '#align module.free_of_finite_type_torsion_free Module.free_of_finite_type_torsion_freeₓ'. -/
theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs : span R (range s) = ⊤)
[NoZeroSMulDivisors R M] : Module.Free R M :=
by
@@ -432,12 +496,24 @@ theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs :
exact Module.Free.of_basis b
#align module.free_of_finite_type_torsion_free Module.free_of_finite_type_torsion_free
+/- warning: module.basis_of_finite_type_torsion_free' -> Module.basisOfFiniteTypeTorsionFree' is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_4))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Sigma.{0, max u1 u2} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_4))))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Sigma.{0, max u2 u1} Nat (fun (n : Nat) => Basis.{0, u1, u2} (Fin n) R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5)
+Case conversion may be inaccurate. Consider using '#align module.basis_of_finite_type_torsion_free' Module.basisOfFiniteTypeTorsionFree'ₓ'. -/
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree' [Module.Finite R M]
[NoZeroSMulDivisors R M] : Σn : ℕ, Basis (Fin n) R M :=
Module.basisOfFiniteTypeTorsionFree Module.Finite.exists_fin.choose_spec.choose_spec
#align module.basis_of_finite_type_torsion_free' Module.basisOfFiniteTypeTorsionFree'
+/- warning: module.free_of_finite_type_torsion_free' -> Module.free_of_finite_type_torsion_free' is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)] [_inst_6 : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_4))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5))))], Module.Free.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] [_inst_6 : Module.Finite.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5] [_inst_7 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))], Module.Free.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5
+Case conversion may be inaccurate. Consider using '#align module.free_of_finite_type_torsion_free' Module.free_of_finite_type_torsion_free'ₓ'. -/
theorem Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMulDivisors R M] :
Module.Free R M :=
by
@@ -447,6 +523,12 @@ theorem Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMul
section SmithNormal
+/- warning: basis.smith_normal_form -> Basis.SmithNormalForm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u1} R (CommRing.toRing.{u1} R _inst_1)] {M : Type.{u2}} [_inst_4 : AddCommGroup.{u2} M] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4)], (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_4) _inst_5) -> Type.{u3} -> Nat -> Sort.{max (succ u1) (succ u2) (succ u3)}
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] [_inst_2 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] {_inst_3 : Type.{u2}} [M : AddCommGroup.{u2} _inst_3] [_inst_4 : Module.{u1, u2} R _inst_3 (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} _inst_3 M)], (Submodule.{u1, u2} R _inst_3 (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} _inst_3 M) _inst_4) -> Type.{u3} -> Nat -> Sort.{max (max (succ u1) (succ u2)) (succ u3)}
+Case conversion may be inaccurate. Consider using '#align basis.smith_normal_form Basis.SmithNormalFormₓ'. -/
/-- A Smith normal form basis for a submodule `N` of a module `M` consists of
bases for `M` and `N` such that the inclusion map `N → M` can be written as a
(rectangular) matrix with `a` along the diagonal: in Smith normal form. -/
@@ -459,6 +541,12 @@ structure Basis.SmithNormalForm (N : Submodule R M) (ι : Type _) (n : ℕ) wher
snf : ∀ i, (bN i : M) = a i • bM (f i)
#align basis.smith_normal_form Basis.SmithNormalForm
+/- warning: submodule.exists_smith_normal_form_of_le -> Submodule.exists_smith_normal_form_of_le is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat Nat.hasLe n o) (fun (hno : LE.le.{0} Nat Nat.hasLe n o) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => Exists.{max 1 (succ u2) (succ u3)} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u3} M ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x N))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (fun (_x : Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) => (Fin n) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Basis.funLike.{0, u2, u3} (Fin n) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) N) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 N))) bN i)) (SMul.smul.{u2, u3} R M (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)))) (Module.toMulActionWithZero.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) (a i) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (coeSubtype.{succ u3} M (fun (x : M) => Membership.Mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.hasMem.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O))))) (coeFn.{max 1 (succ u2) (succ u3), succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (fun (_x : Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) => (Fin o) -> (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O)) (FunLike.hasCoeToFun.{max 1 (succ u2) (succ u3), 1, succ u3} (Basis.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Basis.funLike.{0, u2, u3} (Fin o) R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O))) bO (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (Fin.hasLe n) (Fin.hasLe o)) (fun (_x : RelEmbedding.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) => (Fin n) -> (Fin o)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin n) (Fin o) (LE.le.{0} (Fin n) (Fin.hasLe n)) (LE.le.{0} (Fin o) (Fin.hasLe o))) (Fin.castLE n o hno) i))))))))))))
+but is expected to have type
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u1}} [_inst_4 : AddCommGroup.{u1} M] [_inst_5 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4)] [_inst_6 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (O : Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5), (LE.le.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Preorder.toLE.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) N O) -> (Exists.{1} Nat (fun (n : Nat) => Exists.{1} Nat (fun (o : Nat) => Exists.{0} (LE.le.{0} Nat instLENat n o) (fun (hno : LE.le.{0} Nat instLENat n o) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (fun (bO : Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) => Exists.{max (succ u2) (succ u1)} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (fun (bN : Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) => Exists.{succ u2} ((Fin n) -> R) (fun (a : (Fin n) -> R) => forall (i : Fin n), Eq.{succ u1} M (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) N)) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin n) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) _x) (Basis.funLike.{0, u2, u1} (Fin n) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x N)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 N)) bN i)) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x (SetLike.coe.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) O)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (a : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i)) (Submodule.smul.{u2, u2, u1} R R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O (Algebra.toSMul.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)))) (IsScalarTower.left.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_4))))) (Module.toMulActionWithZero.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5))))) (a i) (FunLike.coe.{max (succ u2) (succ u1), 1, succ u1} (Basis.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) (Fin o) (fun (_x : Fin o) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin o) => Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) _x) (Basis.funLike.{0, u2, u1} (Fin o) R (Subtype.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) (SetLike.instMembership.{u1, u1} (Submodule.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5)) x O)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O) (Submodule.module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_4) _inst_5 O)) bO (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (fun (_x : Fin n) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin n) => Fin o) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (Lattice.toInf.{0} (Fin o) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin n) (Fin o) (instLEFin n) (instLEFin o)) (Fin n) (Fin o) (Fin.instLinearOrderFin n) (DistribLattice.toLattice.{0} (Fin o) (instDistribLattice.{0} (Fin o) (Fin.instLinearOrderFin o))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin n) (Fin o) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin o) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin o) => LE.le.{0} (Fin o) (instLEFin o) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Fin.castLE n o hno) i))))))))))))
+Case conversion may be inaccurate. Consider using '#align submodule.exists_smith_normal_form_of_le Submodule.exists_smith_normal_form_of_leₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
in Smith normal form.
@@ -490,6 +578,12 @@ theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M)
exact ⟨_, _, hmn, bM, bN, as, has⟩
#align submodule.exists_smith_normal_form_of_le Submodule.exists_smith_normal_form_of_le
+/- warning: submodule.smith_normal_form_of_le -> Submodule.smithNormalFormOfLE is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)))) N O) -> (Sigma.{0, max u2 u3} Nat (fun (o : Nat) => Sigma.{0, max u2 u3} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 _inst_3 (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.semilinearMapClass.{u2, u2, u3, u3} R R (coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) O) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
+but is expected to have type
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {M : Type.{u3}} [_inst_4 : AddCommGroup.{u3} M] [_inst_5 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4)] [_inst_6 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (O : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5), (LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5))))) N O) -> (Sigma.{0, max u3 u2} Nat (fun (o : Nat) => Sigma.{0, max u3 u2} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u2, u3, 0} R _inst_1 _inst_2 (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (Submodule.comap.{u2, u2, u3, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) (Submodule.addCommGroup.{u2, u3} R M (CommRing.toRing.{u2} R _inst_1) _inst_4 _inst_5 O)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (LinearMap.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u3} R R (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5)) x O)) M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) _inst_5 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (Submodule.subtype.{u2, u3} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_4) _inst_5 O) N) (Fin o) n))))
+Case conversion may be inaccurate. Consider using '#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLEₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
in Smith normal form.
@@ -499,7 +593,7 @@ need to map `N` into a submodule of `O`.
This is a strengthening of `submodule.basis_of_pid_of_le`.
-/
-noncomputable def Submodule.smithNormalFormOfLe [Finite ι] (b : Basis ι R M) (N O : Submodule R M)
+noncomputable def Submodule.smithNormalFormOfLE [Finite ι] (b : Basis ι R M) (N O : Submodule R M)
(N_le_O : N ≤ O) : Σo n : ℕ, Basis.SmithNormalForm (N.comap O.Subtype) (Fin o) n :=
by
choose n o hno bO bN a snf using N.exists_smith_normal_form_of_le b O N_le_O
@@ -509,8 +603,14 @@ noncomputable def Submodule.smithNormalFormOfLe [Finite ι] (b : Basis ι R M) (
ext
simp only [snf, Basis.map_apply, Submodule.comapSubtypeEquivOfLe_symm_apply,
Submodule.coe_smul_of_tower, RelEmbedding.coe_toEmbedding]
-#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLe
-
+#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLE
+
+/- warning: submodule.smith_normal_form -> Submodule.smithNormalForm is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {M : Type.{u_3}} [_inst_4 : AddCommGroup.{u_3} M] [_inst_5 : Module.{u_2, u_3} R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4)] [_inst_6 : Finite.{succ u_1} ι], (Basis.{u_1, u_2, u_3} ι R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u_2, u_3} R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5), Sigma.{0, max u_2 u_3 u_1} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 _inst_3 M _inst_4 _inst_5 N ι n))
+but is expected to have type
+ forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {M : Type.{u_3}} [_inst_4 : AddCommGroup.{u_3} M] [_inst_5 : Module.{u_2, u_3} R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4)] [_inst_6 : Finite.{succ u_1} ι], (Basis.{u_1, u_2, u_3} ι R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5) -> (forall (N : Submodule.{u_2, u_3} R M (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_3} M _inst_4) _inst_5), Sigma.{0, max (max u_1 u_3) u_2} Nat (fun (n : Nat) => Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 M _inst_4 _inst_5 N ι n))
+Case conversion may be inaccurate. Consider using '#align submodule.smith_normal_form Submodule.smithNormalFormₓ'. -/
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
in Smith normal form.
@@ -522,7 +622,7 @@ an ideal is the same as the dimension of the whole ring.
-/
noncomputable def Submodule.smithNormalForm [Finite ι] (b : Basis ι R M) (N : Submodule R M) :
Σn : ℕ, Basis.SmithNormalForm N ι n :=
- let ⟨m, n, bM, bN, f, a, snf⟩ := N.smithNormalFormOfLe b ⊤ le_top
+ let ⟨m, n, bM, bN, f, a, snf⟩ := N.smithNormalFormOfLE b ⊤ le_top
let bM' := bM.map (LinearEquiv.ofTop _ rfl)
let e := bM'.indexEquiv b
⟨n, bM'.reindex e, bN.map (comapSubtypeEquivOfLe le_top), f.trans e.toEmbedding, a, fun i => by
@@ -535,6 +635,12 @@ section Ideal
variable {S : Type _} [CommRing S] [IsDomain S] [Algebra R S]
+/- warning: ideal.smith_normal_form -> Ideal.smithNormalForm is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {S : Type.{u_4}} [_inst_6 : CommRing.{u_4} S] [_inst_7 : IsDomain.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))] [_inst_8 : Algebra.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))] [_inst_9 : Fintype.{u_1} ι], (Basis.{u_1, u_2, u_4} ι R S (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u_4} S (NonUnitalNonAssocRing.toAddCommGroup.{u_4} S (NonAssocRing.toNonUnitalNonAssocRing.{u_4} S (Ring.toNonAssocRing.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))), (Ne.{succ u_4} (Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) I (Bot.bot.{u_4} (Ideal.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) (Submodule.hasBot.{u_4, u_4} S S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Semiring.toModule.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))) -> (Basis.SmithNormalForm.{u_2, u_4, u_1} R _inst_1 _inst_2 _inst_3 S (NonUnitalNonAssocRing.toAddCommGroup.{u_4} S (NonAssocRing.toNonUnitalNonAssocRing.{u_4} S (Ring.toNonAssocRing.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8) (Submodule.restrictScalars.{u_2, u_4, u_4} R S S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8) (Semiring.toModule.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))) (SMulZeroClass.toHasSmul.{u_2, u_4} R S (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u_2, u_4} R S (MulZeroClass.toHasZero.{u_2} R (MulZeroOneClass.toMulZeroClass.{u_2} R (MonoidWithZero.toMulZeroOneClass.{u_2} R (Semiring.toMonoidWithZero.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)))))) (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u_2, u_4} R S (Semiring.toMonoidWithZero.{u_2} R (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1))) (AddZeroClass.toHasZero.{u_4} S (AddMonoid.toAddZeroClass.{u_4} S (AddCommMonoid.toAddMonoid.{u_4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)))))))) (Module.toMulActionWithZero.{u_2, u_4} R S (CommSemiring.toSemiring.{u_2} R (CommRing.toCommSemiring.{u_2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_4} S (Semiring.toNonAssocSemiring.{u_4} S (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6))))) (Algebra.toModule.{u_2, u_4} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_4} S (CommRing.toRing.{u_4} S _inst_6)) _inst_8))))) (Ideal.smithNormalForm._proof_1.{u_2, u_4} R _inst_1 S _inst_6 _inst_8) I) ι (Fintype.card.{u_1} ι _inst_9)))
+but is expected to have type
+ forall {ι : Type.{u_1}} {R : Type.{u_2}} [_inst_1 : CommRing.{u_2} R] [_inst_2 : IsDomain.{u_2} R (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u_2} R (CommRing.toRing.{u_2} R _inst_1)] {S : Type.{u_3}} [_inst_6 : CommRing.{u_3} S] [_inst_7 : IsDomain.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))] [_inst_8 : Algebra.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))] [_inst_9 : Fintype.{u_1} ι], (Basis.{u_1, u_2, u_3} ι R S (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} S (NonAssocRing.toNonUnitalNonAssocRing.{u_3} S (Ring.toNonAssocRing.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) _inst_6 _inst_8)) -> (forall (I : Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))), (Ne.{succ u_3} (Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) I (Bot.bot.{u_3} (Ideal.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) (Submodule.instBotSubmodule.{u_3, u_3} S S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Semiring.toModule.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)))))) -> (Basis.SmithNormalForm.{u_2, u_3, u_1} R _inst_1 _inst_2 S (Ring.toAddCommGroup.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (Submodule.restrictScalars.{u_2, u_3, u_3} R S S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u_3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u_3} S (Semiring.toNonAssocSemiring.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))))) (Ring.toSemiring.{u_2} R (CommRing.toRing.{u_2} R _inst_1)) (Algebra.toModule.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (Semiring.toModule.{u_3} S (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6))) (Algebra.toSMul.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) (IsScalarTower.right.{u_2, u_3} R S (CommRing.toCommSemiring.{u_2} R _inst_1) (Ring.toSemiring.{u_3} S (CommRing.toRing.{u_3} S _inst_6)) _inst_8) I) ι (Fintype.card.{u_1} ι _inst_9)))
+Case conversion may be inaccurate. Consider using '#align ideal.smith_normal_form Ideal.smithNormalFormₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -556,6 +662,12 @@ noncomputable def Ideal.smithNormalForm [Fintype ι] (b : Basis ι R S) (I : Ide
variable [Finite ι]
+/- warning: ideal.exists_smith_normal_form -> Ideal.exists_smith_normal_form is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Exists.{max (succ u1) (succ u2) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (b' : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => Exists.{max (succ u1) (succ u2)} (ι -> R) (fun (a : ι -> R) => Exists.{max (succ u1) (succ u2) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (fun (ab' : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) => forall (i : ι), Eq.{succ u3} S ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeSubtype.{succ u3} S (fun (x : S) => Membership.Mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.hasMem.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I))))) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (fun (_x : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) => ι -> (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I)) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) ι (fun (_x : ι) => coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Basis.funLike.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)))) ab' i)) (SMul.smul.{u2, u3} R S (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (a i) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (_x : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => ι -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) ι (fun (_x : ι) => S) (Basis.funLike.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) b' i)))))))
+but is expected to have type
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι], (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) -> (forall (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))), (Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) -> (Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) (fun (b' : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) => Exists.{max (succ u3) (succ u2)} (ι -> R) (fun (a : ι -> R) => Exists.{max (max (succ u3) (succ u2)) (succ u1)} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) (fun (ab' : Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) => forall (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ab' i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (a i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) b' i)))))))
+Case conversion may be inaccurate. Consider using '#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_formₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -582,6 +694,12 @@ theorem Ideal.exists_smith_normal_form (b : Basis ι R S) (I : Ideal S) (hI : I
Submodule.restrictScalarsEquiv_apply, Basis.coe_reindex]⟩
#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_form
+/- warning: ideal.ring_basis -> Ideal.ringBasis is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)))
+but is expected to have type
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)))
+Case conversion may be inaccurate. Consider using '#align ideal.ring_basis Ideal.ringBasisₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -594,6 +712,12 @@ noncomputable def Ideal.ringBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).some
#align ideal.ring_basis Ideal.ringBasis
+/- warning: ideal.self_basis -> Ideal.selfBasis is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))))
+but is expected to have type
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> (Basis.{u1, u2, u3} ι R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.instMembership.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))
+Case conversion may be inaccurate. Consider using '#align ideal.self_basis Ideal.selfBasisₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -606,6 +730,12 @@ noncomputable def Ideal.selfBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose_spec.some
#align ideal.self_basis Ideal.selfBasis
+/- warning: ideal.smith_coeffs -> Ideal.smithCoeffs is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> ι -> R)
+but is expected to have type
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι], (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) -> (forall (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))), (Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.instBotSubmodule.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) -> ι -> R)
+Case conversion may be inaccurate. Consider using '#align ideal.smith_coeffs Ideal.smithCoeffsₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -618,6 +748,12 @@ noncomputable def Ideal.smithCoeffs (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).choose_spec.some
#align ideal.smith_coeffs Ideal.smithCoeffs
+/- warning: ideal.self_basis_def -> Ideal.selfBasis_def is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι] (b : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (hI : Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) (i : ι), Eq.{succ u3} S ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) S (coeSubtype.{succ u3} S (fun (x : S) => Membership.Mem.{u3, u3} S (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (SetLike.hasMem.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) x I))))) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) (fun (_x : Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) => ι -> (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I)) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8))) ι (fun (_x : ι) => coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Basis.funLike.{u1, u2, u3} ι R (coeSort.{succ u3, succ (succ u3)} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) S (Submodule.setLike.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) I) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I) (Submodule.module'.{u2, u3, u3} R S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8) (Ideal.selfBasis._proof_1.{u2, u3} R _inst_1 S _inst_6 _inst_8)))) (Ideal.selfBasis.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i)) (SMul.smul.{u2, u3} R S (SMulZeroClass.toHasSmul.{u2, u3} R S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} R S (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R S (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))))) (Ideal.smithCoeffs.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (fun (_x : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) => ι -> S) (FunLike.hasCoeToFun.{max (succ u1) (succ u2) (succ u3), succ u1, succ u3} (Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) ι (fun (_x : ι) => S) (Basis.funLike.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8))) (Ideal.ringBasis.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i))
+but is expected to have type
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) (i : ι), Eq.{succ u1} S (Subtype.val.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Set.{u1} S) (Set.instMembershipSet.{u1} S) x (SetLike.coe.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))) I)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) _x) (Basis.funLike.{u3, u2, u1} ι R (Subtype.{succ u1} S (fun (x : S) => Membership.mem.{u1, u1} S (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) S (Submodule.setLike.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) x I)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Submodule.addCommMonoid.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I) (Submodule.module'.{u2, u1, u1} R S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8) (IsScalarTower.right.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) _inst_8))) (Ideal.selfBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i)) (HSMul.hSMul.{u2, u1, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (instHSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (Algebra.toSMul.{u2, u1} R ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) i) _inst_6)) _inst_8)) (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) ι (fun (_x : ι) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : ι) => S) _x) (Basis.funLike.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) (Ideal.ringBasis.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI) i))
+Case conversion may be inaccurate. Consider using '#align ideal.self_basis_def Ideal.selfBasis_defₓ'. -/
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -629,6 +765,12 @@ theorem Ideal.selfBasis_def (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) :
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose_spec.choose_spec
#align ideal.self_basis_def Ideal.selfBasis_def
+/- warning: ideal.smith_coeffs_ne_zero -> Ideal.smithCoeffs_ne_zero is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u3}} [_inst_6 : CommRing.{u3} S] [_inst_7 : IsDomain.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_8 : Algebra.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))] [_inst_9 : Finite.{succ u1} ι] (b : Basis.{u1, u2, u3} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} S (NonUnitalNonAssocRing.toAddCommGroup.{u3} S (NonAssocRing.toNonUnitalNonAssocRing.{u3} S (Ring.toNonAssocRing.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Algebra.toModule.{u2, u3} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) _inst_8)) (I : Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (hI : Ne.{succ u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) I (Bot.bot.{u3} (Ideal.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))) (Submodule.hasBot.{u3, u3} S S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6))))) (Semiring.toModule.{u3} S (Ring.toSemiring.{u3} S (CommRing.toRing.{u3} S _inst_6)))))) (i : ι), Ne.{succ u2} R (Ideal.smithCoeffs.{u1, u2, u3} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))))))))
+but is expected to have type
+ forall {ι : Type.{u3}} {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : IsPrincipalIdealRing.{u2} R (CommRing.toRing.{u2} R _inst_1)] {S : Type.{u1}} [_inst_6 : CommRing.{u1} S] [_inst_7 : IsDomain.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_8 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))] [_inst_9 : Finite.{succ u3} ι] (b : Basis.{u3, u2, u1} ι R S (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (_private.Mathlib.RingTheory.Ideal.Operations.0.Ideal.instModuleToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonUnitalRingToNonUnitalCommRing.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) _inst_6 _inst_8)) (I : Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (hI : Ne.{succ u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) I (Bot.bot.{u1} (Ideal.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))) (Submodule.instBotSubmodule.{u1, u1} S S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6))))) (Semiring.toModule.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_6)))))) (i : ι), Ne.{succ u2} R (Ideal.smithCoeffs.{u3, u2, u1} ι R _inst_1 _inst_2 _inst_3 S _inst_6 _inst_7 _inst_8 _inst_9 b I hI i) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align ideal.smith_coeffs_ne_zero Ideal.smithCoeffs_ne_zeroₓ'. -/
@[simp]
theorem Ideal.smithCoeffs_ne_zero (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) (i) :
Ideal.smithCoeffs b I hI i ≠ 0 := by
@@ -644,6 +786,12 @@ end SmithNormal
end PrincipalIdealDomain
+/- warning: linear_independent.restrict_scalars_algebras -> LinearIndependent.restrict_scalars_algebras is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {ι : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : Algebra.{u1, u2} R S _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3] [_inst_6 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_7 : IsScalarTower.{u1, u2, u3} R S M (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2))) (Algebra.toModule.{u1, u2} R S _inst_1 _inst_2 _inst_4))))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u2, u3} S M (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u3} S M (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u2, u3} S M _inst_2 _inst_3 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5))))], (Function.Injective.{succ u1, succ u2} R S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (algebraMap.{u1, u2} R S _inst_1 _inst_2 _inst_4))) -> (forall {v : ι -> M}, (LinearIndependent.{u4, u2, u3} ι S M v _inst_2 _inst_3 _inst_6) -> (LinearIndependent.{u4, u1, u3} ι R M v (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5))
+but is expected to have type
+ forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {ι : Type.{u1}} [_inst_1 : CommSemiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : Algebra.{u4, u3} R S _inst_1 _inst_2] [_inst_5 : Module.{u4, u2} R M (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3] [_inst_6 : Module.{u3, u2} S M _inst_2 _inst_3] [_inst_7 : IsScalarTower.{u4, u3, u2} R S M (Algebra.toSMul.{u4, u3} R S _inst_1 _inst_2 _inst_4) (SMulZeroClass.toSMul.{u3, u2} S M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} S M (MonoidWithZero.toZero.{u3} S (Semiring.toMonoidWithZero.{u3} S _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} S M (Semiring.toMonoidWithZero.{u3} S _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} S M _inst_2 _inst_3 _inst_6)))) (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (CommMonoidWithZero.toZero.{u4} R (CommSemiring.toCommMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3 _inst_5))))], (Function.Injective.{succ u4, succ u3} R S (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S _inst_1 _inst_2 _inst_4))) -> (forall {v : ι -> M}, (LinearIndependent.{u1, u3, u2} ι S M v _inst_2 _inst_3 _inst_6) -> (LinearIndependent.{u1, u4, u2} ι R M v (CommSemiring.toSemiring.{u4} R _inst_1) _inst_3 _inst_5))
+Case conversion may be inaccurate. Consider using '#align linear_independent.restrict_scalars_algebras LinearIndependent.restrict_scalars_algebrasₓ'. -/
/-- A set of linearly independent vectors in a module `M` over a semiring `S` is also linearly
independent over a subring `R` of `K`. -/
theorem LinearIndependent.restrict_scalars_algebras {R S M ι : Type _} [CommSemiring R] [Semiring S]
mathlib commit https://github.com/leanprover-community/mathlib/commit/730c6d4cab72b9d84fcfb9e95e8796e9cd8f40ba
@@ -508,7 +508,7 @@ noncomputable def Submodule.smithNormalFormOfLe [Finite ι] (b : Basis ι R M) (
fun i => _⟩
ext
simp only [snf, Basis.map_apply, Submodule.comapSubtypeEquivOfLe_symm_apply,
- Submodule.coe_smul_of_tower, RelEmbedding.coeFn_toEmbedding]
+ Submodule.coe_smul_of_tower, RelEmbedding.coe_toEmbedding]
#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLe
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
mathlib commit https://github.com/leanprover-community/mathlib/commit/039ef89bef6e58b32b62898dd48e9d1a4312bb65
@@ -182,9 +182,9 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
∀ (m') (hn'm' : n' ≤ m') (bM' : Basis (Fin m') R M'),
∃ (hnm : n' + 1 ≤ m' + 1)(bM : Basis (Fin (m' + 1)) R M),
∀ (as : Fin n' → R)
- (h : ∀ i : Fin n', (bN' i : O) = as i • (bM' (Fin.castLe hn'm' i) : O)),
+ (h : ∀ i : Fin n', (bN' i : O) = as i • (bM' (Fin.castLE hn'm' i) : O)),
∃ as' : Fin (n' + 1) → R,
- ∀ i : Fin (n' + 1), (bN i : O) = as' i • (bM (Fin.castLe hnm i) : O) :=
+ ∀ i : Fin (n' + 1), (bN i : O) = as' i • (bM (Fin.castLE hnm i) : O) :=
by
-- Let `ϕ` be a maximal projection of `M` onto `R`, in the sense that there is
-- no `ψ` whose image of `N` is larger than `ϕ`'s image of `N`.
@@ -295,9 +295,9 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
intro i
rw [Basis.coe_mkFinConsOfLe, Basis.coe_mkFinConsOfLe]
refine' Fin.cases _ (fun i => _) i
- · simp only [Fin.cons_zero, Fin.castLe_zero]
+ · simp only [Fin.cons_zero, Fin.castLE_zero]
exact a_smul_y'.symm
- · rw [Fin.castLe_succ]
+ · rw [Fin.castLE_succ]
simp only [Fin.cons_succ, coe_of_le, h i]
#align submodule.basis_of_pid_aux Submodule.basis_of_pid_aux
@@ -471,7 +471,7 @@ This is a strengthening of `submodule.basis_of_pid_of_le`.
theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M) (N O : Submodule R M)
(N_le_O : N ≤ O) :
∃ (n o : ℕ)(hno : n ≤ o)(bO : Basis (Fin o) R O)(bN : Basis (Fin n) R N)(a : Fin n → R),
- ∀ i, (bN i : M) = a i • bO (Fin.castLe hno i) :=
+ ∀ i, (bN i : M) = a i • bO (Fin.castLE hno i) :=
by
cases nonempty_fintype ι
revert N
@@ -504,7 +504,7 @@ noncomputable def Submodule.smithNormalFormOfLe [Finite ι] (b : Basis ι R M) (
by
choose n o hno bO bN a snf using N.exists_smith_normal_form_of_le b O N_le_O
refine'
- ⟨o, n, bO, bN.map (comap_subtype_equiv_of_le N_le_O).symm, (Fin.castLe hno).toEmbedding, a,
+ ⟨o, n, bO, bN.map (comap_subtype_equiv_of_le N_le_O).symm, (Fin.castLE hno).toEmbedding, a,
fun i => _⟩
ext
simp only [snf, Basis.map_apply, Submodule.comapSubtypeEquivOfLe_symm_apply,
mathlib commit https://github.com/leanprover-community/mathlib/commit/88fcb83fe7996142dfcfe7368d31304a9adc874a
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module linear_algebra.free_module.pid
-! leanprover-community/mathlib commit f62c15c01a5409b31b97a82d79a12980be4eff35
+! leanprover-community/mathlib commit 210657c4ea4a4a7b234392f70a3a2a83346dfa90
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -65,22 +65,21 @@ variable {ι : Type _} (b : Basis ι R M)
open Submodule.IsPrincipal Submodule
theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodule R M}
- {ϕ : M →ₗ[R] R} (hϕ : ∀ ψ : M →ₗ[R] R, N.map ϕ ≤ N.map ψ → N.map ψ = N.map ϕ)
- [(N.map ϕ).IsPrincipal] (hgen : generator (N.map ϕ) = (0 : R)) : N = ⊥ :=
+ {ϕ : M →ₗ[R] R} (hϕ : ∀ ψ : M →ₗ[R] R, ¬N.map ϕ < N.map ψ) [(N.map ϕ).IsPrincipal]
+ (hgen : generator (N.map ϕ) = (0 : R)) : N = ⊥ :=
by
rw [Submodule.eq_bot_iff]
intro x hx
refine' b.ext_elem fun i => _
rw [(eq_bot_iff_generator_eq_zero _).mpr hgen] at hϕ
rw [LinearEquiv.map_zero, Finsupp.zero_apply]
- exact (Submodule.eq_bot_iff _).mp (hϕ (Finsupp.lapply i ∘ₗ ↑b.repr) bot_le) _ ⟨x, hx, rfl⟩
+ exact
+ (Submodule.eq_bot_iff _).mp (not_bot_lt_iff.1 <| hϕ (Finsupp.lapply i ∘ₗ ↑b.repr)) _
+ ⟨x, hx, rfl⟩
#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zero
theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M} (b : Basis ι R O)
- (hNO : N ≤ O) {ϕ : O →ₗ[R] R}
- (hϕ :
- ∀ ψ : O →ₗ[R] R,
- ϕ.submoduleImage N ≤ ψ.submoduleImage N → ψ.submoduleImage N = ϕ.submoduleImage N)
+ (hNO : N ≤ O) {ϕ : O →ₗ[R] R} (hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
[(ϕ.submoduleImage N).IsPrincipal] (hgen : generator (ϕ.submoduleImage N) = 0) : N = ⊥ :=
by
rw [Submodule.eq_bot_iff]
@@ -88,7 +87,7 @@ theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M}
refine' congr_arg coe (show (⟨x, hNO hx⟩ : O) = 0 from b.ext_elem fun i => _)
rw [(eq_bot_iff_generator_eq_zero _).mpr hgen] at hϕ
rw [LinearEquiv.map_zero, Finsupp.zero_apply]
- refine' (Submodule.eq_bot_iff _).mp (hϕ (Finsupp.lapply i ∘ₗ ↑b.repr) bot_le) _ _
+ refine' (Submodule.eq_bot_iff _).mp (not_bot_lt_iff.1 <| hϕ (Finsupp.lapply i ∘ₗ ↑b.repr)) _ _
exact (LinearMap.mem_submoduleImage_of_le hNO).mpr ⟨x, hx, rfl⟩
#align eq_bot_of_generator_maximal_submodule_image_eq_zero eq_bot_of_generator_maximal_submoduleImage_eq_zero
@@ -123,9 +122,7 @@ variable {M : Type _} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal
theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤ O) {ϕ : O →ₗ[R] R}
- (hϕ :
- ∀ ψ : O →ₗ[R] R,
- ϕ.submoduleImage N ≤ ψ.submoduleImage N → ψ.submoduleImage N = ϕ.submoduleImage N)
+ (hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
[(ϕ.submoduleImage N).IsPrincipal] (y : M) (yN : y ∈ N)
(ϕy_eq : ϕ ⟨y, hNO yN⟩ = generator (ϕ.submoduleImage N)) (ψ : O →ₗ[R] R) :
generator (ϕ.submoduleImage N) ∣ ψ ⟨y, hNO yN⟩ :=
@@ -154,7 +151,7 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
refine'
le_antisymm (this.trans (le_of_eq _)) (ideal.span_singleton_le_span_singleton.mpr d_dvd_left)
rw [span_singleton_generator]
- refine' hϕ ψ' (le_trans _ this)
+ apply (le_trans _ this).eq_of_not_gt (hϕ ψ')
rw [← span_singleton_generator (ϕ.submodule_image N)]
exact ideal.span_singleton_le_span_singleton.mpr d_dvd_left
· exact subset_span (mem_insert _ _)
@@ -191,10 +188,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
by
-- Let `ϕ` be a maximal projection of `M` onto `R`, in the sense that there is
-- no `ψ` whose image of `N` is larger than `ϕ`'s image of `N`.
- have :
- ∃ ϕ : M →ₗ[R] R,
- ∀ ψ : M →ₗ[R] R,
- ϕ.submoduleImage N ≤ ψ.submoduleImage N → ψ.submoduleImage N = ϕ.submoduleImage N :=
+ have : ∃ ϕ : M →ₗ[R] R, ∀ ψ : M →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N :=
by
obtain ⟨P, P_eq, P_max⟩ :=
set_has_maximal_iff_noetherian.mpr (inferInstance : IsNoetherian R R) _
mathlib commit https://github.com/leanprover-community/mathlib/commit/62e8311c791f02c47451bf14aa2501048e7c2f33
@@ -4,11 +4,12 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module linear_algebra.free_module.pid
-! leanprover-community/mathlib commit b8e1f0f706714622ed3081a0ce1ea6cdc5e17371
+! leanprover-community/mathlib commit f62c15c01a5409b31b97a82d79a12980be4eff35
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.LinearAlgebra.Dimension
+import Mathbin.LinearAlgebra.FreeModule.Basic
import Mathbin.RingTheory.PrincipalIdealDomain
import Mathbin.RingTheory.Finiteness
@@ -373,8 +374,8 @@ noncomputable def Submodule.basisOfPidOfLeSpan {ι : Type _} [Finite ι] {b : ι
variable {M}
/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » I) -/
-/-- A finite type torsion free module over a PID is free. -/
-noncomputable def Module.freeOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
+/-- A finite type torsion free module over a PID admits a basis. -/
+noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
(hs : span R (range s) = ⊤) [NoZeroSMulDivisors R M] : Σn : ℕ, Basis (Fin n) R M := by
classical
-- We define `N` as the submodule spanned by a maximal linear independent subfamily of `s`
@@ -427,13 +428,28 @@ noncomputable def Module.freeOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
obtain ⟨n, b : Basis (Fin n) R φ.range⟩ := Submodule.basisOfPidOfLe this sI_basis
-- hence `M` is free.
exact ⟨n, b.map ψ.symm⟩
-#align module.free_of_finite_type_torsion_free Module.freeOfFiniteTypeTorsionFree
+#align module.basis_of_finite_type_torsion_free Module.basisOfFiniteTypeTorsionFree
-/-- A finite type torsion free module over a PID is free. -/
-noncomputable def Module.freeOfFiniteTypeTorsionFree' [Module.Finite R M] [NoZeroSMulDivisors R M] :
- Σn : ℕ, Basis (Fin n) R M :=
- Module.freeOfFiniteTypeTorsionFree Module.Finite.exists_fin.choose_spec.choose_spec
-#align module.free_of_finite_type_torsion_free' Module.freeOfFiniteTypeTorsionFree'
+theorem Module.free_of_finite_type_torsion_free [Finite ι] {s : ι → M} (hs : span R (range s) = ⊤)
+ [NoZeroSMulDivisors R M] : Module.Free R M :=
+ by
+ cases nonempty_fintype ι
+ obtain ⟨n, b⟩ : Σn, Basis (Fin n) R M := Module.basisOfFiniteTypeTorsionFree hs
+ exact Module.Free.of_basis b
+#align module.free_of_finite_type_torsion_free Module.free_of_finite_type_torsion_free
+
+/-- A finite type torsion free module over a PID admits a basis. -/
+noncomputable def Module.basisOfFiniteTypeTorsionFree' [Module.Finite R M]
+ [NoZeroSMulDivisors R M] : Σn : ℕ, Basis (Fin n) R M :=
+ Module.basisOfFiniteTypeTorsionFree Module.Finite.exists_fin.choose_spec.choose_spec
+#align module.basis_of_finite_type_torsion_free' Module.basisOfFiniteTypeTorsionFree'
+
+theorem Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMulDivisors R M] :
+ Module.Free R M :=
+ by
+ obtain ⟨n, b⟩ : Σn, Basis (Fin n) R M := Module.basisOfFiniteTypeTorsionFree'
+ exact Module.Free.of_basis b
+#align module.free_of_finite_type_torsion_free' Module.free_of_finite_type_torsion_free'
section SmithNormal
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -372,7 +372,7 @@ noncomputable def Submodule.basisOfPidOfLeSpan {ι : Type _} [Finite ι] {b : ι
variable {M}
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (i «expr ∉ » I) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » I) -/
/-- A finite type torsion free module over a PID is free. -/
noncomputable def Module.freeOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
(hs : span R (range s) = ⊤) [NoZeroSMulDivisors R M] : Σn : ℕ, Basis (Fin n) R M := by
@@ -497,7 +497,7 @@ noncomputable def Submodule.smithNormalFormOfLe [Finite ι] (b : Basis ι R M) (
⟨o, n, bO, bN.map (comap_subtype_equiv_of_le N_le_O).symm, (Fin.castLe hno).toEmbedding, a,
fun i => _⟩
ext
- simp only [snf, Basis.map_apply, Submodule.comapSubtypeEquivOfLe_symmApply,
+ simp only [snf, Basis.map_apply, Submodule.comapSubtypeEquivOfLe_symm_apply,
Submodule.coe_smul_of_tower, RelEmbedding.coeFn_toEmbedding]
#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLe
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -124,23 +124,23 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
refine' dvd_trans _ d_dvd_right
rw [dvd_generator_iff, Ideal.span, ←
span_singleton_generator (Submodule.span R {a, ψ ⟨y, hNO yN⟩})]
- obtain ⟨r₁, r₂, d_eq⟩ : ∃ r₁ r₂ : R, d = r₁ * a + r₂ * ψ ⟨y, hNO yN⟩ := by
- obtain ⟨r₁, r₂', hr₂', hr₁⟩ :=
- mem_span_insert.mp (IsPrincipal.generator_mem (Submodule.span R {a, ψ ⟨y, hNO yN⟩}))
- obtain ⟨r₂, rfl⟩ := mem_span_singleton.mp hr₂'
- exact ⟨r₁, r₂, hr₁⟩
- let ψ' : O →ₗ[R] R := r₁ • ϕ + r₂ • ψ
- have : span R {d} ≤ ψ'.submoduleImage N := by
- rw [span_le, singleton_subset_iff, SetLike.mem_coe, LinearMap.mem_submoduleImage_of_le hNO]
- refine' ⟨y, yN, _⟩
- change r₁ * ϕ ⟨y, hNO yN⟩ + r₂ * ψ ⟨y, hNO yN⟩ = d
- rw [d_eq, ϕy_eq]
- refine'
- le_antisymm (this.trans (le_of_eq _)) (Ideal.span_singleton_le_span_singleton.mpr d_dvd_left)
- rw [span_singleton_generator]
- apply (le_trans _ this).eq_of_not_gt (hϕ ψ')
- rw [← span_singleton_generator (ϕ.submoduleImage N)]
- exact Ideal.span_singleton_le_span_singleton.mpr d_dvd_left
+ · obtain ⟨r₁, r₂, d_eq⟩ : ∃ r₁ r₂ : R, d = r₁ * a + r₂ * ψ ⟨y, hNO yN⟩ := by
+ obtain ⟨r₁, r₂', hr₂', hr₁⟩ :=
+ mem_span_insert.mp (IsPrincipal.generator_mem (Submodule.span R {a, ψ ⟨y, hNO yN⟩}))
+ obtain ⟨r₂, rfl⟩ := mem_span_singleton.mp hr₂'
+ exact ⟨r₁, r₂, hr₁⟩
+ let ψ' : O →ₗ[R] R := r₁ • ϕ + r₂ • ψ
+ have : span R {d} ≤ ψ'.submoduleImage N := by
+ rw [span_le, singleton_subset_iff, SetLike.mem_coe, LinearMap.mem_submoduleImage_of_le hNO]
+ refine' ⟨y, yN, _⟩
+ change r₁ * ϕ ⟨y, hNO yN⟩ + r₂ * ψ ⟨y, hNO yN⟩ = d
+ rw [d_eq, ϕy_eq]
+ refine'
+ le_antisymm (this.trans (le_of_eq _)) (Ideal.span_singleton_le_span_singleton.mpr d_dvd_left)
+ rw [span_singleton_generator]
+ apply (le_trans _ this).eq_of_not_gt (hϕ ψ')
+ rw [← span_singleton_generator (ϕ.submoduleImage N)]
+ exact Ideal.span_singleton_le_span_singleton.mpr d_dvd_left
· exact subset_span (mem_insert _ _)
#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvd
@@ -291,15 +291,15 @@ theorem Submodule.nonempty_basis_of_pid {ι : Type*} [Finite ι] (b : Basis ι R
cases nonempty_fintype ι
induction' N using inductionOnRank with N ih
· exact b
- let b' := (b.reindex (Fintype.equivFin ι)).map (LinearEquiv.ofTop _ rfl).symm
- by_cases N_bot : N = ⊥
- · subst N_bot
- exact ⟨0, ⟨Basis.empty _⟩⟩
- obtain ⟨y, -, a, hay, M', -, N', N'_le_N, -, -, ay_ortho, h'⟩ :=
- Submodule.basis_of_pid_aux ⊤ N b' N_bot le_top
- obtain ⟨n', ⟨bN'⟩⟩ := ih N' N'_le_N _ hay ay_ortho
- obtain ⟨bN, _hbN⟩ := h' n' bN'
- exact ⟨n' + 1, ⟨bN⟩⟩
+ · let b' := (b.reindex (Fintype.equivFin ι)).map (LinearEquiv.ofTop _ rfl).symm
+ by_cases N_bot : N = ⊥
+ · subst N_bot
+ exact ⟨0, ⟨Basis.empty _⟩⟩
+ obtain ⟨y, -, a, hay, M', -, N', N'_le_N, -, -, ay_ortho, h'⟩ :=
+ Submodule.basis_of_pid_aux ⊤ N b' N_bot le_top
+ obtain ⟨n', ⟨bN'⟩⟩ := ih N' N'_le_N _ hay ay_ortho
+ obtain ⟨bN, _hbN⟩ := h' n' bN'
+ exact ⟨n' + 1, ⟨bN⟩⟩
infer_instance
#align submodule.nonempty_basis_of_pid Submodule.nonempty_basis_of_pid
@@ -513,19 +513,19 @@ theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M)
revert N
induction' O using inductionOnRank with M0 ih
· exact b
- intro N N_le_M0
- obtain ⟨m, b'M⟩ := M0.basisOfPid b
- by_cases N_bot : N = ⊥
- · subst N_bot
- exact ⟨0, m, Nat.zero_le _, b'M, Basis.empty _, finZeroElim, finZeroElim⟩
- obtain ⟨y, hy, a, _, M', M'_le_M, N', _, N'_le_M', y_ortho, _, h⟩ :=
- Submodule.basis_of_pid_aux M0 N b'M N_bot N_le_M0
-
- obtain ⟨n', m', hn'm', bM', bN', as', has'⟩ := ih M' M'_le_M y hy y_ortho N' N'_le_M'
- obtain ⟨bN, h'⟩ := h n' bN'
- obtain ⟨hmn, bM, h''⟩ := h' m' hn'm' bM'
- obtain ⟨as, has⟩ := h'' as' has'
- exact ⟨_, _, hmn, bM, bN, as, has⟩
+ · intro N N_le_M0
+ obtain ⟨m, b'M⟩ := M0.basisOfPid b
+ by_cases N_bot : N = ⊥
+ · subst N_bot
+ exact ⟨0, m, Nat.zero_le _, b'M, Basis.empty _, finZeroElim, finZeroElim⟩
+ obtain ⟨y, hy, a, _, M', M'_le_M, N', _, N'_le_M', y_ortho, _, h⟩ :=
+ Submodule.basis_of_pid_aux M0 N b'M N_bot N_le_M0
+
+ obtain ⟨n', m', hn'm', bM', bN', as', has'⟩ := ih M' M'_le_M y hy y_ortho N' N'_le_M'
+ obtain ⟨bN, h'⟩ := h n' bN'
+ obtain ⟨hmn, bM, h''⟩ := h' m' hn'm' bM'
+ obtain ⟨as, has⟩ := h'' as' has'
+ exact ⟨_, _, hmn, bM, bN, as, has⟩
-- Porting note: Lean generates a goal Fintype ι for some reason
infer_instance
#align submodule.exists_smith_normal_form_of_le Submodule.exists_smith_normal_form_of_le
@@ -426,7 +426,7 @@ section SmithNormal
/-- A Smith normal form basis for a submodule `N` of a module `M` consists of
bases for `M` and `N` such that the inclusion map `N → M` can be written as a
(rectangular) matrix with `a` along the diagonal: in Smith normal form. -/
--- Porting note: @[nolint has_nonempty_instance]
+-- Porting note(#5171): @[nolint has_nonempty_instance]
structure Basis.SmithNormalForm (N : Submodule R M) (ι : Type*) (n : ℕ) where
/-- The basis of M. -/
bM : Basis ι R M
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -54,7 +54,6 @@ universe u v
section Ring
variable {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] [Module R M]
-
variable {ι : Type*} (b : Basis ι R M)
open Submodule.IsPrincipal Submodule
@@ -89,7 +88,6 @@ end Ring
section IsDomain
variable {ι : Type*} {R : Type*} [CommRing R] [IsDomain R]
-
variable {M : Type*} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal Set Submodule
@@ -109,7 +107,6 @@ section PrincipalIdealDomain
open Submodule.IsPrincipal Set Submodule
variable {ι : Type*} {R : Type*} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R]
-
variable {M : Type*} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -681,7 +681,7 @@ theorem Ideal.smithCoeffs_ne_zero (b : Basis ι R S) (I : Ideal S) (hI : I ≠
simp [hi]
#align ideal.smith_coeffs_ne_zero Ideal.smithCoeffs_ne_zero
--- porting note: can be inferred in Lean 4 so no longer necessary
+-- Porting note: can be inferred in Lean 4 so no longer necessary
#noalign has_quotient.quotient.module
end Ideal
@@ -228,7 +228,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type*} [AddCommGroup O] [Mod
have M'_le_M : M' ≤ M := M.map_subtype_le (LinearMap.ker ϕ)
have N'_le_M' : N' ≤ M' := by
intro x hx
- simp only [mem_map, LinearMap.mem_ker] at hx ⊢
+ simp only [N', mem_map, LinearMap.mem_ker] at hx ⊢
obtain ⟨⟨x, xN⟩, hx, rfl⟩ := hx
exact ⟨⟨x, N_le_M xN⟩, hx, rfl⟩
have N'_le_N : N' ≤ N := N.map_subtype_le (LinearMap.ker (ϕ.comp (inclusion N_le_M)))
@@ -568,7 +568,7 @@ noncomputable def Submodule.smithNormalForm [Finite ι] (b : Basis ι R M) (N :
let bM' := bM.map (LinearEquiv.ofTop _ rfl)
let e := bM'.indexEquiv b
⟨n, bM'.reindex e, bN.map (comapSubtypeEquivOfLe le_top), f.trans e.toEmbedding, a, fun i ↦ by
- simp only [snf, Basis.map_apply, LinearEquiv.ofTop_apply, Submodule.coe_smul_of_tower,
+ simp only [bM', snf, Basis.map_apply, LinearEquiv.ofTop_apply, Submodule.coe_smul_of_tower,
Submodule.comapSubtypeEquivOfLe_apply_coe, Basis.reindex_apply,
Equiv.toEmbedding_apply, Function.Embedding.trans_apply, Equiv.symm_apply_apply]⟩
#align submodule.smith_normal_form Submodule.smithNormalForm
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-/
import Mathlib.LinearAlgebra.Dimension.StrongRankCondition
-import Mathlib.LinearAlgebra.FreeModule.Finite.Basic
+import Mathlib.LinearAlgebra.FreeModule.Basic
#align_import linear_algebra.free_module.pid from "leanprover-community/mathlib"@"d87199d51218d36a0a42c66c82d147b5a7ff87b3"
Module.Free
and Module.Finite
instances for ideals (#9804)
Add also a NoZeroSMulDivisors
instance.
These instances, in particular, imply directly that integral ideals of number fields are free and finite $\mathbb{Z}$-modules.
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-/
import Mathlib.LinearAlgebra.Dimension.StrongRankCondition
-import Mathlib.LinearAlgebra.FreeModule.Basic
+import Mathlib.LinearAlgebra.FreeModule.Finite.Basic
#align_import linear_algebra.free_module.pid from "leanprover-community/mathlib"@"d87199d51218d36a0a42c66c82d147b5a7ff87b3"
@@ -413,6 +413,13 @@ instance Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMu
exact Module.Free.of_basis b
#align module.free_of_finite_type_torsion_free' Module.free_of_finite_type_torsion_free'
+instance {S : Type*} [CommRing S] [Algebra R S] {I : Ideal S} [hI₁ : Module.Finite R I]
+ [hI₂ : NoZeroSMulDivisors R I] : Module.Free R I := by
+ have : Module.Finite R (restrictScalars R I) := hI₁
+ have : NoZeroSMulDivisors R (restrictScalars R I) := hI₂
+ change Module.Free R (restrictScalars R I)
+ exact Module.free_of_finite_type_torsion_free'
+
theorem Module.free_iff_noZeroSMulDivisors [Module.Finite R M] :
Module.Free R M ↔ NoZeroSMulDivisors R M :=
⟨fun _ ↦ inferInstance, fun _ ↦ inferInstance⟩
∃ x ∈ s, p x
instead of ∃ x (_ : x ∈ s), p x
(#9326)
This is a follow-up to #9215. It changes the following theorems and definitions:
IsOpen.exists_subset_affineIndependent_span_eq_top
IsConformalMap
SimpleGraph.induce_connected_of_patches
Submonoid.exists_list_of_mem_closure
AddSubmonoid.exists_list_of_mem_closure
AffineSubspace.mem_affineSpan_insert_iff
AffineBasis.exists_affine_subbasis
exists_affineIndependent
LinearMap.mem_submoduleImage
Basis.basis_singleton_iff
atom_iff_nonzero_span
finrank_eq_one_iff'
Submodule.basis_of_pid_aux
exists_linearIndependent_extension
exists_linearIndependent
countable_cover_nhdsWithin_of_sigma_compact
mem_residual
Also deprecate ENNReal.exists_ne_top'
.
@@ -160,21 +160,17 @@ but must also feed in a basis for `M` using `basis_of_pid` to keep the induction
-/
theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type*} [AddCommGroup O] [Module R O]
(M N : Submodule R O) (b'M : Basis ι R M) (N_bot : N ≠ ⊥) (N_le_M : N ≤ M) :
- ∃ y ∈ M,
- ∃ (a : R) (_ : a • y ∈ N),
- ∃ M' ≤ M,
- ∃ N' ≤ N,
- ∃ (_N'_le_M' : N' ≤ M') (_y_ortho_M' :
- ∀ (c : R) (z : O), z ∈ M' → c • y + z = 0 → c = 0) (_ay_ortho_N' :
- ∀ (c : R) (z : O), z ∈ N' → c • a • y + z = 0 → c = 0),
- ∀ (n') (bN' : Basis (Fin n') R N'),
- ∃ bN : Basis (Fin (n' + 1)) R N,
- ∀ (m') (hn'm' : n' ≤ m') (bM' : Basis (Fin m') R M'),
- ∃ (hnm : n' + 1 ≤ m' + 1) (bM : Basis (Fin (m' + 1)) R M),
- ∀ (as : Fin n' → R)
- (_h : ∀ i : Fin n', (bN' i : O) = as i • (bM' (Fin.castLE hn'm' i) : O)),
- ∃ as' : Fin (n' + 1) → R,
- ∀ i : Fin (n' + 1), (bN i : O) = as' i • (bM (Fin.castLE hnm i) : O) := by
+ ∃ y ∈ M, ∃ a : R, a • y ∈ N ∧ ∃ M' ≤ M, ∃ N' ≤ N,
+ N' ≤ M' ∧ (∀ (c : R) (z : O), z ∈ M' → c • y + z = 0 → c = 0) ∧
+ (∀ (c : R) (z : O), z ∈ N' → c • a • y + z = 0 → c = 0) ∧
+ ∀ (n') (bN' : Basis (Fin n') R N'),
+ ∃ bN : Basis (Fin (n' + 1)) R N,
+ ∀ (m') (hn'm' : n' ≤ m') (bM' : Basis (Fin m') R M'),
+ ∃ (hnm : n' + 1 ≤ m' + 1) (bM : Basis (Fin (m' + 1)) R M),
+ ∀ as : Fin n' → R,
+ (∀ i : Fin n', (bN' i : O) = as i • (bM' (Fin.castLE hn'm' i) : O)) →
+ ∃ as' : Fin (n' + 1) → R,
+ ∀ i : Fin (n' + 1), (bN i : O) = as' i • (bM (Fin.castLE hnm i) : O) := by
-- Let `ϕ` be a maximal projection of `M` onto `R`, in the sense that there is
-- no `ψ` whose image of `N` is larger than `ϕ`'s image of `N`.
have : ∃ ϕ : M →ₗ[R] R, ∀ ψ : M →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N := by
@@ -411,14 +411,16 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree' [Module.Finite R M]
Module.basisOfFiniteTypeTorsionFree Module.Finite.exists_fin.choose_spec.choose_spec
#align module.basis_of_finite_type_torsion_free' Module.basisOfFiniteTypeTorsionFree'
--- It would be nice to make this an instance but it is empirically problematic, possibly because
--- of the loop that it causes with `Module.Free.noZeroSMulDivisors`
-theorem Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMulDivisors R M] :
+instance Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMulDivisors R M] :
Module.Free R M := by
obtain ⟨n, b⟩ : Σn, Basis (Fin n) R M := Module.basisOfFiniteTypeTorsionFree'
exact Module.Free.of_basis b
#align module.free_of_finite_type_torsion_free' Module.free_of_finite_type_torsion_free'
+theorem Module.free_iff_noZeroSMulDivisors [Module.Finite R M] :
+ Module.Free R M ↔ NoZeroSMulDivisors R M :=
+ ⟨fun _ ↦ inferInstance, fun _ ↦ inferInstance⟩
+
section SmithNormal
/-- A Smith normal form basis for a submodule `N` of a module `M` consists of
rank
and finrank
. (#9349)
The files Mathlib.LinearAlgebra.FreeModule.Rank
, Mathlib.LinearAlgebra.FreeModule.Finite.Rank
, Mathlib.LinearAlgebra.Dimension
and Mathlib.LinearAlgebra.Finrank
were reorganized into a
folder Mathlib.LinearAlgebra.Dimension
, containing the following files
Basic.lean
: Contains the definition of Module.rank
.Finrank.lean
: Contains the definition of FiniteDimensional.finrank
.StrongRankCondition.lean
: Contains results about rank
and finrank
over rings satisfying strong rank conditionFree.lean
: Contains results about rank
and finrank
of free modulesFinite.lean
: Contains conditions or consequences for rank
to be finite or zeroConstructions.lean
: Contains the calculation of the rank
of various constructions.DivisionRing.lean
: Contains results about rank
and finrank
of spaces over division rings.LinearMap.lean
: Contains results about LinearMap.rank
API changes:
IsNoetherian.rank_lt_aleph0
and FiniteDimensional.rank_lt_aleph0
are replaced with
rank_lt_aleph0
.
Module.Free.finite_basis
was renamed to Module.Finite.finite_basis
.
FiniteDimensional.finrank_eq_rank
was renamed to finrank_eq_rank
.
rank_eq_cardinal_basis
and rank_eq_cardinal_basis'
were removed
in favour of Basis.mk_eq_mk
and Basis.mk_eq_mk''
.
Co-authored-by: Andrew Yang <36414270+erdOne@users.noreply.github.com>
@@ -3,11 +3,8 @@ Copyright (c) 2020 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-/
-import Mathlib.LinearAlgebra.Dimension
+import Mathlib.LinearAlgebra.Dimension.StrongRankCondition
import Mathlib.LinearAlgebra.FreeModule.Basic
-import Mathlib.LinearAlgebra.Matrix.ToLin
-import Mathlib.RingTheory.PrincipalIdealDomain
-import Mathlib.RingTheory.Finiteness
#align_import linear_algebra.free_module.pid from "leanprover-community/mathlib"@"d87199d51218d36a0a42c66c82d147b5a7ff87b3"
∃ x ∈ s, _
instead of ∃ (x) (_ : x ∈ s), _
(#9184)
Search for [∀∃].*(_
and manually replace some occurrences with more readable versions.
In case of ∀
, the new expressions are defeq to the old ones.
In case of ∃
, they differ by exists_prop
.
In some rare cases, golf proofs that needed fixing.
@@ -359,7 +359,7 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M
let I : Set ι := this.choose
obtain
⟨indepI : LinearIndependent R (s ∘ (fun x => x) : I → M), hI :
- ∀ (i) (_ : i ∉ I), ∃ a : R, a ≠ 0 ∧ a • s i ∈ span R (s '' I)⟩ :=
+ ∀ i ∉ I, ∃ a : R, a ≠ 0 ∧ a • s i ∈ span R (s '' I)⟩ :=
this.choose_spec
let N := span R (range <| (s ∘ (fun x => x) : I → M))
-- same as `span R (s '' I)` but more convenient
Submodule.ofLe
to Submodule.inclusion
(#8470)
This matches Set.inclusion
, Subring.inclusion
, Subalgebra.inclusion
, etc.
Also renames the homOfLe
spellings in Algebra/Lie
to match.
Note that we leave LieSubalgebra.ofLe
, as this is a completely different statement!
As requested by @alreadydone.
@@ -231,14 +231,14 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type*} [AddCommGroup O] [Mod
have ϕy'_ne_zero : ϕ ⟨y', y'M⟩ ≠ 0 := by simpa only [ϕy'_eq] using one_ne_zero
-- `M' := ker (ϕ : M → R)` is smaller than `M` and `N' := ker (ϕ : N → R)` is smaller than `N`.
let M' : Submodule R O := ϕ.ker.map M.subtype
- let N' : Submodule R O := (ϕ.comp (ofLe N_le_M)).ker.map N.subtype
+ let N' : Submodule R O := (ϕ.comp (inclusion N_le_M)).ker.map N.subtype
have M'_le_M : M' ≤ M := M.map_subtype_le (LinearMap.ker ϕ)
have N'_le_M' : N' ≤ M' := by
intro x hx
simp only [mem_map, LinearMap.mem_ker] at hx ⊢
obtain ⟨⟨x, xN⟩, hx, rfl⟩ := hx
exact ⟨⟨x, N_le_M xN⟩, hx, rfl⟩
- have N'_le_N : N' ≤ N := N.map_subtype_le (LinearMap.ker (ϕ.comp (ofLe N_le_M)))
+ have N'_le_N : N' ≤ N := N.map_subtype_le (LinearMap.ker (ϕ.comp (inclusion N_le_M)))
-- So fill in those results as well.
refine' ⟨M', M'_le_M, N', N'_le_N, N'_le_M', _⟩
-- Note that `y'` is orthogonal to `M'`.
@@ -284,7 +284,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type*} [AddCommGroup O] [Mod
· simp only [Fin.cons_zero, Fin.castLE_zero]
exact a_smul_y'.symm
· rw [Fin.castLE_succ]
- simp only [Fin.cons_succ, Function.comp_apply, coe_ofLe, map_coe, coeSubtype, h i]
+ simp only [Fin.cons_succ, Function.comp_apply, coe_inclusion, map_coe, coeSubtype, h i]
#align submodule.basis_of_pid_aux Submodule.basis_of_pid_aux
/-- A submodule of a free `R`-module of finite rank is also a free `R`-module of finite rank,
And fix some names in comments where this revealed issues
@@ -33,7 +33,7 @@ In this section, `M` is a free and finitely generated `R`-module, and
`P N` follows from `P N'` for all `N'` that are of lower rank, then `P` holds
on all submodules
- - `submodule.exists_basis_of_pid`: if `R` is a PID, then `N : Submodule R M` is
+ - `Submodule.exists_basis_of_pid`: if `R` is a PID, then `N : Submodule R M` is
free and finitely generated. This is the first part of the structure theorem
for modules.
@@ -450,7 +450,7 @@ lemma repr_eq_zero_of_nmem_range {i : ι} (hi : i ∉ Set.range snf.f) :
obtain ⟨m, hm⟩ := m
obtain ⟨c, rfl⟩ := snf.bN.mem_submodule_iff.mp hm
replace hi : ∀ j, snf.f j ≠ i := by simpa using hi
- simp [Finsupp.single_apply, hi, snf.snf]
+ simp [Finsupp.single_apply, hi, snf.snf, map_finsupp_sum]
lemma le_ker_coord_of_nmem_range {i : ι} (hi : i ∉ Set.range snf.f) :
N ≤ LinearMap.ker (snf.bM.coord i) :=
@@ -461,9 +461,10 @@ lemma le_ker_coord_of_nmem_range {i : ι} (hi : i ∉ Set.range snf.f) :
obtain ⟨m, hm⟩ := m
obtain ⟨c, rfl⟩ := snf.bN.mem_submodule_iff.mp hm
replace hm : (⟨Finsupp.sum c fun i t ↦ t • (↑(snf.bN i) : M), hm⟩ : N) =
- Finsupp.sum c fun i t ↦ t • ⟨snf.bN i, (snf.bN i).2⟩ := by ext; change _ = N.subtype _; simp
+ Finsupp.sum c fun i t ↦ t • ⟨snf.bN i, (snf.bN i).2⟩ := by
+ ext; change _ = N.subtype _; simp [map_finsupp_sum]
classical
- simp_rw [hm, map_smul, LinearEquiv.map_finsupp_sum, map_smul, Subtype.coe_eta, repr_self,
+ simp_rw [hm, map_smul, map_finsupp_sum, map_smul, Subtype.coe_eta, repr_self,
Finsupp.smul_single, smul_eq_mul, mul_one, Finsupp.sum_single, Finsupp.smul_apply, snf.snf,
map_smul, repr_self, Finsupp.smul_single, smul_eq_mul, mul_one, Finsupp.sum_apply,
Finsupp.single_apply, EmbeddingLike.apply_eq_iff_eq, Finsupp.sum_ite_eq',
_root_.map_sum
more consistently (#7189)
Also _root_.map_smul
when in the neighbourhood.
@@ -210,7 +210,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type*} [AddCommGroup O] [Mod
have mk_y' : (⟨y', y'M⟩ : M) = ∑ i, c i • b'M i :=
Subtype.ext
(show y' = M.subtype _ by
- simp only [LinearMap.map_sum, LinearMap.map_smul]
+ simp only [map_sum, map_smul]
rfl)
have a_smul_y' : a • y' = y := by
refine Subtype.mk_eq_mk.mp (show (a • ⟨y', y'M⟩ : M) = ⟨y, N_le_M yN⟩ from ?_)
@@ -5,6 +5,7 @@ Authors: Anne Baanen
-/
import Mathlib.LinearAlgebra.Dimension
import Mathlib.LinearAlgebra.FreeModule.Basic
+import Mathlib.LinearAlgebra.Matrix.ToLin
import Mathlib.RingTheory.PrincipalIdealDomain
import Mathlib.RingTheory.Finiteness
@@ -440,6 +441,61 @@ structure Basis.SmithNormalForm (N : Submodule R M) (ι : Type*) (n : ℕ) where
snf : ∀ i, (bN i : M) = a i • bM (f i)
#align basis.smith_normal_form Basis.SmithNormalForm
+namespace Basis.SmithNormalForm
+
+variable {n : ℕ} {N : Submodule R M} (snf : Basis.SmithNormalForm N ι n) (m : N)
+
+lemma repr_eq_zero_of_nmem_range {i : ι} (hi : i ∉ Set.range snf.f) :
+ snf.bM.repr m i = 0 := by
+ obtain ⟨m, hm⟩ := m
+ obtain ⟨c, rfl⟩ := snf.bN.mem_submodule_iff.mp hm
+ replace hi : ∀ j, snf.f j ≠ i := by simpa using hi
+ simp [Finsupp.single_apply, hi, snf.snf]
+
+lemma le_ker_coord_of_nmem_range {i : ι} (hi : i ∉ Set.range snf.f) :
+ N ≤ LinearMap.ker (snf.bM.coord i) :=
+ fun m hm ↦ snf.repr_eq_zero_of_nmem_range ⟨m, hm⟩ hi
+
+@[simp] lemma repr_apply_embedding_eq_repr_smul {i : Fin n} :
+ snf.bM.repr m (snf.f i) = snf.bN.repr (snf.a i • m) i := by
+ obtain ⟨m, hm⟩ := m
+ obtain ⟨c, rfl⟩ := snf.bN.mem_submodule_iff.mp hm
+ replace hm : (⟨Finsupp.sum c fun i t ↦ t • (↑(snf.bN i) : M), hm⟩ : N) =
+ Finsupp.sum c fun i t ↦ t • ⟨snf.bN i, (snf.bN i).2⟩ := by ext; change _ = N.subtype _; simp
+ classical
+ simp_rw [hm, map_smul, LinearEquiv.map_finsupp_sum, map_smul, Subtype.coe_eta, repr_self,
+ Finsupp.smul_single, smul_eq_mul, mul_one, Finsupp.sum_single, Finsupp.smul_apply, snf.snf,
+ map_smul, repr_self, Finsupp.smul_single, smul_eq_mul, mul_one, Finsupp.sum_apply,
+ Finsupp.single_apply, EmbeddingLike.apply_eq_iff_eq, Finsupp.sum_ite_eq',
+ Finsupp.mem_support_iff, ite_not, mul_comm, ite_eq_right_iff]
+ exact fun a ↦ (mul_eq_zero_of_right _ a).symm
+
+@[simp] lemma repr_comp_embedding_eq_smul :
+ snf.bM.repr m ∘ snf.f = snf.a • (snf.bN.repr m : Fin n → R) := by
+ ext i
+ simp [Pi.smul_apply (snf.a i)]
+
+@[simp] lemma coord_apply_embedding_eq_smul_coord {i : Fin n} :
+ snf.bM.coord (snf.f i) ∘ₗ N.subtype = snf.a i • snf.bN.coord i := by
+ ext m
+ simp [Pi.smul_apply (snf.a i)]
+
+/-- Given a Smith-normal-form pair of bases for `N ⊆ M`, and a linear endomorphism `f` of `M`
+that preserves `N`, the diagonal of the matrix of the restriction `f` to `N` does not depend on
+which of the two bases for `N` is used. -/
+@[simp]
+lemma toMatrix_restrict_eq_toMatrix [Fintype ι] [DecidableEq ι]
+ (f : M →ₗ[R] M) (hf : ∀ x, f x ∈ N) (hf' : ∀ x ∈ N, f x ∈ N := fun x _ ↦ hf x) {i : Fin n} :
+ LinearMap.toMatrix snf.bN snf.bN (LinearMap.restrict f hf') i i =
+ LinearMap.toMatrix snf.bM snf.bM f (snf.f i) (snf.f i) := by
+ rw [LinearMap.toMatrix_apply, LinearMap.toMatrix_apply,
+ snf.repr_apply_embedding_eq_repr_smul ⟨_, (hf _)⟩]
+ congr
+ ext
+ simp [snf.snf]
+
+end Basis.SmithNormalForm
+
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix
in Smith normal form.
@@ -413,6 +413,8 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree' [Module.Finite R M]
Module.basisOfFiniteTypeTorsionFree Module.Finite.exists_fin.choose_spec.choose_spec
#align module.basis_of_finite_type_torsion_free' Module.basisOfFiniteTypeTorsionFree'
+-- It would be nice to make this an instance but it is empirically problematic, possibly because
+-- of the loop that it causes with `Module.Free.noZeroSMulDivisors`
theorem Module.free_of_finite_type_torsion_free' [Module.Finite R M] [NoZeroSMulDivisors R M] :
Module.Free R M := by
obtain ⟨n, b⟩ : Σn, Basis (Fin n) R M := Module.basisOfFiniteTypeTorsionFree'
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -57,7 +57,7 @@ section Ring
variable {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] [Module R M]
-variable {ι : Type _} (b : Basis ι R M)
+variable {ι : Type*} (b : Basis ι R M)
open Submodule.IsPrincipal Submodule
@@ -90,9 +90,9 @@ end Ring
section IsDomain
-variable {ι : Type _} {R : Type _} [CommRing R] [IsDomain R]
+variable {ι : Type*} {R : Type*} [CommRing R] [IsDomain R]
-variable {M : Type _} [AddCommGroup M] [Module R M] {b : ι → M}
+variable {M : Type*} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal Set Submodule
@@ -110,9 +110,9 @@ section PrincipalIdealDomain
open Submodule.IsPrincipal Set Submodule
-variable {ι : Type _} {R : Type _} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R]
+variable {ι : Type*} {R : Type*} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R]
-variable {M : Type _} [AddCommGroup M] [Module R M] {b : ι → M}
+variable {M : Type*} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal
@@ -160,7 +160,7 @@ For `basis_of_pid` we only need the first half and can fix `M = ⊤`,
for `smith_normal_form` we need the full statement,
but must also feed in a basis for `M` using `basis_of_pid` to keep the induction going.
-/
-theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Module R O]
+theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type*} [AddCommGroup O] [Module R O]
(M N : Submodule R O) (b'M : Basis ι R M) (N_bot : N ≠ ⊥) (N_le_M : N ≤ M) :
∃ y ∈ M,
∃ (a : R) (_ : a • y ∈ N),
@@ -294,7 +294,7 @@ see `Submodule.basisOfPid`.
See also the stronger version `Submodule.smithNormalForm`.
-/
-theorem Submodule.nonempty_basis_of_pid {ι : Type _} [Finite ι] (b : Basis ι R M)
+theorem Submodule.nonempty_basis_of_pid {ι : Type*} [Finite ι] (b : Basis ι R M)
(N : Submodule R M) : ∃ n : ℕ, Nonempty (Basis (Fin n) R N) := by
haveI := Classical.decEq M
cases nonempty_fintype ι
@@ -317,12 +317,12 @@ if `R` is a principal ideal domain.
See also the stronger version `Submodule.smithNormalForm`.
-/
-noncomputable def Submodule.basisOfPid {ι : Type _} [Finite ι] (b : Basis ι R M)
+noncomputable def Submodule.basisOfPid {ι : Type*} [Finite ι] (b : Basis ι R M)
(N : Submodule R M) : Σn : ℕ, Basis (Fin n) R N :=
⟨_, (N.nonempty_basis_of_pid b).choose_spec.some⟩
#align submodule.basis_of_pid Submodule.basisOfPid
-theorem Submodule.basisOfPid_bot {ι : Type _} [Finite ι] (b : Basis ι R M) :
+theorem Submodule.basisOfPid_bot {ι : Type*} [Finite ι] (b : Basis ι R M) :
Submodule.basisOfPid b ⊥ = ⟨0, Basis.empty _⟩ := by
obtain ⟨n, b'⟩ := Submodule.basisOfPid b ⊥
let e : Fin n ≃ Fin 0 := b'.indexEquiv (Basis.empty _ : Basis (Fin 0) R (⊥ : Submodule R M))
@@ -335,7 +335,7 @@ if `R` is a principal ideal domain.
See also the stronger version `Submodule.smithNormalFormOfLE`.
-/
-noncomputable def Submodule.basisOfPidOfLE {ι : Type _} [Finite ι] {N O : Submodule R M}
+noncomputable def Submodule.basisOfPidOfLE {ι : Type*} [Finite ι] {N O : Submodule R M}
(hNO : N ≤ O) (b : Basis ι R O) : Σn : ℕ, Basis (Fin n) R N :=
let ⟨n, bN'⟩ := Submodule.basisOfPid b (N.comap O.subtype)
⟨n, bN'.map (Submodule.comapSubtypeEquivOfLe hNO)⟩
@@ -343,7 +343,7 @@ noncomputable def Submodule.basisOfPidOfLE {ι : Type _} [Finite ι] {N O : Subm
/-- A submodule inside the span of a linear independent family is a free `R`-module of finite rank,
if `R` is a principal ideal domain. -/
-noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι → M}
+noncomputable def Submodule.basisOfPidOfLESpan {ι : Type*} [Finite ι] {b : ι → M}
(hb : LinearIndependent R b) {N : Submodule R M} (le : N ≤ Submodule.span R (Set.range b)) :
Σn : ℕ, Basis (Fin n) R N :=
Submodule.basisOfPidOfLE le (Basis.span hb)
@@ -425,7 +425,7 @@ section SmithNormal
bases for `M` and `N` such that the inclusion map `N → M` can be written as a
(rectangular) matrix with `a` along the diagonal: in Smith normal form. -/
-- Porting note: @[nolint has_nonempty_instance]
-structure Basis.SmithNormalForm (N : Submodule R M) (ι : Type _) (n : ℕ) where
+structure Basis.SmithNormalForm (N : Submodule R M) (ι : Type*) (n : ℕ) where
/-- The basis of M. -/
bM : Basis ι R M
/-- The basis of N. -/
@@ -514,7 +514,7 @@ noncomputable def Submodule.smithNormalForm [Finite ι] (b : Basis ι R M) (N :
section Ideal
-variable {S : Type _} [CommRing S] [IsDomain S] [Algebra R S]
+variable {S : Type*} [CommRing S] [IsDomain S] [Algebra R S]
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
@@ -631,7 +631,7 @@ end PrincipalIdealDomain
/-- A set of linearly independent vectors in a module `M` over a semiring `S` is also linearly
independent over a subring `R` of `K`. -/
-theorem LinearIndependent.restrict_scalars_algebras {R S M ι : Type _} [CommSemiring R] [Semiring S]
+theorem LinearIndependent.restrict_scalars_algebras {R S M ι : Type*} [CommSemiring R] [Semiring S]
[AddCommMonoid M] [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M]
(hinj : Function.Injective (algebraMap R S)) {v : ι → M} (li : LinearIndependent S v) :
LinearIndependent R v :=
@@ -255,7 +255,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
rw [mul_comm, mul_smul, hc]
-- So we can extend a basis for `N'` with `y`
refine' ⟨y'_ortho_M', ay'_ortho_N', fun n' bN' ↦ ⟨_, _⟩⟩
- · refine' Basis.mkFinConsOfLe y yN bN' N'_le_N _ _
+ · refine' Basis.mkFinConsOfLE y yN bN' N'_le_N _ _
· intro c z zN' hc
refine' ay'_ortho_N' c z zN' _
rwa [← a_smul_y'] at hc
@@ -268,7 +268,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
-- And extend a basis for `M'` with `y'`
intro m' hn'm' bM'
refine' ⟨Nat.succ_le_succ hn'm', _, _⟩
- · refine' Basis.mkFinConsOfLe y' y'M bM' M'_le_M y'_ortho_M' _
+ · refine' Basis.mkFinConsOfLE y' y'M bM' M'_le_M y'_ortho_M' _
intro z zM
refine' ⟨-ϕ ⟨z, zM⟩, ⟨⟨z, zM⟩ - ϕ ⟨z, zM⟩ • ⟨y', y'M⟩, LinearMap.mem_ker.mpr _, _⟩⟩
· rw [LinearMap.map_sub, LinearMap.map_smul, ϕy'_eq, smul_eq_mul, mul_one, sub_self]
@@ -278,7 +278,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
intro as h
refine' ⟨Fin.cons a as, _⟩
intro i
- rw [Basis.coe_mkFinConsOfLe, Basis.coe_mkFinConsOfLe]
+ rw [Basis.coe_mkFinConsOfLE, Basis.coe_mkFinConsOfLE]
refine' Fin.cases _ (fun i ↦ _) i
· simp only [Fin.cons_zero, Fin.castLE_zero]
exact a_smul_y'.symm
Add the following result:
theorem mem_span_integralBasis {x : K} :
x ∈ Submodule.span ℤ (Set.range (integralBasis K)) ↔ x ∈ 𝓞 K
that is, integralBasis
is indeed a ℤ
-basis of the ring of integers.
Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>
Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>
@@ -385,7 +385,7 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M
have : LinearMap.range φ ≤ N := by
-- as announced, `A • M ⊆ N`
suffices ∀ i, φ (s i) ∈ N by
- rw [LinearMap.range_eq_map, ← hs, φ.map_span_le]
+ rw [LinearMap.range_eq_map, ← hs, map_span_le]
rintro _ ⟨i, rfl⟩
apply this
intro i
@@ -188,7 +188,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
exact ⟨ϕ, fun ψ hψ ↦ P_max _ ⟨_, rfl⟩ hψ⟩
let ϕ := this.choose
have ϕ_max := this.choose_spec
- -- Since `ϕ(N)` is a `R`-submodule of the PID `R`,
+ -- Since `ϕ(N)` is an `R`-submodule of the PID `R`,
-- it is principal and generated by some `a`.
let a := generator (ϕ.submoduleImage N)
have a_mem : a ∈ ϕ.submoduleImage N := generator_mem _
@@ -2,17 +2,14 @@
Copyright (c) 2020 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-
-! This file was ported from Lean 3 source module linear_algebra.free_module.pid
-! leanprover-community/mathlib commit d87199d51218d36a0a42c66c82d147b5a7ff87b3
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.LinearAlgebra.Dimension
import Mathlib.LinearAlgebra.FreeModule.Basic
import Mathlib.RingTheory.PrincipalIdealDomain
import Mathlib.RingTheory.Finiteness
+#align_import linear_algebra.free_module.pid from "leanprover-community/mathlib"@"d87199d51218d36a0a42c66c82d147b5a7ff87b3"
+
/-! # Free modules over PID
A free `R`-module `M` is a module with a basis over `R`,
Co-authored-by: Komyyy <pol_tta@outlook.jp> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>
@@ -488,11 +488,11 @@ noncomputable def Submodule.smithNormalFormOfLE [Finite ι] (b : Basis ι R M) (
(N_le_O : N ≤ O) : Σo n : ℕ, Basis.SmithNormalForm (N.comap O.subtype) (Fin o) n := by
choose n o hno bO bN a snf using N.exists_smith_normal_form_of_le b O N_le_O
refine'
- ⟨o, n, bO, bN.map (comapSubtypeEquivOfLe N_le_O).symm, (Fin.castLE hno).toEmbedding, a,
+ ⟨o, n, bO, bN.map (comapSubtypeEquivOfLe N_le_O).symm, (Fin.castLEEmb hno).toEmbedding, a,
fun i ↦ _⟩
ext
simp only [snf, Basis.map_apply, Submodule.comapSubtypeEquivOfLe_symm_apply,
- Submodule.coe_smul_of_tower, RelEmbedding.coe_toEmbedding]
+ Submodule.coe_smul_of_tower, RelEmbedding.coe_toEmbedding, Fin.castLEEmb_apply]
#align submodule.smith_normal_form_of_le Submodule.smithNormalFormOfLE
/-- If `M` is finite free over a PID `R`, then any submodule `N` is free
@@ -220,7 +220,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
refine' Finset.sum_congr rfl fun i _ ↦ _
rw [← mul_smul, ← hc]
rfl
- -- We found an `y` and an `a`!
+ -- We found a `y` and an `a`!
refine' ⟨y', y'M, a, a_smul_y'.symm ▸ yN, _⟩
have ϕy'_eq : ϕ ⟨y', y'M⟩ = 1 :=
mul_left_cancel₀ a_zero
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -237,7 +237,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
have M'_le_M : M' ≤ M := M.map_subtype_le (LinearMap.ker ϕ)
have N'_le_M' : N' ≤ M' := by
intro x hx
- simp only [mem_map, LinearMap.mem_ker] at hx⊢
+ simp only [mem_map, LinearMap.mem_ker] at hx ⊢
obtain ⟨⟨x, xN⟩, hx, rfl⟩ := hx
exact ⟨⟨x, N_le_M xN⟩, hx, rfl⟩
have N'_le_N : N' ≤ N := N.map_subtype_le (LinearMap.ker (ϕ.comp (ofLe N_le_M)))
@@ -166,16 +166,16 @@ but must also feed in a basis for `M` using `basis_of_pid` to keep the induction
theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Module R O]
(M N : Submodule R O) (b'M : Basis ι R M) (N_bot : N ≠ ⊥) (N_le_M : N ≤ M) :
∃ y ∈ M,
- ∃ (a : R)(_ : a • y ∈ N),
+ ∃ (a : R) (_ : a • y ∈ N),
∃ M' ≤ M,
∃ N' ≤ N,
- ∃ (_N'_le_M' : N' ≤ M')(_y_ortho_M' :
- ∀ (c : R) (z : O), z ∈ M' → c • y + z = 0 → c = 0)(_ay_ortho_N' :
+ ∃ (_N'_le_M' : N' ≤ M') (_y_ortho_M' :
+ ∀ (c : R) (z : O), z ∈ M' → c • y + z = 0 → c = 0) (_ay_ortho_N' :
∀ (c : R) (z : O), z ∈ N' → c • a • y + z = 0 → c = 0),
∀ (n') (bN' : Basis (Fin n') R N'),
∃ bN : Basis (Fin (n' + 1)) R N,
∀ (m') (hn'm' : n' ≤ m') (bM' : Basis (Fin m') R M'),
- ∃ (hnm : n' + 1 ≤ m' + 1)(bM : Basis (Fin (m' + 1)) R M),
+ ∃ (hnm : n' + 1 ≤ m' + 1) (bM : Basis (Fin (m' + 1)) R M),
∀ (as : Fin n' → R)
(_h : ∀ i : Fin n', (bN' i : O) = as i • (bM' (Fin.castLE hn'm' i) : O)),
∃ as' : Fin (n' + 1) → R,
@@ -452,7 +452,7 @@ This is a strengthening of `Submodule.basisOfPidOfLE`.
-/
theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M) (N O : Submodule R M)
(N_le_O : N ≤ O) :
- ∃ (n o : ℕ)(hno : n ≤ o)(bO : Basis (Fin o) R O)(bN : Basis (Fin n) R N)(a : Fin n → R),
+ ∃ (n o : ℕ) (hno : n ≤ o) (bO : Basis (Fin o) R O) (bN : Basis (Fin n) R N) (a : Fin n → R),
∀ i, (bN i : M) = a i • bO (Fin.castLE hno i) := by
cases nonempty_fintype ι
revert N
@@ -553,7 +553,7 @@ The definitions `Ideal.ringBasis`, `Ideal.selfBasis`, `Ideal.smithCoeffs` are (n
choices of values for this existential quantifier.
-/
theorem Ideal.exists_smith_normal_form (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) :
- ∃ (b' : Basis ι R S)(a : ι → R)(ab' : Basis ι R I), ∀ i, (ab' i : S) = a i • b' i := by
+ ∃ (b' : Basis ι R S) (a : ι → R) (ab' : Basis ι R I), ∀ i, (ab' i : S) = a i • b' i := by
cases nonempty_fintype ι
let ⟨bS, bI, f, a, snf⟩ := I.smithNormalForm b hI
let e : Fin (Fintype.card ι) ≃ ι :=
Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module linear_algebra.free_module.pid
-! leanprover-community/mathlib commit 210657c4ea4a4a7b234392f70a3a2a83346dfa90
+! leanprover-community/mathlib commit d87199d51218d36a0a42c66c82d147b5a7ff87b3
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -623,6 +623,9 @@ theorem Ideal.smithCoeffs_ne_zero (b : Basis ι R S) (I : Ideal S) (hI : I ≠
simp [hi]
#align ideal.smith_coeffs_ne_zero Ideal.smithCoeffs_ne_zero
+-- porting note: can be inferred in Lean 4 so no longer necessary
+#noalign has_quotient.quotient.module
+
end Ideal
end SmithNormal
Now that leanprover/lean4#2210 has been merged, this PR:
set_option synthInstance.etaExperiment true
commands (and some etaExperiment%
term elaborators)set_option maxHeartbeats
commandsCo-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>
@@ -64,7 +64,6 @@ variable {ι : Type _} (b : Basis ι R M)
open Submodule.IsPrincipal Submodule
-set_option synthInstance.etaExperiment true in -- Porting note : added
theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodule R M}
{ϕ : M →ₗ[R] R} (hϕ : ∀ ψ : M →ₗ[R] R, ¬N.map ϕ < N.map ψ) [(N.map ϕ).IsPrincipal]
(hgen : generator (N.map ϕ) = (0 : R)) : N = ⊥ := by
@@ -78,7 +77,6 @@ theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodul
⟨x, hx, rfl⟩
#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zero
-set_option synthInstance.etaExperiment true in
theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M} (b : Basis ι R O)
(hNO : N ≤ O) {ϕ : O →ₗ[R] R} (hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
[(ϕ.submoduleImage N).IsPrincipal] (hgen : generator (ϕ.submoduleImage N) = 0) : N = ⊥ := by
@@ -101,7 +99,6 @@ variable {M : Type _} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal Set Submodule
-set_option synthInstance.etaExperiment true in
theorem dvd_generator_iff {I : Ideal R} [I.IsPrincipal] {x : R} (hx : x ∈ I) :
x ∣ generator I ↔ I = Ideal.span {x} := by
conv_rhs => rw [← span_singleton_generator I]
@@ -122,7 +119,6 @@ variable {M : Type _} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal
-set_option synthInstance.etaExperiment true in -- Porting note : added
theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤ O) {ϕ : O →ₗ[R] R}
(hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
[(ϕ.submoduleImage N).IsPrincipal] (y : M) (yN : y ∈ N)
@@ -156,7 +152,6 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤
· exact subset_span (mem_insert _ _)
#align generator_maximal_submodule_image_dvd generator_maximal_submoduleImage_dvd
-set_option synthInstance.etaExperiment true in
/-- The induction hypothesis of `Submodule.basisOfPid` and `Submodule.smithNormalForm`.
Basically, it says: let `N ≤ M` be a pair of submodules, then we can find a pair of
@@ -357,7 +352,6 @@ noncomputable def Submodule.basisOfPidOfLESpan {ι : Type _} [Finite ι] {b : ι
Submodule.basisOfPidOfLE le (Basis.span hb)
#align submodule.basis_of_pid_of_le_span Submodule.basisOfPidOfLESpan
-set_option synthInstance.etaExperiment true in -- Porting note: added
/-- A finite type torsion free module over a PID admits a basis. -/
noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M}
(hs : span R (range s) = ⊤) [NoZeroSMulDivisors R M] : Σn : ℕ, Basis (Fin n) R M := by
@@ -525,7 +519,6 @@ section Ideal
variable {S : Type _} [CommRing S] [IsDomain S] [Algebra R S]
-set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -548,7 +541,6 @@ noncomputable def Ideal.smithNormalForm [Fintype ι] (b : Basis ι R S) (I : Ide
variable [Finite ι]
-set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -575,7 +567,6 @@ theorem Ideal.exists_smith_normal_form (b : Basis ι R S) (I : Ideal S) (hI : I
Submodule.restrictScalarsEquiv_apply, Basis.coe_reindex, (· ∘ ·)]⟩
#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_form
-set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -588,7 +579,6 @@ noncomputable def Ideal.ringBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).choose
#align ideal.ring_basis Ideal.ringBasis
-set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -601,7 +591,6 @@ noncomputable def Ideal.selfBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose_spec.choose
#align ideal.self_basis Ideal.selfBasis
-set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -614,7 +603,6 @@ noncomputable def Ideal.smithCoeffs (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose
#align ideal.smith_coeffs Ideal.smithCoeffs
-set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -626,7 +614,6 @@ theorem Ideal.selfBasis_def (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) :
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose_spec.choose_spec
#align ideal.self_basis_def Ideal.selfBasis_def
-set_option synthInstance.etaExperiment true in
@[simp]
theorem Ideal.smithCoeffs_ne_zero (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) (i) :
Ideal.smithCoeffs b I hI i ≠ 0 := by
@@ -105,7 +105,8 @@ set_option synthInstance.etaExperiment true in
theorem dvd_generator_iff {I : Ideal R} [I.IsPrincipal] {x : R} (hx : x ∈ I) :
x ∣ generator I ↔ I = Ideal.span {x} := by
conv_rhs => rw [← span_singleton_generator I]
- erw [Ideal.span_singleton_eq_span_singleton, ← dvd_dvd_iff_associated, ← mem_iff_generator_dvd]
+ rw [Ideal.submodule_span_eq, Ideal.span_singleton_eq_span_singleton, ← dvd_dvd_iff_associated,
+ ← mem_iff_generator_dvd]
exact ⟨fun h ↦ ⟨hx, h⟩, fun h ↦ h.2⟩
#align dvd_generator_iff dvd_generator_iff
@@ -542,7 +543,7 @@ noncomputable def Ideal.smithNormalForm [Fintype ι] (b : Basis ι R S) (I : Ide
let e : Fin n ≃ Fin (Fintype.card ι) := Fintype.equivOfCardEq (by rw [eq, Fintype.card_fin])
⟨bS, bI.reindex e, e.symm.toEmbedding.trans f, a ∘ e.symm, fun i ↦ by
simp only [snf, Basis.coe_reindex, Function.Embedding.trans_apply, Equiv.toEmbedding_apply,
- (·∘·)]⟩
+ (· ∘ ·)]⟩
#align ideal.smith_normal_form Ideal.smithNormalForm
variable [Finite ι]
@@ -571,7 +572,7 @@ theorem Ideal.exists_smith_normal_form (b : Basis ι R S) (I : Ideal S) (hI : I
⟨bS, a ∘ e.symm, (bI.reindex e).map ((restrictScalarsEquiv R S _ _).restrictScalars R),
fun i ↦ by
simp only [snf, fe, Basis.map_apply, LinearEquiv.restrictScalars_apply R,
- Submodule.restrictScalarsEquiv_apply, Basis.coe_reindex, (·∘·)]⟩
+ Submodule.restrictScalarsEquiv_apply, Basis.coe_reindex, (· ∘ ·)]⟩
#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_form
set_option synthInstance.etaExperiment true in
@@ -271,8 +271,7 @@ theorem Submodule.basis_of_pid_aux [Finite ι] {O : Type _} [AddCommGroup O] [Mo
refine' ⟨-b, Submodule.mem_map.mpr ⟨⟨_, N.sub_mem zN (N.smul_mem b yN)⟩, _, _⟩⟩
· refine' LinearMap.mem_ker.mpr (show ϕ (⟨z, N_le_M zN⟩ - b • ⟨y, N_le_M yN⟩) = 0 from _)
rw [LinearMap.map_sub, LinearMap.map_smul, hb, ϕy_eq, smul_eq_mul, mul_comm, sub_self]
- · simp only [sub_eq_add_neg, neg_smul]
- rfl
+ · simp only [sub_eq_add_neg, neg_smul, coeSubtype]
-- And extend a basis for `M'` with `y'`
intro m' hn'm' bM'
refine' ⟨Nat.succ_le_succ hn'm', _, _⟩
@@ -307,7 +306,7 @@ theorem Submodule.nonempty_basis_of_pid {ι : Type _} [Finite ι] (b : Basis ι
haveI := Classical.decEq M
cases nonempty_fintype ι
induction' N using inductionOnRank with N ih
- exact b
+ · exact b
let b' := (b.reindex (Fintype.equivFin ι)).map (LinearEquiv.ofTop _ rfl).symm
by_cases N_bot : N = ⊥
· subst N_bot
@@ -372,10 +371,8 @@ noncomputable def Module.basisOfFiniteTypeTorsionFree [Fintype ι] {s : ι → M
let N := span R (range <| (s ∘ (fun x => x) : I → M))
-- same as `span R (s '' I)` but more convenient
let _sI : I → N := fun i ↦ ⟨s i.1, subset_span (mem_range_self i)⟩
- -- `s` restricted to `I`
- let sI_basis : Basis I R N
-- `s` restricted to `I` is a basis of `N`
- exact Basis.span indepI
+ let sI_basis : Basis I R N := Basis.span indepI
-- Our first goal is to build `A ≠ 0` such that `A • M ⊆ N`
have exists_a : ∀ i : ι, ∃ a : R, a ≠ 0 ∧ a • s i ∈ N := by
intro i
@@ -465,7 +462,7 @@ theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M)
cases nonempty_fintype ι
revert N
induction' O using inductionOnRank with M0 ih
- exact b
+ · exact b
intro N N_le_M0
obtain ⟨m, b'M⟩ := M0.basisOfPid b
by_cases N_bot : N = ⊥
@@ -564,17 +561,17 @@ choices of values for this existential quantifier.
-/
theorem Ideal.exists_smith_normal_form (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) :
∃ (b' : Basis ι R S)(a : ι → R)(ab' : Basis ι R I), ∀ i, (ab' i : S) = a i • b' i := by
- cases nonempty_fintype ι;
- exact
- let ⟨bS, bI, f, a, snf⟩ := I.smithNormalForm b hI
- let e : Fin (Fintype.card ι) ≃ ι :=
- Equiv.ofBijective f
- ((Fintype.bijective_iff_injective_and_card f).mpr ⟨f.injective, Fintype.card_fin _⟩)
- have fe : ∀ i, f (e.symm i) = i := e.apply_symm_apply
- ⟨bS, a ∘ e.symm, (bI.reindex e).map ((restrictScalarsEquiv R S _ _).restrictScalars R),
- fun i ↦ by
- simp only [snf, fe, Basis.map_apply, LinearEquiv.restrictScalars_apply R,
- Submodule.restrictScalarsEquiv_apply, Basis.coe_reindex, (·∘·)]⟩
+ cases nonempty_fintype ι
+ let ⟨bS, bI, f, a, snf⟩ := I.smithNormalForm b hI
+ let e : Fin (Fintype.card ι) ≃ ι :=
+ Equiv.ofBijective f
+ ((Fintype.bijective_iff_injective_and_card f).mpr ⟨f.injective, Fintype.card_fin _⟩)
+ have fe : ∀ i, f (e.symm i) = i := e.apply_symm_apply
+ exact
+ ⟨bS, a ∘ e.symm, (bI.reindex e).map ((restrictScalarsEquiv R S _ _).restrictScalars R),
+ fun i ↦ by
+ simp only [snf, fe, Basis.map_apply, LinearEquiv.restrictScalars_apply R,
+ Submodule.restrictScalarsEquiv_apply, Basis.coe_reindex, (·∘·)]⟩
#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_form
set_option synthInstance.etaExperiment true in
This is to fix timeouts in https://github.com/leanprover-community/mathlib4/pull/3552.
See discussion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.233552.20.28LinearAlgebra.2EMatrix.2EToLin.29.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -78,6 +78,7 @@ theorem eq_bot_of_generator_maximal_map_eq_zero (b : Basis ι R M) {N : Submodul
⟨x, hx, rfl⟩
#align eq_bot_of_generator_maximal_map_eq_zero eq_bot_of_generator_maximal_map_eq_zero
+set_option synthInstance.etaExperiment true in
theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero {N O : Submodule R M} (b : Basis ι R O)
(hNO : N ≤ O) {ϕ : O →ₗ[R] R} (hϕ : ∀ ψ : O →ₗ[R] R, ¬ϕ.submoduleImage N < ψ.submoduleImage N)
[(ϕ.submoduleImage N).IsPrincipal] (hgen : generator (ϕ.submoduleImage N) = 0) : N = ⊥ := by
@@ -100,6 +101,7 @@ variable {M : Type _} [AddCommGroup M] [Module R M] {b : ι → M}
open Submodule.IsPrincipal Set Submodule
+set_option synthInstance.etaExperiment true in
theorem dvd_generator_iff {I : Ideal R} [I.IsPrincipal] {x : R} (hx : x ∈ I) :
x ∣ generator I ↔ I = Ideal.span {x} := by
conv_rhs => rw [← span_singleton_generator I]
@@ -525,6 +527,7 @@ section Ideal
variable {S : Type _} [CommRing S] [IsDomain S] [Algebra R S]
+set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -547,6 +550,7 @@ noncomputable def Ideal.smithNormalForm [Fintype ι] (b : Basis ι R S) (I : Ide
variable [Finite ι]
+set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -573,6 +577,7 @@ theorem Ideal.exists_smith_normal_form (b : Basis ι R S) (I : Ideal S) (hI : I
Submodule.restrictScalarsEquiv_apply, Basis.coe_reindex, (·∘·)]⟩
#align ideal.exists_smith_normal_form Ideal.exists_smith_normal_form
+set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -585,6 +590,7 @@ noncomputable def Ideal.ringBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).choose
#align ideal.ring_basis Ideal.ringBasis
+set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -597,6 +603,7 @@ noncomputable def Ideal.selfBasis (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose_spec.choose
#align ideal.self_basis Ideal.selfBasis
+set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -609,6 +616,7 @@ noncomputable def Ideal.smithCoeffs (b : Basis ι R S) (I : Ideal S) (hI : I ≠
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose
#align ideal.smith_coeffs Ideal.smithCoeffs
+set_option synthInstance.etaExperiment true in
/-- If `S` a finite-dimensional ring extension of a PID `R` which is free as an `R`-module,
then any nonzero `S`-ideal `I` is free as an `R`-submodule of `S`, and we can
find a basis for `S` and `I` such that the inclusion map is a square diagonal
@@ -620,6 +628,7 @@ theorem Ideal.selfBasis_def (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) :
(Ideal.exists_smith_normal_form b I hI).choose_spec.choose_spec.choose_spec
#align ideal.self_basis_def Ideal.selfBasis_def
+set_option synthInstance.etaExperiment true in
@[simp]
theorem Ideal.smithCoeffs_ne_zero (b : Basis ι R S) (I : Ideal S) (hI : I ≠ ⊥) (i) :
Ideal.smithCoeffs b I hI i ≠ 0 := by
The unported dependencies are