ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Lagrange.eval_nodal_not_at_node
theorem eval_nodal_not_at_node [Nontrivial R] [NoZeroDivisors R] {x : R}
    (hx : ∀ i ∈ s, x ≠ v i) : eval x (nodal s v) ≠ 0 
Arguments: {R : Type u_1} [CommRing R] {ι : Type u_2} {s : Finset ι} {v : ι → R} [Nontrivial R] [NoZeroDivisors R] {x : R} (hx : ∀ i ∈ s, x ≠ v i)
Goal: Polynomial.eval x (Lagrange.nodal s v) ≠ 0
-- Lagrange.nodal_eq_mul_nodal_erase
theorem nodal_eq_mul_nodal_erase [DecidableEq ι] {i : ι} (hi : i ∈ s) :
    nodal s v = (X - C (v i)) * nodal (s.erase i) v 
Arguments: {R : Type u_1} [CommRing R] {ι : Type u_2} {s : Finset ι} {v : ι → R} [DecidableEq ι] {i : ι} (hi : i ∈ s)
Goal: Lagrange.nodal s v = (Polynomial.X - Polynomial.C (v i)) * Lagrange.nodal (s.erase i) v
-- Lagrange.X_sub_C_dvd_nodal
theorem X_sub_C_dvd_nodal (v : ι → R) {i : ι} (hi : i ∈ s) : X - C (v i) ∣ nodal s v 
Arguments: {R : Type u_1} [CommRing R] {ι : Type u_2} {s : Finset ι} (v : ι → R) {i : ι} (hi : i ∈ s)
Goal: Polynomial.X - Polynomial.C (v i) ∣ Lagrange.nodal s v
-- Lagrange.nodal_insert_eq_nodal
theorem nodal_insert_eq_nodal [DecidableEq ι] {i : ι} (hi : i ∉ s) :
    nodal (insert i s) v = (X - C (v i)) * nodal s v 
Arguments: {R : Type u_1} [CommRing R] {ι : Type u_2} {s : Finset ι} {v : ι → R} [DecidableEq ι] {i : ι} (hi : i ∉ s)
Goal: Lagrange.nodal (insert i s) v = (Polynomial.X - Polynomial.C (v i)) * Lagrange.nodal s v
-- Lagrange.derivative_nodal
theorem derivative_nodal [DecidableEq ι] :
    derivative (nodal s v) = ∑ i ∈ s, nodal (s.erase i) v 
Arguments: {R : Type u_1} [CommRing R] {ι : Type u_2} {s : Finset ι} {v : ι → R} [DecidableEq ι]
Goal: Polynomial.derivative (Lagrange.nodal s v) = ∑ i ∈ s, Lagrange.nodal (s.erase i) v
-- Lagrange.eval_nodal_derivative_eval_node_eq
theorem eval_nodal_derivative_eval_node_eq [DecidableEq ι] {i : ι} (hi : i ∈ s) :
    eval (v i) (derivative (nodal s v)) = eval (v i) (nodal (s.erase i) v) 
Arguments: {R : Type u_1} [CommRing R] {ι : Type u_2} {s : Finset ι} {v : ι → R} [DecidableEq ι] {i : ι} (hi : i ∈ s)
Goal: Polynomial.eval (v i) (Polynomial.derivative (Lagrange.nodal s v)) =
  Polynomial.eval (v i) (Lagrange.nodal (s.erase i) v)
-- Lagrange.nodal_subgroup_eq_X_pow_card_sub_one
@[simp] theorem nodal_subgroup_eq_X_pow_card_sub_one [IsDomain R]
  (G : Subgroup Rˣ) [Fintype G] :
  nodal (G : Set Rˣ).toFinset ((↑) : Rˣ → R) = X ^ (Fintype.card G) - 1 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] (G : Subgroup Rˣ) [Fintype ↥G]
Goal: Lagrange.nodal (↑G).toFinset Units.val = Polynomial.X ^ Fintype.card ↥G - 1
-- Lagrange.nodalWeight_eq_eval_nodal_erase_inv
theorem nodalWeight_eq_eval_nodal_erase_inv :
    nodalWeight s v i = (eval (v i) (nodal (s.erase i) v))⁻¹ 
Arguments: {F : Type u_1} [Field F] {ι : Type u_2} [DecidableEq ι] {s : Finset ι} {v : ι → F} {i : ι}
Goal: Lagrange.nodalWeight s v i = (Polynomial.eval (v i) (Lagrange.nodal (s.erase i) v))⁻¹
-- Lagrange.nodal_erase_eq_nodal_div
theorem nodal_erase_eq_nodal_div (hi : i ∈ s) :
    nodal (s.erase i) v = nodal s v / (X - C (v i)) 
