ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Module.Dual.transpose_comp
theorem transpose_comp (u : M' →ₗ[R] M'') (v : M →ₗ[R] M') :
    transpose (R := R) (u.comp v) = (transpose (R := R) v).comp (transpose (R := R) u) 
Arguments: {R : Type uR} {M : Type uM} [CommSemiring R] [AddCommMonoid M] [Module R M] {M' : Type uM'} [AddCommMonoid M'] [Module R M'] {M'' : Type uM''} [AddCommMonoid M''] [Module R M''] (u : M' →ₗ[R] M'') (v : M →ₗ[R] M')
Goal: Module.Dual.transpose (u ∘ₗ v) = Module.Dual.transpose v ∘ₗ Module.Dual.transpose u
-- Module.dualProdDualEquivDual_apply_apply
@[simps!]
def dualProdDualEquivDual : (Module.Dual R M × Module.Dual R M') ≃ₗ[R] Module.Dual R (M × M') 
Arguments: (R : Type uR) (M : Type uM) [CommSemiring R] [AddCommMonoid M] [Module R M] (M' : Type uM') [AddCommMonoid M'] [Module R M'] (f : (M →ₗ[R] R) × (M' →ₗ[R] R)) (a : M × M')
Goal: ((Module.dualProdDualEquivDual R M M') f) a = f.1 a.1 + f.2 a.2
-- Module.dualProdDualEquivDual_symm_apply
@[simps!]
def dualProdDualEquivDual : (Module.Dual R M × Module.Dual R M') ≃ₗ[R] Module.Dual R (M × M') 
Arguments: (R : Type uR) (M : Type uM) [CommSemiring R] [AddCommMonoid M] [Module R M] (M' : Type uM') [AddCommMonoid M'] [Module R M'] (f : M × M' →ₗ[R] R)
Goal: (Module.dualProdDualEquivDual R M M').symm f = (f ∘ₗ LinearMap.inl R M M', f ∘ₗ LinearMap.inr R M M')
-- Module.dualProdDualEquivDual_apply
@[simp]
theorem dualProdDualEquivDual_apply (φ : Module.Dual R M) (ψ : Module.Dual R M') :
    dualProdDualEquivDual R M M' (φ, ψ) = φ.coprod ψ 
Arguments: (R : Type uR) (M : Type uM) [CommSemiring R] [AddCommMonoid M] [Module R M] (M' : Type uM') [AddCommMonoid M'] [Module R M'] (φ : Module.Dual R M) (ψ : Module.Dual R M')
Goal: (Module.dualProdDualEquivDual R M M') (φ, ψ) = LinearMap.coprod φ ψ
-- LinearMap.dualMap_eq_lcomp
lemma LinearMap.dualMap_eq_lcomp (f : M₁ →ₗ[R] M₂) : f.dualMap = f.lcomp R 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} {M₂ : Type v'} [AddCommMonoid M₁] [Module R M₁] [AddCommMonoid M₂] [Module R M₂] (f : M₁ →ₗ[R] M₂)
Goal: f.dualMap = LinearMap.lcomp R R f
-- LinearMap.dualMap_def
theorem LinearMap.dualMap_def (f : M₁ →ₗ[R] M₂) : f.dualMap = Module.Dual.transpose (R := R) f 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} {M₂ : Type v'} [AddCommMonoid M₁] [Module R M₁] [AddCommMonoid M₂] [Module R M₂] (f : M₁ →ₗ[R] M₂)
Goal: f.dualMap = Module.Dual.transpose f
-- LinearMap.dualMap_apply'
theorem LinearMap.dualMap_apply' (f : M₁ →ₗ[R] M₂) (g : Dual R M₂) : f.dualMap g = g.comp f 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} {M₂ : Type v'} [AddCommMonoid M₁] [Module R M₁] [AddCommMonoid M₂] [Module R M₂] (f : M₁ →ₗ[R] M₂) (g : Module.Dual R M₂)
Goal: f.dualMap g = g ∘ₗ f
-- LinearMap.dualMap_apply
@[simp]
theorem LinearMap.dualMap_apply (f : M₁ →ₗ[R] M₂) (g : Dual R M₂) (x : M₁) :
    f.dualMap g x = g (f x) 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} {M₂ : Type v'} [AddCommMonoid M₁] [Module R M₁] [AddCommMonoid M₂] [Module R M₂] (f : M₁ →ₗ[R] M₂) (g : Module.Dual R M₂) (x : M₁)
Goal: (f.dualMap g) x = g (f x)
-- LinearMap.dualMap_id
@[simp]
theorem LinearMap.dualMap_id : (LinearMap.id : M₁ →ₗ[R] M₁).dualMap = LinearMap.id 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} [AddCommMonoid M₁] [Module R M₁]
Goal: LinearMap.id.dualMap = LinearMap.id
-- LinearMap.dualMap_comp_dualMap
theorem LinearMap.dualMap_comp_dualMap {M₃ : Type*} [AddCommGroup M₃] [Module R M₃]
    (f : M₁ →ₗ[R] M₂) (g : M₂ →ₗ[R] M₃) : f.dualMap.comp g.dualMap = (g.comp f).dualMap 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} {M₂ : Type v'} [AddCommMonoid M₁] [Module R M₁] [AddCommMonoid M₂] [Module R M₂] {M₃ : Type u_1} [AddCommGroup M₃] [Module R M₃] (f : M₁ →ₗ[R] M₂) (g : M₂ →ₗ[R] M₃)
Goal: f.dualMap ∘ₗ g.dualMap = (g ∘ₗ f).dualMap
-- LinearMap.dualMap_injective_of_surjective
theorem LinearMap.dualMap_injective_of_surjective {f : M₁ →ₗ[R] M₂} (hf : Function.Surjective f) :
    Function.Injective f.dualMap 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} {M₂ : Type v'} [AddCommMonoid M₁] [Module R M₁] [AddCommMonoid M₂] [Module R M₂] {f : M₁ →ₗ[R] M₂} (hf : Function.Surjective ⇑f)
Goal: Function.Injective ⇑f.dualMap
-- LinearEquiv.dualMap_apply
@[simp]
theorem LinearEquiv.dualMap_apply (f : M₁ ≃ₗ[R] M₂) (g : Dual R M₂) (x : M₁) :
    f.dualMap g x = g (f x) 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} {M₂ : Type v'} [AddCommMonoid M₁] [Module R M₁] [AddCommMonoid M₂] [Module R M₂] (f : M₁ ≃ₗ[R] M₂) (g : Module.Dual R M₂) (x : M₁)
Goal: (f.dualMap g) x = g (f x)
-- LinearEquiv.dualMap_refl
@[simp]
theorem LinearEquiv.dualMap_refl :
    (LinearEquiv.refl R M₁).dualMap = LinearEquiv.refl R (Dual R M₁) 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} [AddCommMonoid M₁] [Module R M₁]
Goal: (LinearEquiv.refl R M₁).dualMap = LinearEquiv.refl R (Module.Dual R M₁)
-- LinearEquiv.dualMap_symm
@[simp]
theorem LinearEquiv.dualMap_symm {f : M₁ ≃ₗ[R] M₂} :
    (LinearEquiv.dualMap f).symm = LinearEquiv.dualMap f.symm 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} {M₂ : Type v'} [AddCommMonoid M₁] [Module R M₁] [AddCommMonoid M₂] [Module R M₂] {f : M₁ ≃ₗ[R] M₂}
Goal: f.dualMap.symm = f.symm.dualMap
-- LinearEquiv.dualMap_trans
theorem LinearEquiv.dualMap_trans {M₃ : Type*} [AddCommGroup M₃] [Module R M₃] (f : M₁ ≃ₗ[R] M₂)
    (g : M₂ ≃ₗ[R] M₃) : g.dualMap.trans f.dualMap = (f.trans g).dualMap 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} {M₂ : Type v'} [AddCommMonoid M₁] [Module R M₁] [AddCommMonoid M₂] [Module R M₂] {M₃ : Type u_1} [AddCommGroup M₃] [Module R M₃] (f : M₁ ≃ₗ[R] M₂) (g : M₂ ≃ₗ[R] M₃)
Goal: g.dualMap ≪≫ₗ f.dualMap = (f ≪≫ₗ g).dualMap
-- Dual.apply_one_mul_eq
@[simp]
lemma Dual.apply_one_mul_eq (f : Dual R R) (r : R) :
    f 1 * r = f r 
Arguments: {R : Type u} [CommSemiring R] (f : Module.Dual R R) (r : R)
Goal: f 1 * r = f r
-- LinearMap.range_dualMap_dual_eq_span_singleton
@[simp]
lemma LinearMap.range_dualMap_dual_eq_span_singleton (f : Dual R M₁) :
    range f.dualMap = R ∙ f 
Arguments: {R : Type u} [CommSemiring R] {M₁ : Type v} [AddCommMonoid M₁] [Module R M₁] (f : Module.Dual R M₁)
Goal: LinearMap.range (LinearMap.dualMap f) = Submodule.span R {f}
-- Basis.toDual_apply
theorem toDual_apply (i j : ι) : b.toDual (b i) (b j) = if i = j then 1 else 0 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M) (i j : ι)
Goal: (b.toDual (b i)) (b j) = if i = j then 1 else 0
-- Basis.toDual_total_left
@[simp]
theorem toDual_total_left (f : ι →₀ R) (i : ι) :
    b.toDual (Finsupp.total ι M R b f) (b i) = f i 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M) (f : ι →₀ R) (i : ι)
Goal: (b.toDual ((Finsupp.total ι M R ⇑b) f)) (b i) = f i
-- Basis.toDual_total_right
@[simp]
theorem toDual_total_right (f : ι →₀ R) (i : ι) :
    b.toDual (b i) (Finsupp.total ι M R b f) = f i 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M) (f : ι →₀ R) (i : ι)
Goal: (b.toDual (b i)) ((Finsupp.total ι M R ⇑b) f) = f i
-- Basis.toDual_apply_left
theorem toDual_apply_left (m : M) (i : ι) : b.toDual m (b i) = b.repr m i 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M) (m : M) (i : ι)
Goal: (b.toDual m) (b i) = (b.repr m) i
-- Basis.toDual_apply_right
theorem toDual_apply_right (i : ι) (m : M) : b.toDual (b i) m = b.repr m i 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M) (i : ι) (m : M)
Goal: (b.toDual (b i)) m = (b.repr m) i
-- Basis.coe_toDual_self
theorem coe_toDual_self (i : ι) : b.toDual (b i) = b.coord i 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M) (i : ι)
Goal: b.toDual (b i) = b.coord i
-- Basis.toDualFlip_apply
theorem toDualFlip_apply (m₁ m₂ : M) : b.toDualFlip m₁ m₂ = b.toDual m₂ m₁ 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M) (m₁ m₂ : M)
Goal: (b.toDualFlip m₁) m₂ = (b.toDual m₂) m₁
-- Basis.toDual_eq_repr
theorem toDual_eq_repr (m : M) (i : ι) : b.toDual m (b i) = b.repr m i 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M) (m : M) (i : ι)
Goal: (b.toDual m) (b i) = (b.repr m) i
-- Basis.toDual_eq_equivFun
theorem toDual_eq_equivFun [Finite ι] (m : M) (i : ι) : b.toDual m (b i) = b.equivFun m i 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M) [Finite ι] (m : M) (i : ι)
Goal: (b.toDual m) (b i) = b.equivFun m i
-- Basis.toDual_injective
theorem toDual_injective : Injective b.toDual 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M)
Goal: Function.Injective ⇑b.toDual
-- Basis.toDual_inj
theorem toDual_inj (m : M) (a : b.toDual m = 0) : m = 0 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M) (m : M) (a : b.toDual m = 0)
Goal: m = 0
-- Basis.toDual_ker
theorem toDual_ker : LinearMap.ker b.toDual = ⊥ 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M)
Goal: LinearMap.ker b.toDual = ⊥
-- Basis.toDual_range
theorem toDual_range [Finite ι] : LinearMap.range b.toDual = ⊤ 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] (b : Basis ι R M) [Finite ι]
Goal: LinearMap.range b.toDual = ⊤
-- Basis.sum_dual_apply_smul_coord
@[simp]
theorem sum_dual_apply_smul_coord (f : Module.Dual R M) :
    (∑ x, f (b x) • b.coord x) = f 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [Fintype ι] (b : Basis ι R M) (f : Module.Dual R M)
Goal: ∑ x : ι, f (b x) • b.coord x = f
-- Basis.toDualEquiv_apply
@[simp]
theorem toDualEquiv_apply (m : M) : b.toDualEquiv m = b.toDual m 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommRing R] [AddCommGroup M] [Module R M] [DecidableEq ι] (b : Basis ι R M) [Finite ι] (m : M)
Goal: b.toDualEquiv m = b.toDual m
-- Basis.linearEquiv_dual_iff_finiteDimensional
theorem linearEquiv_dual_iff_finiteDimensional [Field K] [AddCommGroup V] [Module K V] :
    Nonempty (V ≃ₗ[K] Dual K V) ↔ FiniteDimensional K V 
Arguments: {K : Type uK} {V : Type uV} [Field K] [AddCommGroup V] [Module K V]
Goal: Nonempty (V ≃ₗ[K] Module.Dual K V) ↔ FiniteDimensional K V
-- Basis.dualBasis_apply_self
theorem dualBasis_apply_self (i j : ι) : b.dualBasis i (b j) =
    if j = i then 1 else 0 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommRing R] [AddCommGroup M] [Module R M] [DecidableEq ι] (b : Basis ι R M) [Finite ι] (i j : ι)
Goal: (b.dualBasis i) (b j) = if j = i then 1 else 0
-- Basis.total_dualBasis
theorem total_dualBasis (f : ι →₀ R) (i : ι) :
    Finsupp.total ι (Dual R M) R b.dualBasis f (b i) = f i 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommRing R] [AddCommGroup M] [Module R M] [DecidableEq ι] (b : Basis ι R M) [Finite ι] (f : ι →₀ R) (i : ι)