Arguments: {F : Type u_1} [Field F] {ι : Type u_2} [DecidableEq ι] {s : Finset ι} {v : ι → F} {i : ι} (hi : i ∈ s)
Goal: Lagrange.nodal (s.erase i) v = Lagrange.nodal s v / (Polynomial.X - Polynomial.C (v i))
-- Lagrange.nodalWeight_eq_eval_nodal_derative
theorem nodalWeight_eq_eval_nodal_derative (hi : i ∈ s) :
    nodalWeight s v i = (eval (v i) (Polynomial.derivative (nodal s v)))⁻¹ 
Arguments: {F : Type u_1} [Field F] {ι : Type u_2} [DecidableEq ι] {s : Finset ι} {v : ι → F} {i : ι} (hi : i ∈ s)
Goal: Lagrange.nodalWeight s v i = (Polynomial.eval (v i) (Polynomial.derivative (Lagrange.nodal s v)))⁻¹
-- Lagrange.nodalWeight_ne_zero
theorem nodalWeight_ne_zero (hvs : Set.InjOn v s) (hi : i ∈ s) : nodalWeight s v i ≠ 0 
Arguments: {F : Type u_1} [Field F] {ι : Type u_2} [DecidableEq ι] {s : Finset ι} {v : ι → F} {i : ι} (hvs : Set.InjOn v ↑s) (hi : i ∈ s)
Goal: Lagrange.nodalWeight s v i ≠ 0
-- Lagrange.basis_eq_prod_sub_inv_mul_nodal_div
theorem basis_eq_prod_sub_inv_mul_nodal_div (hi : i ∈ s) :
    Lagrange.basis s v i = C (nodalWeight s v i) * (nodal s v / (X - C (v i))) 
Arguments: {F : Type u_1} [Field F] {ι : Type u_2} [DecidableEq ι] {s : Finset ι} {v : ι → F} {i : ι} (hi : i ∈ s)
Goal: Lagrange.basis s v i =
  Polynomial.C (Lagrange.nodalWeight s v i) * (Lagrange.nodal s v / (Polynomial.X - Polynomial.C (v i)))
-- Lagrange.eval_basis_not_at_node
theorem eval_basis_not_at_node (hi : i ∈ s) (hxi : x ≠ v i) :
    eval x (Lagrange.basis s v i) = eval x (nodal s v) * (nodalWeight s v i * (x - v i)⁻¹) 
Arguments: {F : Type u_1} [Field F] {ι : Type u_2} [DecidableEq ι] {s : Finset ι} {v : ι → F} {i : ι} {x : F} (hi : i ∈ s) (hxi : x ≠ v i)
Goal: Polynomial.eval x (Lagrange.basis s v i) =
  Polynomial.eval x (Lagrange.nodal s v) * (Lagrange.nodalWeight s v i * (x - v i)⁻¹)
-- Lagrange.interpolate_eq_nodalWeight_mul_nodal_div_X_sub_C
theorem interpolate_eq_nodalWeight_mul_nodal_div_X_sub_C :
    interpolate s v r = ∑ i ∈ s, C (nodalWeight s v i) * (nodal s v / (X - C (v i))) * C (r i) 
Arguments: {F : Type u_1} [Field F] {ι : Type u_2} [DecidableEq ι] {s : Finset ι} {v : ι → F} (r : ι → F)
Goal: (Lagrange.interpolate s v) r =
  ∑ i ∈ s,
    Polynomial.C (Lagrange.nodalWeight s v i) * (Lagrange.nodal s v / (Polynomial.X - Polynomial.C (v i))) *
      Polynomial.C (r i)
-- Lagrange.eval_interpolate_not_at_node
theorem eval_interpolate_not_at_node (hx : ∀ i ∈ s, x ≠ v i) :
    eval x (interpolate s v r) =
      eval x (nodal s v) * ∑ i ∈ s, nodalWeight s v i * (x - v i)⁻¹ * r i 
Arguments: {F : Type u_1} [Field F] {ι : Type u_2} [DecidableEq ι] {s : Finset ι} {v : ι → F} (r : ι → F) {x : F} (hx : ∀ i ∈ s, x ≠ v i)
Goal: Polynomial.eval x ((Lagrange.interpolate s v) r) =
  Polynomial.eval x (Lagrange.nodal s v) * ∑ i ∈ s, Lagrange.nodalWeight s v i * (x - v i)⁻¹ * r i