Goal: ((Finsupp.total ι (Module.Dual R M) R ⇑b.dualBasis) f) (b i) = f i
-- Basis.dualBasis_repr
theorem dualBasis_repr (l : Dual R M) (i : ι) : b.dualBasis.repr l i = l (b i) 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommRing R] [AddCommGroup M] [Module R M] [DecidableEq ι] (b : Basis ι R M) [Finite ι] (l : Module.Dual R M) (i : ι)
Goal: (b.dualBasis.repr l) i = l (b i)
-- Basis.dualBasis_apply
theorem dualBasis_apply (i : ι) (m : M) : b.dualBasis i m = b.repr m i 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommRing R] [AddCommGroup M] [Module R M] [DecidableEq ι] (b : Basis ι R M) [Finite ι] (i : ι) (m : M)
Goal: (b.dualBasis i) m = (b.repr m) i
-- Basis.coe_dualBasis
@[simp]
theorem coe_dualBasis : ⇑b.dualBasis = b.coord 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommRing R] [AddCommGroup M] [Module R M] [DecidableEq ι] (b : Basis ι R M) [Finite ι]
Goal: ⇑b.dualBasis = b.coord
-- Basis.toDual_toDual
@[simp]
theorem toDual_toDual : b.dualBasis.toDual.comp b.toDual = Dual.eval R M 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommRing R] [AddCommGroup M] [Module R M] [DecidableEq ι] (b : Basis ι R M) [Finite ι]
Goal: b.dualBasis.toDual ∘ₗ b.toDual = Module.Dual.eval R M
-- Basis.dualBasis_equivFun
theorem dualBasis_equivFun [Finite ι] (l : Dual R M) (i : ι) :
    b.dualBasis.equivFun l i = l (b i) 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommRing R] [AddCommGroup M] [Module R M] [DecidableEq ι] (b : Basis ι R M) [Finite ι] (l : Module.Dual R M) (i : ι)