-- Lagrange.sum_nodalWeight_mul_inv_sub_ne_zero
theorem sum_nodalWeight_mul_inv_sub_ne_zero (hvs : Set.InjOn v s) (hx : ∀ i ∈ s, x ≠ v i)
    (hs : s.Nonempty) : (∑ i ∈ s, nodalWeight s v i * (x - v i)⁻¹) ≠ 0 
Arguments: {F : Type u_1} [Field F] {ι : Type u_2} [DecidableEq ι] {s : Finset ι} {v : ι → F} {x : F} (hvs : Set.InjOn v ↑s) (hx : ∀ i ∈ s, x ≠ v i) (hs : s.Nonempty)
Goal: ∑ i ∈ s, Lagrange.nodalWeight s v i * (x - v i)⁻¹ ≠ 0
-- Lagrange.eval_interpolate_not_at_node'
theorem eval_interpolate_not_at_node' (hvs : Set.InjOn v s) (hs : s.Nonempty)
    (hx : ∀ i ∈ s, x ≠ v i) :
    eval x (interpolate s v r) =
      (∑ i ∈ s, nodalWeight s v i * (x - v i)⁻¹ * r i) /
        ∑ i ∈ s, nodalWeight s v i * (x - v i)⁻¹ 
Arguments: {F : Type u_1} [Field F] {ι : Type u_2} [DecidableEq ι] {s : Finset ι} {v : ι → F} (r : ι → F) {x : F} (hvs : Set.InjOn v ↑s) (hs : s.Nonempty) (hx : ∀ i ∈ s, x ≠ v i)
Goal: Polynomial.eval x ((Lagrange.interpolate s v) r) =
  (∑ i ∈ s, Lagrange.nodalWeight s v i * (x - v i)⁻¹ * r i) / ∑ i ∈ s, Lagrange.nodalWeight s v i * (x - v i)⁻¹
-- QuadraticForm.tensorDistrib_tmul
@[simp]
theorem tensorDistrib_tmul (Q₁ : QuadraticForm A M₁) (Q₂ : QuadraticForm R M₂) (m₁ : M₁) (m₂ : M₂) :
    tensorDistrib R A (Q₁ ⊗ₜ Q₂) (m₁ ⊗ₜ m₂) = Q₂ m₂ • Q₁ m₁ 
Arguments: {R : Type uR} {A : Type uA} {M₁ : Type uM₁} {M₂ : Type uM₂} [CommRing R] [CommRing A] [AddCommGroup M₁] [AddCommGroup M₂] [Algebra R A] [Module R M₁] [Module A M₁] [SMulCommClass R A M₁] [IsScalarTower R A M₁] [Module R M₂] [Invertible 2] (Q₁ : QuadraticForm A M₁) (Q₂ : QuadraticForm R M₂) (m₁ : M₁) (m₂ : M₂)
Goal: ((QuadraticForm.tensorDistrib R A) (Q₁ ⊗ₜ[R] Q₂)) (m₁ ⊗ₜ[R] m₂) = Q₂ m₂ • Q₁ m₁
-- QuadraticForm.associated_tmul
theorem associated_tmul [Invertible (2 : A)] (Q₁ : QuadraticForm A M₁) (Q₂ : QuadraticForm R M₂) :
    associated (R := A) (Q₁.tmul Q₂)
      = (associated (R := A) Q₁).tmul (associated (R := R) Q₂) 
Arguments: {R : Type uR} {A : Type uA} {M₁ : Type uM₁} {M₂ : Type uM₂} [CommRing R] [CommRing A] [AddCommGroup M₁] [AddCommGroup M₂] [Algebra R A] [Module R M₁] [Module A M₁] [SMulCommClass R A M₁] [IsScalarTower R A M₁] [Module R M₂] [Invertible 2] [Invertible 2] (Q₁ : QuadraticForm A M₁) (Q₂ : QuadraticForm R M₂)
Goal: QuadraticMap.associated (Q₁.tmul Q₂) = (QuadraticMap.associated Q₁).tmul (QuadraticMap.associated Q₂)
-- QuadraticForm.polarBilin_tmul
theorem polarBilin_tmul [Invertible (2 : A)] (Q₁ : QuadraticForm A M₁) (Q₂ : QuadraticForm R M₂) :
    polarBilin (Q₁.tmul Q₂) = ⅟(2 : A) • (polarBilin Q₁).tmul (polarBilin Q₂) 
Arguments: {R : Type uR} {A : Type uA} {M₁ : Type uM₁} {M₂ : Type uM₂} [CommRing R] [CommRing A] [AddCommGroup M₁] [AddCommGroup M₂] [Algebra R A] [Module R M₁] [Module A M₁] [SMulCommClass R A M₁] [IsScalarTower R A M₁] [Module R M₂] [Invertible 2] [Invertible 2] (Q₁ : QuadraticForm A M₁) (Q₂ : QuadraticForm R M₂)
Goal: QuadraticMap.polarBilin (Q₁.tmul Q₂) = ⅟2 • (QuadraticMap.polarBilin Q₁).tmul (QuadraticMap.polarBilin Q₂)
-- QuadraticForm.baseChange_tmul
@[simp]
theorem baseChange_tmul (Q : QuadraticForm R M₂) (a : A) (m₂ : M₂) :
    Q.baseChange A (a ⊗ₜ m₂) = Q m₂ • (a * a) 
Arguments: {R : Type uR} {A : Type uA} {M₂ : Type uM₂} [CommRing R] [CommRing A] [AddCommGroup M₂] [Algebra R A] [Module R M₂] [Invertible 2] (Q : QuadraticForm R M₂) (a : A) (m₂ : M₂)
Goal: (QuadraticForm.baseChange A Q) (a ⊗ₜ[R] m₂) = Q m₂ • (a * a)
-- QuadraticForm.associated_baseChange
theorem associated_baseChange [Invertible (2 : A)] (Q : QuadraticForm R M₂) :
    associated (R := A) (Q.baseChange A) = (associated (R := R) Q).baseChange A 
Arguments: {R : Type uR} {A : Type uA} {M₂ : Type uM₂} [CommRing R] [CommRing A] [AddCommGroup M₂] [Algebra R A] [Module R M₂] [Invertible 2] [Invertible 2] (Q : QuadraticForm R M₂)
Goal: QuadraticMap.associated (QuadraticForm.baseChange A Q) = LinearMap.BilinMap.baseChange A (QuadraticMap.associated Q)
-- QuadraticForm.polarBilin_baseChange
theorem polarBilin_baseChange [Invertible (2 : A)] (Q : QuadraticForm R M₂) :
    polarBilin (Q.baseChange A) = (polarBilin Q).baseChange A 
Arguments: {R : Type uR} {A : Type uA} {M₂ : Type uM₂} [CommRing R] [CommRing A] [AddCommGroup M₂] [Algebra R A] [Module R M₂] [Invertible 2] [Invertible 2] (Q : QuadraticForm R M₂)
Goal: QuadraticMap.polarBilin (QuadraticForm.baseChange A Q) = LinearMap.BilinMap.baseChange A (QuadraticMap.polarBilin Q)
-- QuadraticForm.baseChange_ext
@[ext]
theorem baseChange_ext ⦃Q₁ Q₂ : QuadraticForm A (A ⊗[R] M₂)⦄
    (h : ∀ m, Q₁ (1 ⊗ₜ m) = Q₂ (1 ⊗ₜ m)) :
    Q₁ = Q₂ 
Arguments: {R : Type uR} {A : Type uA} {M₂ : Type uM₂} [CommRing R] [CommRing A] [AddCommGroup M₂] [Algebra R A] [Module R M₂] ⦃Q₁ Q₂ : QuadraticForm A (A ⊗[R] M₂)⦄ (h : ∀ (m : M₂), Q₁ (1 ⊗ₜ[R] m) = Q₂ (1 ⊗ₜ[R] m))
Goal: Q₁ = Q₂
-- AffineSubspace.pointwise_vadd_eq_map
theorem pointwise_vadd_eq_map (v : V) (s : AffineSubspace k P) :
    v +ᵥ s = s.map (AffineEquiv.constVAdd k P v) 
Arguments: {k : Type u_1} [Ring k] {V : Type u_2} {P : Type u_3} [AddCommGroup V] [Module k V] [AffineSpace V P] (v : V) (s : AffineSubspace k P)
Goal: v +ᵥ s = AffineSubspace.map (↑(AffineEquiv.constVAdd k P v)) s
-- AffineSubspace.coe_pointwise_vadd
@[simp]
theorem coe_pointwise_vadd (v : V) (s : AffineSubspace k P) :
    ((v +ᵥ s : AffineSubspace k P) : Set P) = v +ᵥ (s : Set P) 
Arguments: {k : Type u_1} [Ring k] {V : Type u_2} {P : Type u_3} [AddCommGroup V] [Module k V] [AffineSpace V P] (v : V) (s : AffineSubspace k P)
Goal: ↑(v +ᵥ s) = v +ᵥ ↑s
-- AffineSubspace.vadd_mem_pointwise_vadd_iff
theorem vadd_mem_pointwise_vadd_iff {v : V} {s : AffineSubspace k P} {p : P} :
    v +ᵥ p ∈ v +ᵥ s ↔ p ∈ s 