Goal: b.dualBasis.equivFun l i = l (b i)
-- Basis.eval_ker
theorem eval_ker {ι : Type*} (b : Basis ι R M) :
    LinearMap.ker (Dual.eval R M) = ⊥ 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {ι : Type u_1} (b : Basis ι R M)
Goal: LinearMap.ker (Module.Dual.eval R M) = ⊥
-- Basis.eval_range
theorem eval_range {ι : Type*} [Finite ι] (b : Basis ι R M) :
    LinearMap.range (Dual.eval R M) = ⊤ 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {ι : Type u_1} [Finite ι] (b : Basis ι R M)
Goal: LinearMap.range (Module.Dual.eval R M) = ⊤
-- Basis.total_coord
@[simp]
theorem total_coord [CommRing R] [AddCommGroup M] [Module R M] [Finite ι] (b : Basis ι R M)
    (f : ι →₀ R) (i : ι) : Finsupp.total ι (Dual R M) R b.coord f (b i) = f i 
Arguments: {R : Type uR} {M : Type uM} {ι : Type uι} [CommRing R] [AddCommGroup M] [Module R M] [Finite ι] (b : Basis ι R M) (f : ι →₀ R) (i : ι)
Goal: ((Finsupp.total ι (Module.Dual R M) R b.coord) f) (b i) = f i
-- Basis.dual_rank_eq
theorem dual_rank_eq [CommRing K] [AddCommGroup V] [Module K V] [Finite ι] (b : Basis ι K V) :
    Cardinal.lift.{uK,uV} (Module.rank K V) = Module.rank K (Dual K V) 
Arguments: {K : Type uK} {V : Type uV} {ι : Type uι} [CommRing K] [AddCommGroup V] [Module K V] [Finite ι] (b : Basis ι K V)
Goal: Cardinal.lift.{uK, uV} (Module.rank K V) = Module.rank K (Module.Dual K V)
-- Module.eval_ker
theorem eval_ker : LinearMap.ker (eval K V) = ⊥ 
Arguments: (K : Type uK) (V : Type uV) [CommRing K] [AddCommGroup V] [Module K V] [Module.Free K V]
Goal: LinearMap.ker (Module.Dual.eval K V) = ⊥
-- Module.map_eval_injective
theorem map_eval_injective : (Submodule.map (eval K V)).Injective 
Arguments: (K : Type uK) (V : Type uV) [CommRing K] [AddCommGroup V] [Module K V] [Module.Free K V]
Goal: Function.Injective (Submodule.map (Module.Dual.eval K V))
-- Module.comap_eval_surjective
theorem comap_eval_surjective : (Submodule.comap (eval K V)).Surjective 
Arguments: (K : Type uK) (V : Type uV) [CommRing K] [AddCommGroup V] [Module K V] [Module.Free K V]
Goal: Function.Surjective (Submodule.comap (Module.Dual.eval K V))
-- Module.eval_apply_eq_zero_iff
theorem eval_apply_eq_zero_iff (v : V) : (eval K V) v = 0 ↔ v = 0 
Arguments: (K : Type uK) {V : Type uV} [CommRing K] [AddCommGroup V] [Module K V] [Module.Free K V] (v : V)
Goal: (Module.Dual.eval K V) v = 0 ↔ v = 0
-- Module.eval_apply_injective
theorem eval_apply_injective : Function.Injective (eval K V) 
Arguments: (K : Type uK) {V : Type uV} [CommRing K] [AddCommGroup V] [Module K V] [Module.Free K V]
Goal: Function.Injective ⇑(Module.Dual.eval K V)
-- Module.forall_dual_apply_eq_zero_iff
theorem forall_dual_apply_eq_zero_iff (v : V) : (∀ φ : Module.Dual K V, φ v = 0) ↔ v = 0 
Arguments: (K : Type uK) {V : Type uV} [CommRing K] [AddCommGroup V] [Module K V] [Module.Free K V] (v : V)
Goal: (∀ (φ : Module.Dual K V), φ v = 0) ↔ v = 0
-- Module.subsingleton_dual_iff
@[simp]
theorem subsingleton_dual_iff :
    Subsingleton (Dual K V) ↔ Subsingleton V 