Arguments: {k : Type u_1} [Ring k] {V : Type u_2} {P : Type u_3} [AddCommGroup V] [Module k V] [AffineSpace V P] {v : V} {s : AffineSubspace k P} {p : P}
Goal: v +ᵥ p ∈ v +ᵥ s ↔ p ∈ s
-- AffineSubspace.pointwise_vadd_bot
@[simp] theorem pointwise_vadd_bot (v : V) : v +ᵥ (⊥ : AffineSubspace k P) = ⊥ 
Arguments: {k : Type u_1} [Ring k] {V : Type u_2} {P : Type u_3} [AddCommGroup V] [Module k V] [AffineSpace V P] (v : V)
Goal: v +ᵥ ⊥ = ⊥
-- AffineSubspace.pointwise_vadd_top
@[simp] lemma pointwise_vadd_top (v : V) : v +ᵥ (⊤ : AffineSubspace k P) = ⊤ 
Arguments: {k : Type u_1} [Ring k] {V : Type u_2} {P : Type u_3} [AddCommGroup V] [Module k V] [AffineSpace V P] (v : V)
Goal: v +ᵥ ⊤ = ⊤
-- AffineSubspace.pointwise_vadd_direction
theorem pointwise_vadd_direction (v : V) (s : AffineSubspace k P) :
    (v +ᵥ s).direction = s.direction 
Arguments: {k : Type u_1} [Ring k] {V : Type u_2} {P : Type u_3} [AddCommGroup V] [Module k V] [AffineSpace V P] (v : V) (s : AffineSubspace k P)
Goal: (v +ᵥ s).direction = s.direction
-- AffineSubspace.pointwise_vadd_span
theorem pointwise_vadd_span (v : V) (s : Set P) : v +ᵥ affineSpan k s = affineSpan k (v +ᵥ s) 
Arguments: {k : Type u_1} [Ring k] {V : Type u_2} {P : Type u_3} [AddCommGroup V] [Module k V] [AffineSpace V P] (v : V) (s : Set P)
Goal: v +ᵥ affineSpan k s = affineSpan k (v +ᵥ s)
-- AffineSubspace.map_pointwise_vadd
theorem map_pointwise_vadd (f : P₁ →ᵃ[k] P₂) (v : V₁) (s : AffineSubspace k P₁) :
    (v +ᵥ s).map f = f.linear v +ᵥ s.map f 