Arguments: (K : Type uK) {V : Type uV} [CommRing K] [AddCommGroup V] [Module K V] [Module.Free K V]
Goal: Subsingleton (Module.Dual K V) ↔ Subsingleton V
-- Module.nontrivial_dual_iff
@[simp]
theorem nontrivial_dual_iff :
    Nontrivial (Dual K V) ↔ Nontrivial V 
Arguments: (K : Type uK) {V : Type uV} [CommRing K] [AddCommGroup V] [Module K V] [Module.Free K V]
Goal: Nontrivial (Module.Dual K V) ↔ Nontrivial V
-- Module.finite_dual_iff
theorem finite_dual_iff : Finite K (Dual K V) ↔ Finite K V 
Arguments: (K : Type uK) {V : Type uV} [CommRing K] [AddCommGroup V] [Module K V] [Module.Free K V]
Goal: Module.Finite K (Module.Dual K V) ↔ Module.Finite K V
-- Module.dual_rank_eq
theorem dual_rank_eq [Module.Finite K V] :
    Cardinal.lift.{uK,uV} (Module.rank K V) = Module.rank K (Dual K V) 
Arguments: {K : Type uK} {V : Type uV} [CommRing K] [AddCommGroup V] [Module K V] [Module.Free K V] [Module.Finite K V]
Goal: Cardinal.lift.{uK, uV} (Module.rank K V) = Module.rank K (Module.Dual K V)
-- Module.erange_coe
theorem erange_coe [Module.Finite K V] : LinearMap.range (eval K V) = ⊤ 
Arguments: {K : Type uK} {V : Type uV} [CommRing K] [AddCommGroup V] [Module K V] [Module.Free K V] [Module.Finite K V]
Goal: LinearMap.range (Module.Dual.eval K V) = ⊤
-- Module.IsReflexive.bijective_dual_eval'
class IsReflexive : Prop where
    bijective_dual_eval' : Bijective (Dual.eval R M)
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] [self : Module.IsReflexive R M]
Goal: Function.Bijective ⇑(Module.Dual.eval R M)
-- Module.bijective_dual_eval
lemma bijective_dual_eval [IsReflexive R M] : Bijective (Dual.eval R M) 
Arguments: (R : Type u_1) (M : Type u_2) [CommRing R] [AddCommGroup M] [Module R M] [Module.IsReflexive R M]
Goal: Function.Bijective ⇑(Module.Dual.eval R M)
-- Module.evalEquiv_toLinearMap
@[simp] lemma evalEquiv_toLinearMap : evalEquiv R M = Dual.eval R M 
Arguments: (R : Type u_1) (M : Type u_2) [CommRing R] [AddCommGroup M] [Module R M] [Module.IsReflexive R M]
Goal: ↑(Module.evalEquiv R M) = Module.Dual.eval R M
-- Module.evalEquiv_apply
@[simp] lemma evalEquiv_apply (m : M) : evalEquiv R M m = Dual.eval R M m 
Arguments: (R : Type u_1) (M : Type u_2) [CommRing R] [AddCommGroup M] [Module R M] [Module.IsReflexive R M] (m : M)
Goal: (Module.evalEquiv R M) m = (Module.Dual.eval R M) m
-- Module.apply_evalEquiv_symm_apply
@[simp] lemma apply_evalEquiv_symm_apply (f : Dual R M) (g : Dual R (Dual R M)) :
    f ((evalEquiv R M).symm g) = g f 
Arguments: (R : Type u_1) (M : Type u_2) [CommRing R] [AddCommGroup M] [Module R M] [Module.IsReflexive R M] (f : Module.Dual R M) (g : Module.Dual R (Module.Dual R M))
Goal: f ((Module.evalEquiv R M).symm g) = g f
-- Module.symm_dualMap_evalEquiv
@[simp] lemma symm_dualMap_evalEquiv :
    (evalEquiv R M).symm.dualMap = Dual.eval R (Dual R M) 
Arguments: (R : Type u_1) (M : Type u_2) [CommRing R] [AddCommGroup M] [Module R M] [Module.IsReflexive R M]
Goal: ↑(Module.evalEquiv R M).symm.dualMap = Module.Dual.eval R (Module.Dual R M)
-- Module.mapEvalEquiv_apply
@[simp]
theorem mapEvalEquiv_apply (W : Submodule R M) :
    mapEvalEquiv R M W = W.map (Dual.eval R M) 
Arguments: (R : Type u_1) (M : Type u_2) [CommRing R] [AddCommGroup M] [Module R M] [Module.IsReflexive R M] (W : Submodule R M)
Goal: (Module.mapEvalEquiv R M) W = Submodule.map (Module.Dual.eval R M) W
-- Module.mapEvalEquiv_symm_apply
@[simp]
theorem mapEvalEquiv_symm_apply (W'' : Submodule R (Dual R (Dual R M))) :
    (mapEvalEquiv R M).symm W'' = W''.comap (Dual.eval R M) 