Arguments: {k : Type u_1} [Ring k] {V₁ : Type u_4} {P₁ : Type u_5} {V₂ : Type u_6} {P₂ : Type u_7} [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (f : P₁ →ᵃ[k] P₂) (v : V₁) (s : AffineSubspace k P₁)
Goal: AffineSubspace.map f (v +ᵥ s) = f.linear v +ᵥ AffineSubspace.map f s
-- AffineBasis.toMatrix_apply
@[simp]
theorem toMatrix_apply {ι' : Type*} (q : ι' → P) (i : ι') (j : ι) :
    b.toMatrix q i j = b.coord j (q i) 
Arguments: {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄} [AddCommGroup V] [AffineSpace V P] [Ring k] [Module k V] (b : AffineBasis ι k P) {ι' : Type u_1} (q : ι' → P) (i : ι') (j : ι)
Goal: b.toMatrix q i j = (b.coord j) (q i)
-- AffineBasis.toMatrix_self
@[simp]
theorem toMatrix_self [DecidableEq ι] : b.toMatrix b = (1 : Matrix ι ι k) 
Arguments: {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄} [AddCommGroup V] [AffineSpace V P] [Ring k] [Module k V] (b : AffineBasis ι k P) [DecidableEq ι]
Goal: b.toMatrix ⇑b = 1
-- AffineBasis.toMatrix_row_sum_one
theorem toMatrix_row_sum_one [Fintype ι] (q : ι' → P) (i : ι') : ∑ j, b.toMatrix q i j = 1 
Arguments: {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄} [AddCommGroup V] [AffineSpace V P] [Ring k] [Module k V] (b : AffineBasis ι k P) {ι' : Type u_1} [Fintype ι] (q : ι' → P) (i : ι')
Goal: ∑ j : ι, b.toMatrix q i j = 1
-- AffineBasis.affineIndependent_of_toMatrix_right_inv
theorem affineIndependent_of_toMatrix_right_inv [Fintype ι] [Finite ι'] [DecidableEq ι']
    (p : ι' → P) {A : Matrix ι ι' k} (hA : b.toMatrix p * A = 1) : AffineIndependent k p 
Arguments: {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄} [AddCommGroup V] [AffineSpace V P] [Ring k] [Module k V] (b : AffineBasis ι k P) {ι' : Type u_1} [Fintype ι] [Finite ι'] [DecidableEq ι'] (p : ι' → P) {A : Matrix ι ι' k} (hA : b.toMatrix p * A = 1)
Goal: AffineIndependent k p
-- AffineBasis.affineSpan_eq_top_of_toMatrix_left_inv
theorem affineSpan_eq_top_of_toMatrix_left_inv [Finite ι] [Fintype ι'] [DecidableEq ι]
    [Nontrivial k] (p : ι' → P) {A : Matrix ι ι' k} (hA : A * b.toMatrix p = 1) :
    affineSpan k (range p) = ⊤ 
Arguments: {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄} [AddCommGroup V] [AffineSpace V P] [Ring k] [Module k V] (b : AffineBasis ι k P) {ι' : Type u_1} [Finite ι] [Fintype ι'] [DecidableEq ι] [Nontrivial k] (p : ι' → P) {A : Matrix ι ι' k} (hA : A * b.toMatrix p = 1)
Goal: affineSpan k (Set.range p) = ⊤
-- AffineBasis.toMatrix_vecMul_coords
@[simp]
theorem toMatrix_vecMul_coords (x : P) : b₂.coords x ᵥ* b.toMatrix b₂ = b.coords x 
Arguments: {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄} [AddCommGroup V] [AffineSpace V P] [Ring k] [Module k V] (b : AffineBasis ι k P) [Fintype ι] (b₂ : AffineBasis ι k P) (x : P)
Goal: b₂.coords x ᵥ* b.toMatrix ⇑b₂ = b.coords x
-- AffineBasis.toMatrix_mul_toMatrix
theorem toMatrix_mul_toMatrix : b.toMatrix b₂ * b₂.toMatrix b = 1 
Arguments: {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄} [AddCommGroup V] [AffineSpace V P] [Ring k] [Module k V] (b : AffineBasis ι k P) [Fintype ι] (b₂ : AffineBasis ι k P) [DecidableEq ι]
Goal: b.toMatrix ⇑b₂ * b₂.toMatrix ⇑b = 1
-- AffineBasis.isUnit_toMatrix
theorem isUnit_toMatrix : IsUnit (b.toMatrix b₂) 
Arguments: {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄} [AddCommGroup V] [AffineSpace V P] [Ring k] [Module k V] (b : AffineBasis ι k P) [Fintype ι] (b₂ : AffineBasis ι k P) [DecidableEq ι]
Goal: IsUnit (b.toMatrix ⇑b₂)
-- AffineBasis.isUnit_toMatrix_iff
theorem isUnit_toMatrix_iff [Nontrivial k] (p : ι → P) :
    IsUnit (b.toMatrix p) ↔ AffineIndependent k p ∧ affineSpan k (range p) = ⊤ 
Arguments: {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄} [AddCommGroup V] [AffineSpace V P] [Ring k] [Module k V] (b : AffineBasis ι k P) [Fintype ι] [DecidableEq ι] [Nontrivial k] (p : ι → P)
Goal: IsUnit (b.toMatrix p) ↔ AffineIndependent k p ∧ affineSpan k (Set.range p) = ⊤
-- AffineBasis.toMatrix_inv_vecMul_toMatrix
@[simp]
theorem toMatrix_inv_vecMul_toMatrix (x : P) :
    b.coords x ᵥ* (b.toMatrix b₂)⁻¹ = b₂.coords x 
Arguments: {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄} [AddCommGroup V] [AffineSpace V P] [CommRing k] [Module k V] [DecidableEq ι] [Fintype ι] (b b₂ : AffineBasis ι k P) (x : P)
Goal: b.coords x ᵥ* (b.toMatrix ⇑b₂)⁻¹ = b₂.coords x
-- AffineBasis.det_smul_coords_eq_cramer_coords
theorem det_smul_coords_eq_cramer_coords (x : P) :
    (b.toMatrix b₂).det • b₂.coords x = (b.toMatrix b₂)ᵀ.cramer (b.coords x) 
Arguments: {ι : Type u₁} {k : Type u₂} {V : Type u₃} {P : Type u₄} [AddCommGroup V] [AffineSpace V P] [CommRing k] [Module k V] [DecidableEq ι] [Fintype ι] (b b₂ : AffineBasis ι k P) (x : P)
Goal: (b.toMatrix ⇑b₂).det • b₂.coords x = (b.toMatrix ⇑b₂)ᵀ.cramer (b.coords x)
-- contractLeft_apply
@[simp]
theorem contractLeft_apply (f : Module.Dual R M) (m : M) : contractLeft R M (f ⊗ₜ m) = f m 
Arguments: {R : Type u} {M : Type v₁} [CommSemiring R] [AddCommMonoid M] [Module R M] (f : Module.Dual R M) (m : M)
Goal: (contractLeft R M) (f ⊗ₜ[R] m) = f m
-- contractRight_apply
@[simp]
theorem contractRight_apply (f : Module.Dual R M) (m : M) : contractRight R M (m ⊗ₜ f) = f m 
Arguments: {R : Type u} {M : Type v₁} [CommSemiring R] [AddCommMonoid M] [Module R M] (f : Module.Dual R M) (m : M)
Goal: (contractRight R M) (m ⊗ₜ[R] f) = f m
-- dualTensorHom_apply
@[simp]
theorem dualTensorHom_apply (f : Module.Dual R M) (m : M) (n : N) :
    dualTensorHom R M N (f ⊗ₜ n) m = f m • n 
Arguments: {R : Type u} {M : Type v₁} {N : Type v₂} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (f : Module.Dual R M) (m : M) (n : N)
Goal: ((dualTensorHom R M N) (f ⊗ₜ[R] n)) m = f m • n
-- transpose_dualTensorHom
@[simp]
theorem transpose_dualTensorHom (f : Module.Dual R M) (m : M) :
    Dual.transpose (R := R) (dualTensorHom R M M (f ⊗ₜ m)) =
    dualTensorHom R _ _ (Dual.eval R M m ⊗ₜ f) 
Arguments: {R : Type u} {M : Type v₁} [CommSemiring R] [AddCommMonoid M] [Module R M] (f : Module.Dual R M) (m : M)
Goal: Module.Dual.transpose ((dualTensorHom R M M) (f ⊗ₜ[R] m)) =
  (dualTensorHom R (Module.Dual R M) (Module.Dual R M)) ((Module.Dual.eval R M) m ⊗ₜ[R] f)
-- dualTensorHom_prodMap_zero
@[simp]
theorem dualTensorHom_prodMap_zero (f : Module.Dual R M) (p : P) :
    ((dualTensorHom R M P) (f ⊗ₜ[R] p)).prodMap (0 : N →ₗ[R] Q) =
      dualTensorHom R (M × N) (P × Q) ((f ∘ₗ fst R M N) ⊗ₜ inl R P Q p) 
Arguments: {R : Type u} {M : Type v₁} {N : Type v₂} {P : Type v₃} {Q : Type v₄} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [AddCommMonoid Q] [Module R M] [Module R N] [Module R P] [Module R Q] (f : Module.Dual R M) (p : P)
Goal: ((dualTensorHom R M P) (f ⊗ₜ[R] p)).prodMap 0 =
  (dualTensorHom R (M × N) (P × Q)) ((f ∘ₗ LinearMap.fst R M N) ⊗ₜ[R] (LinearMap.inl R P Q) p)
-- zero_prodMap_dualTensorHom
@[simp]
theorem zero_prodMap_dualTensorHom (g : Module.Dual R N) (q : Q) :
    (0 : M →ₗ[R] P).prodMap ((dualTensorHom R N Q) (g ⊗ₜ[R] q)) =
      dualTensorHom R (M × N) (P × Q) ((g ∘ₗ snd R M N) ⊗ₜ inr R P Q q) 
Arguments: {R : Type u} {M : Type v₁} {N : Type v₂} {P : Type v₃} {Q : Type v₄} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [AddCommMonoid Q] [Module R M] [Module R N] [Module R P] [Module R Q] (g : Module.Dual R N) (q : Q)
Goal: LinearMap.prodMap 0 ((dualTensorHom R N Q) (g ⊗ₜ[R] q)) =
  (dualTensorHom R (M × N) (P × Q)) ((g ∘ₗ LinearMap.snd R M N) ⊗ₜ[R] (LinearMap.inr R P Q) q)
-- map_dualTensorHom
theorem map_dualTensorHom (f : Module.Dual R M) (p : P) (g : Module.Dual R N) (q : Q) :
    TensorProduct.map (dualTensorHom R M P (f ⊗ₜ[R] p)) (dualTensorHom R N Q (g ⊗ₜ[R] q)) =
      dualTensorHom R (M ⊗[R] N) (P ⊗[R] Q) (dualDistrib R M N (f ⊗ₜ g) ⊗ₜ[R] p ⊗ₜ[R] q) 
Arguments: {R : Type u} {M : Type v₁} {N : Type v₂} {P : Type v₃} {Q : Type v₄} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [AddCommMonoid Q] [Module R M] [Module R N] [Module R P] [Module R Q] (f : Module.Dual R M) (p : P) (g : Module.Dual R N) (q : Q)
Goal: TensorProduct.map ((dualTensorHom R M P) (f ⊗ₜ[R] p)) ((dualTensorHom R N Q) (g ⊗ₜ[R] q)) =
  (dualTensorHom R (TensorProduct R M N) (TensorProduct R P Q))
    ((TensorProduct.dualDistrib R M N) (f ⊗ₜ[R] g) ⊗ₜ[R] p ⊗ₜ[R] q)
-- comp_dualTensorHom
@[simp]
theorem comp_dualTensorHom (f : Module.Dual R M) (n : N) (g : Module.Dual R N) (p : P) :
    dualTensorHom R N P (g ⊗ₜ[R] p) ∘ₗ dualTensorHom R M N (f ⊗ₜ[R] n) =
      g n • dualTensorHom R M P (f ⊗ₜ p) 
Arguments: {R : Type u} {M : Type v₁} {N : Type v₂} {P : Type v₃} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : Module.Dual R M) (n : N) (g : Module.Dual R N) (p : P)
Goal: (dualTensorHom R N P) (g ⊗ₜ[R] p) ∘ₗ (dualTensorHom R M N) (f ⊗ₜ[R] n) = g n • (dualTensorHom R M P) (f ⊗ₜ[R] p)
-- toMatrix_dualTensorHom
theorem toMatrix_dualTensorHom {m : Type*} {n : Type*} [Fintype m] [Finite n] [DecidableEq m]
    [DecidableEq n] (bM : Basis m R M) (bN : Basis n R N) (j : m) (i : n) :
    toMatrix bM bN (dualTensorHom R M N (bM.coord j ⊗ₜ bN i)) = stdBasisMatrix i j 1 
Arguments: {R : Type u} {M : Type v₁} {N : Type v₂} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] {m : Type u_1} {n : Type u_2} [Fintype m] [Finite n] [DecidableEq m] [DecidableEq n] (bM : Basis m R M) (bN : Basis n R N) (j : m) (i : n)
Goal: (LinearMap.toMatrix bM bN) ((dualTensorHom R M N) (bM.coord j ⊗ₜ[R] bN i)) = Matrix.stdBasisMatrix i j 1
-- dualTensorHomEquivOfBasis_apply
@[simp]
theorem dualTensorHomEquivOfBasis_apply (x : Module.Dual R M ⊗[R] N) :
    (dualTensorHomEquivOfBasis (N := N) b :
    Module.Dual R M ⊗[R] N → (M →ₗ[R] N)) x = (dualTensorHom R M N) x 
Arguments: {ι : Type w} {R : Type u} {M : Type v₁} {N : Type v₂} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] [DecidableEq ι] [Fintype ι] (b : Basis ι R M) (x : TensorProduct R (Module.Dual R M) N)
Goal: (dualTensorHomEquivOfBasis b) x = (dualTensorHom R M N) x
-- dualTensorHomEquivOfBasis_toLinearMap
@[simp]
theorem dualTensorHomEquivOfBasis_toLinearMap :
    (dualTensorHomEquivOfBasis b : Module.Dual R M ⊗[R] N ≃ₗ[R] M →ₗ[R] N).toLinearMap =
      dualTensorHom R M N 
Arguments: {ι : Type w} {R : Type u} {M : Type v₁} {N : Type v₂} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] [DecidableEq ι] [Fintype ι] (b : Basis ι R M)
Goal: ↑(dualTensorHomEquivOfBasis b) = dualTensorHom R M N
-- dualTensorHomEquivOfBasis_symm_cancel_left
@[simp]
theorem dualTensorHomEquivOfBasis_symm_cancel_left (x : Module.Dual R M ⊗[R] N) :
    (dualTensorHomEquivOfBasis (N := N) b).symm (dualTensorHom R M N x) = x 
Arguments: {ι : Type w} {R : Type u} {M : Type v₁} {N : Type v₂} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] [DecidableEq ι] [Fintype ι] (b : Basis ι R M) (x : TensorProduct R (Module.Dual R M) N)
Goal: (dualTensorHomEquivOfBasis b).symm ((dualTensorHom R M N) x) = x