Arguments: (R : Type u_1) (M : Type u_2) [CommRing R] [AddCommGroup M] [Module R M] [Module.IsReflexive R M] (W'' : Submodule R (Module.Dual R (Module.Dual R M)))
Goal: (Module.mapEvalEquiv R M).symm W'' = Submodule.comap (Module.Dual.eval R M) W''
-- Module.equiv
lemma equiv (e : M ≃ₗ[R] N) : IsReflexive R N 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] [Module.IsReflexive R M] (e : M ≃ₗ[R] N)
Goal: Module.IsReflexive R N
-- Submodule.exists_dual_map_eq_bot_of_nmem
theorem exists_dual_map_eq_bot_of_nmem {x : M} (hx : x ∉ p) (hp' : Free R (M ⧸ p)) :
    ∃ f : Dual R M, f x ≠ 0 ∧ p.map f = ⊥ 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] {p : Submodule R M} {x : M} (hx : x ∉ p) (hp' : Module.Free R (M ⧸ p))
Goal: ∃ f, f x ≠ 0 ∧ Submodule.map f p = ⊥
-- Submodule.exists_dual_map_eq_bot_of_lt_top
theorem exists_dual_map_eq_bot_of_lt_top (hp : p < ⊤) (hp' : Free R (M ⧸ p)) :
    ∃ f : Dual R M, f ≠ 0 ∧ p.map f = ⊥ 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] {p : Submodule R M} (hp : p < ⊤) (hp' : Module.Free R (M ⧸ p))
Goal: ∃ f, f ≠ 0 ∧ Submodule.map f p = ⊥
-- Module.DualBases.total
-- @[nolint has_nonempty_instance] Porting note (#5171): removed
structure Module.DualBases (e : ι → M) (ε : ι → Dual R M) : Prop where
  eval : ∀ i j : ι, ε i (e j) = if i = j then 1 else 0
  protected total : ∀ {m : M}, (∀ i, ε i m = 0) → m = 0
  protected finite : ∀ m : M, { i | ε i m ≠ 0 }.Finite := by
      use_finite_instance
Arguments: {R : Type u_1} {M : Type u_2} {ι : Type u_3} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] {e : ι → M} {ε : ι → Module.Dual R M} (self : Module.DualBases e ε) {m : M}
Goal: (∀ (i : ι), (ε i) m = 0) → m = 0
-- Module.DualBases.eval
-- @[nolint has_nonempty_instance] Porting note (#5171): removed
structure Module.DualBases (e : ι → M) (ε : ι → Dual R M) : Prop where
  eval : ∀ i j : ι, ε i (e j) = if i = j then 1 else 0
  protected total : ∀ {m : M}, (∀ i, ε i m = 0) → m = 0
  protected finite : ∀ m : M, { i | ε i m ≠ 0 }.Finite := by
      use_finite_instance
Arguments: {R : Type u_1} {M : Type u_2} {ι : Type u_3} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] {e : ι → M} {ε : ι → Module.Dual R M} (self : Module.DualBases e ε) (i j : ι)
Goal: (ε i) (e j) = if i = j then 1 else 0
-- Module.DualBases.finite
-- @[nolint has_nonempty_instance] Porting note (#5171): removed
structure Module.DualBases (e : ι → M) (ε : ι → Dual R M) : Prop where
  eval : ∀ i j : ι, ε i (e j) = if i = j then 1 else 0
  protected total : ∀ {m : M}, (∀ i, ε i m = 0) → m = 0
  protected finite : ∀ m : M, { i | ε i m ≠ 0 }.Finite := by
      use_finite_instance
Arguments: {R : Type u_1} {M : Type u_2} {ι : Type u_3} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq ι] {e : ι → M} {ε : ι → Module.Dual R M} (self : Module.DualBases e ε) (m : M)
Goal: {i | (ε i) m ≠ 0}.Finite
-- Module.DualBases.coeffs_apply
@[simp]
theorem coeffs_apply [DecidableEq ι] (h : DualBases e ε) (m : M) (i : ι) : h.coeffs m i = ε i m 
Arguments: {R : Type u_1} {M : Type u_2} {ι : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {e : ι → M} {ε : ι → Module.Dual R M} [DecidableEq ι] (h : Module.DualBases e ε) (m : M) (i : ι)
Goal: (h.coeffs m) i = (ε i) m
-- Module.DualBases.lc_def
theorem lc_def (e : ι → M) (l : ι →₀ R) : lc e l = Finsupp.total _ _ R e l 
Arguments: {R : Type u_1} {M : Type u_2} {ι : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] (e : ι → M) (l : ι →₀ R)
Goal: Module.DualBases.lc e l = (Finsupp.total ι M R e) l
-- Module.DualBases.dual_lc
theorem dual_lc (l : ι →₀ R) (i : ι) : ε i (DualBases.lc e l) = l i 
Arguments: {R : Type u_1} {M : Type u_2} {ι : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {e : ι → M} {ε : ι → Module.Dual R M} [DecidableEq ι] (h : Module.DualBases e ε) (l : ι →₀ R) (i : ι)
Goal: (ε i) (Module.DualBases.lc e l) = l i
-- Module.DualBases.coeffs_lc
@[simp]
theorem coeffs_lc (l : ι →₀ R) : h.coeffs (DualBases.lc e l) = l 
Arguments: {R : Type u_1} {M : Type u_2} {ι : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {e : ι → M} {ε : ι → Module.Dual R M} [DecidableEq ι] (h : Module.DualBases e ε) (l : ι →₀ R)
Goal: h.coeffs (Module.DualBases.lc e l) = l
-- Module.DualBases.lc_coeffs
@[simp]
theorem lc_coeffs (m : M) : DualBases.lc e (h.coeffs m) = m 
Arguments: {R : Type u_1} {M : Type u_2} {ι : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {e : ι → M} {ε : ι → Module.Dual R M} [DecidableEq ι] (h : Module.DualBases e ε) (m : M)
Goal: Module.DualBases.lc e (h.coeffs m) = m