ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- MultilinearMap.neg_apply
@[simp]
theorem neg_apply (m : ∀ i, M₁ i) : (-f) m = -f m 
Arguments: {R : Type uR} {ι : Type uι} {M₁ : ι → Type v₁} {M₂ : Type v₂} [Semiring R] [(i : ι) → AddCommMonoid (M₁ i)] [AddCommGroup M₂] [(i : ι) → Module R (M₁ i)] [Module R M₂] (f : MultilinearMap R M₁ M₂) (m : (i : ι) → M₁ i)
Goal: (-f) m = -f m
-- MultilinearMap.sub_apply
@[simp]
theorem sub_apply (m : ∀ i, M₁ i) : (f - g) m = f m - g m 
Arguments: {R : Type uR} {ι : Type uι} {M₁ : ι → Type v₁} {M₂ : Type v₂} [Semiring R] [(i : ι) → AddCommMonoid (M₁ i)] [AddCommGroup M₂] [(i : ι) → Module R (M₁ i)] [Module R M₂] (f g : MultilinearMap R M₁ M₂) (m : (i : ι) → M₁ i)
Goal: (f - g) m = f m - g m
-- MultilinearMap.map_neg
@[simp]
theorem map_neg [DecidableEq ι] (m : ∀ i, M₁ i) (i : ι) (x : M₁ i) :
    f (update m i (-x)) = -f (update m i x) 
Arguments: {R : Type uR} {ι : Type uι} {M₁ : ι → Type v₁} {M₂ : Type v₂} [Semiring R] [(i : ι) → AddCommGroup (M₁ i)] [AddCommGroup M₂] [(i : ι) → Module R (M₁ i)] [Module R M₂] (f : MultilinearMap R M₁ M₂) [DecidableEq ι] (m : (i : ι) → M₁ i) (i : ι) (x : M₁ i)
Goal: f (Function.update m i (-x)) = -f (Function.update m i x)
-- MultilinearMap.map_sub
@[simp]
theorem map_sub [DecidableEq ι] (m : ∀ i, M₁ i) (i : ι) (x y : M₁ i) :
    f (update m i (x - y)) = f (update m i x) - f (update m i y) 
Arguments: {R : Type uR} {ι : Type uι} {M₁ : ι → Type v₁} {M₂ : Type v₂} [Semiring R] [(i : ι) → AddCommGroup (M₁ i)] [AddCommGroup M₂] [(i : ι) → Module R (M₁ i)] [Module R M₂] (f : MultilinearMap R M₁ M₂) [DecidableEq ι] (m : (i : ι) → M₁ i) (i : ι) (x y : M₁ i)
Goal: f (Function.update m i (x - y)) = f (Function.update m i x) - f (Function.update m i y)
-- MultilinearMap.map_update
lemma map_update [DecidableEq ι] (x : (i : ι) → M₁ i) (i : ι) (v : M₁ i)  :
    f (update x i v) = f x - f (update x i (x i - v)) 
Arguments: {R : Type uR} {ι : Type uι} {M₁ : ι → Type v₁} {M₂ : Type v₂} [Semiring R] [(i : ι) → AddCommGroup (M₁ i)] [AddCommGroup M₂] [(i : ι) → Module R (M₁ i)] [Module R M₂] (f : MultilinearMap R M₁ M₂) [DecidableEq ι] (x : (i : ι) → M₁ i) (i : ι) (v : M₁ i)
Goal: f (Function.update x i v) = f x - f (Function.update x i (x i - v))
-- MultilinearMap.map_sub_map_piecewise
lemma map_sub_map_piecewise [LinearOrder ι] (a b : (i : ι) → M₁ i) (s : Finset ι) :
    f a - f (s.piecewise b a) =
    ∑ i ∈ s, f (fun j ↦ if j ∈ s → j < i then a j else if i = j then a j - b j else b j) 
Arguments: {R : Type uR} {ι : Type uι} {M₁ : ι → Type v₁} {M₂ : Type v₂} [Semiring R] [(i : ι) → AddCommGroup (M₁ i)] [AddCommGroup M₂] [(i : ι) → Module R (M₁ i)] [Module R M₂] (f : MultilinearMap R M₁ M₂) [LinearOrder ι] (a b : (i : ι) → M₁ i) (s : Finset ι)
Goal: f a - f (s.piecewise b a) = ∑ i ∈ s, f fun j => if j ∈ s → j < i then a j else if i = j then a j - b j else b j
-- MultilinearMap.map_piecewise_sub_map_piecewise
lemma map_piecewise_sub_map_piecewise [LinearOrder ι] (a b v : (i : ι) → M₁ i) (s : Finset ι) :
    f (s.piecewise a v) - f (s.piecewise b v) = ∑ i ∈ s, f
      fun j ↦ if j ∈ s then if j < i then a j else if j = i then a j - b j else b j else v j 
Arguments: {R : Type uR} {ι : Type uι} {M₁ : ι → Type v₁} {M₂ : Type v₂} [Semiring R] [(i : ι) → AddCommGroup (M₁ i)] [AddCommGroup M₂] [(i : ι) → Module R (M₁ i)] [Module R M₂] (f : MultilinearMap R M₁ M₂) [LinearOrder ι] (a b v : (i : ι) → M₁ i) (s : Finset ι)
Goal: f (s.piecewise a v) - f (s.piecewise b v) =
  ∑ i ∈ s, f fun j => if j ∈ s then if j < i then a j else if j = i then a j - b j else b j else v j
-- MultilinearMap.map_add_eq_map_add_linearDeriv_add
lemma map_add_eq_map_add_linearDeriv_add [DecidableEq ι] [Fintype ι] (x h : (i : ι) → M₁ i) :
    f (x + h) = f x + f.linearDeriv x h +
      ∑ s ∈ univ.powerset.filter (2 ≤ ·.card), f (s.piecewise h x) 
Arguments: {R : Type uR} {ι : Type uι} {M₁ : ι → Type v₁} {M₂ : Type v₂} [Semiring R] [(i : ι) → AddCommGroup (M₁ i)] [AddCommGroup M₂] [(i : ι) → Module R (M₁ i)] [Module R M₂] (f : MultilinearMap R M₁ M₂) [DecidableEq ι] [Fintype ι] (x h : (i : ι) → M₁ i)
Goal: f (x + h) =
  f x + (f.linearDeriv x) h + ∑ s ∈ Finset.filter (fun x => 2 ≤ x.card) Finset.univ.powerset, f (s.piecewise h x)
-- MultilinearMap.map_add_sub_map_add_sub_linearDeriv
lemma map_add_sub_map_add_sub_linearDeriv [DecidableEq ι] [Fintype ι] (x h h' : (i : ι) → M₁ i) :
    f (x + h) - f (x + h') - f.linearDeriv x (h - h') =
    ∑ s ∈ univ.powerset.filter (2 ≤ ·.card), (f (s.piecewise h x) - f (s.piecewise h' x)) 
Arguments: {R : Type uR} {ι : Type uι} {M₁ : ι → Type v₁} {M₂ : Type v₂} [Semiring R] [(i : ι) → AddCommGroup (M₁ i)] [AddCommGroup M₂] [(i : ι) → Module R (M₁ i)] [Module R M₂] (f : MultilinearMap R M₁ M₂) [DecidableEq ι] [Fintype ι] (x h h' : (i : ι) → M₁ i)
Goal: f (x + h) - f (x + h') - (f.linearDeriv x) (h - h') =
  ∑ s ∈ Finset.filter (fun x => 2 ≤ x.card) Finset.univ.powerset, (f (s.piecewise h x) - f (s.piecewise h' x))
-- LinearMap.uncurryLeft_apply
@[simp]
theorem LinearMap.uncurryLeft_apply (f : M 0 →ₗ[R] MultilinearMap R (fun i : Fin n => M i.succ) M₂)
    (m : ∀ i, M i) : f.uncurryLeft m = f (m 0) (tail m) 
Arguments: {R : Type uR} {n : ℕ} {M : Fin n.succ → Type v} {M₂ : Type v₂} [CommSemiring R] [(i : Fin n.succ) → AddCommMonoid (M i)] [AddCommMonoid M₂] [(i : Fin n.succ) → Module R (M i)] [Module R M₂] (f : M 0 →ₗ[R] MultilinearMap R (fun i => M i.succ) M₂) (m : (i : Fin n.succ) → M i)
Goal: f.uncurryLeft m = (f (m 0)) (Fin.tail m)
-- MultilinearMap.curryLeft_apply
@[simp]
theorem MultilinearMap.curryLeft_apply (f : MultilinearMap R M M₂) (x : M 0)
    (m : ∀ i : Fin n, M i.succ) : f.curryLeft x m = f (cons x m) 
Arguments: {R : Type uR} {n : ℕ} {M : Fin n.succ → Type v} {M₂ : Type v₂} [CommSemiring R] [(i : Fin n.succ) → AddCommMonoid (M i)] [AddCommMonoid M₂] [(i : Fin n.succ) → Module R (M i)] [Module R M₂] (f : MultilinearMap R M M₂) (x : M 0) (m : (i : Fin n) → M i.succ)
Goal: (f.curryLeft x) m = f (Fin.cons x m)
-- LinearMap.curry_uncurryLeft
@[simp]
theorem LinearMap.curry_uncurryLeft (f : M 0 →ₗ[R] MultilinearMap R (fun i :
    Fin n => M i.succ) M₂) : f.uncurryLeft.curryLeft = f 
Arguments: {R : Type uR} {n : ℕ} {M : Fin n.succ → Type v} {M₂ : Type v₂} [CommSemiring R] [(i : Fin n.succ) → AddCommMonoid (M i)] [AddCommMonoid M₂] [(i : Fin n.succ) → Module R (M i)] [Module R M₂] (f : M 0 →ₗ[R] MultilinearMap R (fun i => M i.succ) M₂)
Goal: f.uncurryLeft.curryLeft = f
-- MultilinearMap.uncurry_curryLeft
@[simp]
theorem MultilinearMap.uncurry_curryLeft (f : MultilinearMap R M M₂) :
    f.curryLeft.uncurryLeft = f 
Arguments: {R : Type uR} {n : ℕ} {M : Fin n.succ → Type v} {M₂ : Type v₂} [CommSemiring R] [(i : Fin n.succ) → AddCommMonoid (M i)] [AddCommMonoid M₂] [(i : Fin n.succ) → Module R (M i)] [Module R M₂] (f : MultilinearMap R M M₂)
Goal: f.curryLeft.uncurryLeft = f
-- MultilinearMap.uncurryRight_apply
@[simp]
theorem MultilinearMap.uncurryRight_apply
    (f : MultilinearMap R (fun i : Fin n => M (castSucc i)) (M (last n) →ₗ[R] M₂))
    (m : ∀ i, M i) : f.uncurryRight m = f (init m) (m (last n)) 
Arguments: {R : Type uR} {n : ℕ} {M : Fin n.succ → Type v} {M₂ : Type v₂} [CommSemiring R] [(i : Fin n.succ) → AddCommMonoid (M i)] [AddCommMonoid M₂] [(i : Fin n.succ) → Module R (M i)] [Module R M₂] (f : MultilinearMap R (fun i => M i.castSucc) (M (Fin.last n) →ₗ[R] M₂)) (m : (i : Fin n.succ) → M i)
Goal: f.uncurryRight m = (f (Fin.init m)) (m (Fin.last n))
-- MultilinearMap.curryRight_apply
@[simp]
theorem MultilinearMap.curryRight_apply (f : MultilinearMap R M M₂)
    (m : ∀ i : Fin n, M (castSucc i)) (x : M (last n)) : f.curryRight m x = f (snoc m x) 
Arguments: {R : Type uR} {n : ℕ} {M : Fin n.succ → Type v} {M₂ : Type v₂} [CommSemiring R] [(i : Fin n.succ) → AddCommMonoid (M i)] [AddCommMonoid M₂] [(i : Fin n.succ) → Module R (M i)] [Module R M₂] (f : MultilinearMap R M M₂) (m : (i : Fin n) → M i.castSucc) (x : M (Fin.last n))
Goal: (f.curryRight m) x = f (Fin.snoc m x)
-- MultilinearMap.curry_uncurryRight
@[simp]
theorem MultilinearMap.curry_uncurryRight
    (f : MultilinearMap R (fun i : Fin n => M (castSucc i)) (M (last n) →ₗ[R] M₂)) :
    f.uncurryRight.curryRight = f 
Arguments: {R : Type uR} {n : ℕ} {M : Fin n.succ → Type v} {M₂ : Type v₂} [CommSemiring R] [(i : Fin n.succ) → AddCommMonoid (M i)] [AddCommMonoid M₂] [(i : Fin n.succ) → Module R (M i)] [Module R M₂] (f : MultilinearMap R (fun i => M i.castSucc) (M (Fin.last n) →ₗ[R] M₂))
Goal: f.uncurryRight.curryRight = f
-- MultilinearMap.uncurry_curryRight
@[simp]
theorem MultilinearMap.uncurry_curryRight (f : MultilinearMap R M M₂) :
    f.curryRight.uncurryRight = f 
Arguments: {R : Type uR} {n : ℕ} {M : Fin n.succ → Type v} {M₂ : Type v₂} [CommSemiring R] [(i : Fin n.succ) → AddCommMonoid (M i)] [AddCommMonoid M₂] [(i : Fin n.succ) → Module R (M i)] [Module R M₂] (f : MultilinearMap R M M₂)
Goal: f.curryRight.uncurryRight = f
-- MultilinearMap.currySum_apply
@[simp]
theorem currySum_apply (f : MultilinearMap R (fun _ : ι ⊕ ι' => M') M₂) (u : ι → M')
    (v : ι' → M') : f.currySum u v = f (Sum.elim u v) 
Arguments: {R : Type uR} {ι : Type uι} {M₂ : Type v₂} {M' : Type v'} [CommSemiring R] [AddCommMonoid M'] [AddCommMonoid M₂] [Module R M'] [Module R M₂] {ι' : Type u_1} (f : MultilinearMap R (fun x => M') M₂) (u : ι → M') (v : ι' → M')
Goal: (f.currySum u) v = f (Sum.elim u v)
-- MultilinearMap.uncurrySum_aux_apply
@[simp]
theorem uncurrySum_aux_apply
    (f : MultilinearMap R (fun _ : ι => M') (MultilinearMap R (fun _ : ι' => M') M₂))
    (u : ι ⊕ ι' → M') : f.uncurrySum u = f (u ∘ Sum.inl) (u ∘ Sum.inr) 
Arguments: {R : Type uR} {ι : Type uι} {M₂ : Type v₂} {M' : Type v'} [CommSemiring R] [AddCommMonoid M'] [AddCommMonoid M₂] [Module R M'] [Module R M₂] {ι' : Type u_1} (f : MultilinearMap R (fun x => M') (MultilinearMap R (fun x => M') M₂)) (u : ι ⊕ ι' → M')
Goal: f.uncurrySum u = (f (u ∘ Sum.inl)) (u ∘ Sum.inr)
-- MultilinearMap.coe_currySumEquiv
@[simp]
theorem coe_currySumEquiv : ⇑(currySumEquiv R ι M₂ M' ι') = currySum 
Arguments: {R : Type uR} {ι : Type uι} {M₂ : Type v₂} {M' : Type v'} [CommSemiring R] [AddCommMonoid M'] [AddCommMonoid M₂] [Module R M'] [Module R M₂] {ι' : Type u_1}
Goal: ⇑(MultilinearMap.currySumEquiv R ι M₂ M' ι') = MultilinearMap.currySum
-- MultilinearMap.coe_currySumEquiv_symm
@[simp]
theorem coe_currySumEquiv_symm : ⇑(currySumEquiv R ι M₂ M' ι').symm = uncurrySum 
Arguments: {R : Type uR} {ι : Type uι} {M₂ : Type v₂} {M' : Type v'} [CommSemiring R] [AddCommMonoid M'] [AddCommMonoid M₂] [Module R M'] [Module R M₂] {ι' : Type u_1}
Goal: ⇑(MultilinearMap.currySumEquiv R ι M₂ M' ι').symm = MultilinearMap.uncurrySum
-- MultilinearMap.curryFinFinset_apply
@[simp]
theorem curryFinFinset_apply {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k) (hl : sᶜ.card = l)
    (f : MultilinearMap R (fun _ : Fin n => M') M₂) (mk : Fin k → M') (ml : Fin l → M') :
    curryFinFinset R M₂ M' hk hl f mk ml =
      f fun i => Sum.elim mk ml ((finSumEquivOfFinset hk hl).symm i) 
Arguments: {R : Type uR} {M₂ : Type v₂} {M' : Type v'} [CommSemiring R] [AddCommMonoid M'] [AddCommMonoid M₂] [Module R M'] [Module R M₂] {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k) (hl : sᶜ.card = l) (f : MultilinearMap R (fun x => M') M₂) (mk : Fin k → M') (ml : Fin l → M')
Goal: (((MultilinearMap.curryFinFinset R M₂ M' hk hl) f) mk) ml =
  f fun i => Sum.elim mk ml ((finSumEquivOfFinset hk hl).symm i)
-- MultilinearMap.curryFinFinset_symm_apply
@[simp]
theorem curryFinFinset_symm_apply {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k)
    (hl : sᶜ.card = l)
    (f : MultilinearMap R (fun _ : Fin k => M') (MultilinearMap R (fun _ : Fin l => M') M₂))
    (m : Fin n → M') :
    (curryFinFinset R M₂ M' hk hl).symm f m =
      f (fun i => m <| finSumEquivOfFinset hk hl (Sum.inl i)) fun i =>
        m <| finSumEquivOfFinset hk hl (Sum.inr i) 
Arguments: {R : Type uR} {M₂ : Type v₂} {M' : Type v'} [CommSemiring R] [AddCommMonoid M'] [AddCommMonoid M₂] [Module R M'] [Module R M₂] {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k) (hl : sᶜ.card = l) (f : MultilinearMap R (fun x => M') (MultilinearMap R (fun x => M') M₂)) (m : Fin n → M')
Goal: ((MultilinearMap.curryFinFinset R M₂ M' hk hl).symm f) m =
  (f fun i => m ((finSumEquivOfFinset hk hl) (Sum.inl i))) fun i => m ((finSumEquivOfFinset hk hl) (Sum.inr i))
-- MultilinearMap.curryFinFinset_symm_apply_piecewise_const
theorem curryFinFinset_symm_apply_piecewise_const {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k)
    (hl : sᶜ.card = l)
    (f : MultilinearMap R (fun _ : Fin k => M') (MultilinearMap R (fun _ : Fin l => M') M₂))
    (x y : M') :
    (curryFinFinset R M₂ M' hk hl).symm f (s.piecewise (fun _ => x) fun _ => y) =
      f (fun _ => x) fun _ => y 
Arguments: {R : Type uR} {M₂ : Type v₂} {M' : Type v'} [CommSemiring R] [AddCommMonoid M'] [AddCommMonoid M₂] [Module R M'] [Module R M₂] {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k) (hl : sᶜ.card = l) (f : MultilinearMap R (fun x => M') (MultilinearMap R (fun x => M') M₂)) (x y : M')
Goal: ((MultilinearMap.curryFinFinset R M₂ M' hk hl).symm f) (s.piecewise (fun x_1 => x) fun x => y) =
  (f fun x_1 => x) fun x => y
-- MultilinearMap.curryFinFinset_symm_apply_piecewise_const_aux
@[simp]
theorem curryFinFinset_symm_apply_piecewise_const_aux {k l n : ℕ} {s : Finset (Fin n)}
    (hk : s.card = k) (hl : sᶜ.card = l)
    (f : MultilinearMap R (fun _ : Fin k => M') (MultilinearMap R (fun _ : Fin l => M') M₂))
    (x y : M') :
      ((⇑f fun _ => x) (fun i => (Finset.piecewise s (fun _ => x) (fun _ => y)
          ((sᶜ.orderEmbOfFin hl) i))) = f (fun _ => x) fun _ => y) 
Arguments: {R : Type uR} {M₂ : Type v₂} {M' : Type v'} [CommSemiring R] [AddCommMonoid M'] [AddCommMonoid M₂] [Module R M'] [Module R M₂] {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k) (hl : sᶜ.card = l) (f : MultilinearMap R (fun x => M') (MultilinearMap R (fun x => M') M₂)) (x y : M')
Goal: ((f fun x_1 => x) fun i => s.piecewise (fun x_1 => x) (fun x => y) ((sᶜ.orderEmbOfFin hl) i)) =
  (f fun x_1 => x) fun x => y
-- MultilinearMap.curryFinFinset_symm_apply_const
@[simp]
theorem curryFinFinset_symm_apply_const {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k)
    (hl : sᶜ.card = l)
    (f : MultilinearMap R (fun _ : Fin k => M') (MultilinearMap R (fun _ : Fin l => M') M₂))
    (x : M') : ((curryFinFinset R M₂ M' hk hl).symm f fun _ => x) = f (fun _ => x) fun _ => x 
Arguments: {R : Type uR} {M₂ : Type v₂} {M' : Type v'} [CommSemiring R] [AddCommMonoid M'] [AddCommMonoid M₂] [Module R M'] [Module R M₂] {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k) (hl : sᶜ.card = l) (f : MultilinearMap R (fun x => M') (MultilinearMap R (fun x => M') M₂)) (x : M')
Goal: (((MultilinearMap.curryFinFinset R M₂ M' hk hl).symm f) fun x_1 => x) = (f fun x_1 => x) fun x_1 => x
-- MultilinearMap.curryFinFinset_apply_const
theorem curryFinFinset_apply_const {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k)
    (hl : sᶜ.card = l) (f : MultilinearMap R (fun _ : Fin n => M') M₂) (x y : M') :
    (curryFinFinset R M₂ M' hk hl f (fun _ => x) fun _ => y) =
      f (s.piecewise (fun _ => x) fun _ => y) 
Arguments: {R : Type uR} {M₂ : Type v₂} {M' : Type v'} [CommSemiring R] [AddCommMonoid M'] [AddCommMonoid M₂] [Module R M'] [Module R M₂] {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k) (hl : sᶜ.card = l) (f : MultilinearMap R (fun x => M') M₂) (x y : M')
Goal: ((((MultilinearMap.curryFinFinset R M₂ M' hk hl) f) fun x_1 => x) fun x => y) =
  f (s.piecewise (fun x_1 => x) fun x => y)
-- MultilinearMap.curryFinFinset_apply_const_aux
@[simp]
theorem curryFinFinset_apply_const_aux {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k)
    (hl : sᶜ.card = l) (f : MultilinearMap R (fun _ : Fin n => M') M₂) (x y : M') :
    (f fun i => Sum.elim (fun _ => x) (fun _ => y) ((⇑ (Equiv.symm (finSumEquivOfFinset hk hl))) i))
      = f (s.piecewise (fun _ => x) fun _ => y) 
Arguments: {R : Type uR} {M₂ : Type v₂} {M' : Type v'} [CommSemiring R] [AddCommMonoid M'] [AddCommMonoid M₂] [Module R M'] [Module R M₂] {k l n : ℕ} {s : Finset (Fin n)} (hk : s.card = k) (hl : sᶜ.card = l) (f : MultilinearMap R (fun x => M') M₂) (x y : M')
Goal: (f fun i => Sum.elim (fun x_1 => x) (fun x => y) ((finSumEquivOfFinset hk hl).symm i)) =
  f (s.piecewise (fun x_1 => x) fun x => y)
-- MultilinearMap.map_nonempty
theorem map_nonempty [Nonempty ι] (f : MultilinearMap R M₁ M₂) (p : ∀ i, Submodule R (M₁ i)) :
    (map f p : Set M₂).Nonempty 
Arguments: {R : Type uR} {ι : Type uι} {M₁ : ι → Type v₁} {M₂ : Type v₂} [Ring R] [(i : ι) → AddCommMonoid (M₁ i)] [AddCommMonoid M₂] [(i : ι) → Module R (M₁ i)] [Module R M₂] [Nonempty ι] (f : MultilinearMap R M₁ M₂) (p : (i : ι) → Submodule R (M₁ i))
Goal: (↑(f.map p)).Nonempty
-- TensorPower.toTensorAlgebra_tprod
@[simp]
theorem toTensorAlgebra_tprod {n} (x : Fin n → M) :
    TensorPower.toTensorAlgebra (PiTensorProduct.tprod R x) = TensorAlgebra.tprod R M n x 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] {n : ℕ} (x : Fin n → M)
Goal: TensorPower.toTensorAlgebra ((PiTensorProduct.tprod R) x) = (TensorAlgebra.tprod R M n) x
-- TensorPower.toTensorAlgebra_gOne
@[simp]
theorem toTensorAlgebra_gOne :
    TensorPower.toTensorAlgebra (@GradedMonoid.GOne.one _ (fun n => ⨂[R]^n M) _ _) = 1 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M]
Goal: TensorPower.toTensorAlgebra GradedMonoid.GOne.one = 1
-- TensorPower.toTensorAlgebra_gMul
@[simp]
theorem toTensorAlgebra_gMul {i j} (a : (⨂[R]^i) M) (b : (⨂[R]^j) M) :
    TensorPower.toTensorAlgebra (@GradedMonoid.GMul.mul _ (fun n => ⨂[R]^n M) _ _ _ _ a b) =
      TensorPower.toTensorAlgebra a * TensorPower.toTensorAlgebra b 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] {i j : ℕ} (a : ⨂[R]^i M) (b : ⨂[R]^j M)
Goal: TensorPower.toTensorAlgebra (GradedMonoid.GMul.mul a b) = TensorPower.toTensorAlgebra a * TensorPower.toTensorAlgebra b
-- TensorPower.toTensorAlgebra_galgebra_toFun
@[simp]
theorem toTensorAlgebra_galgebra_toFun (r : R) :
    TensorPower.toTensorAlgebra (DirectSum.GAlgebra.toFun (R := R) (A := fun n => ⨂[R]^n M) r) =
      algebraMap _ _ r 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (r : R)
Goal: TensorPower.toTensorAlgebra (DirectSum.GAlgebra.toFun r) = (algebraMap R (TensorAlgebra R M)) r
-- TensorAlgebra.ofDirectSum_of_tprod
@[simp]
theorem ofDirectSum_of_tprod {n} (x : Fin n → M) :
    ofDirectSum (DirectSum.of _ n (PiTensorProduct.tprod R x)) = tprod R M n x 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] {n : ℕ} (x : Fin n → M)
Goal: TensorAlgebra.ofDirectSum ((DirectSum.of (fun n => ⨂[R]^n M) n) ((PiTensorProduct.tprod R) x)) =
  (TensorAlgebra.tprod R M n) x
-- TensorAlgebra.toDirectSum_ι
@[simp]
theorem toDirectSum_ι (x : M) :
    toDirectSum (ι R x) =
      DirectSum.of (fun n => ⨂[R]^n M) _ (PiTensorProduct.tprod R fun _ : Fin 1 => x) 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (x : M)
Goal: TensorAlgebra.toDirectSum ((TensorAlgebra.ι R) x) =
  (DirectSum.of (fun n => ⨂[R]^n M) 1) ((PiTensorProduct.tprod R) fun x_1 => x)
-- TensorAlgebra.ofDirectSum_comp_toDirectSum
theorem ofDirectSum_comp_toDirectSum :
    ofDirectSum.comp toDirectSum = AlgHom.id R (TensorAlgebra R M) 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M]
Goal: TensorAlgebra.ofDirectSum.comp TensorAlgebra.toDirectSum = AlgHom.id R (TensorAlgebra R M)
-- TensorAlgebra.ofDirectSum_toDirectSum
@[simp]
theorem ofDirectSum_toDirectSum (x : TensorAlgebra R M) :
    ofDirectSum (TensorAlgebra.toDirectSum x) = x 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (x : TensorAlgebra R M)
Goal: TensorAlgebra.ofDirectSum (TensorAlgebra.toDirectSum x) = x
-- TensorAlgebra.mk_reindex_cast
@[simp, nolint simpNF] -- see std4#365 for the simpNF issue
theorem mk_reindex_cast {n m : ℕ} (h : n = m) (x : ⨂[R]^n M) :
    GradedMonoid.mk (A := fun i => (⨂[R]^i) M) m
    (PiTensorProduct.reindex R (fun _ ↦ M) (Equiv.cast <| congr_arg Fin h) x) =
    GradedMonoid.mk n x 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] {n m : ℕ} (h : n = m) (x : ⨂[R]^n M)
Goal: GradedMonoid.mk m ((PiTensorProduct.reindex R (fun x => M) (Equiv.cast ⋯)) x) = GradedMonoid.mk n x
-- TensorAlgebra.mk_reindex_fin_cast
@[simp]
theorem mk_reindex_fin_cast {n m : ℕ} (h : n = m) (x : ⨂[R]^n M) :
    GradedMonoid.mk (A := fun i => (⨂[R]^i) M) m
    (PiTensorProduct.reindex R (fun _ ↦ M) (finCongr h) x) = GradedMonoid.mk n x 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] {n m : ℕ} (h : n = m) (x : ⨂[R]^n M)
Goal: GradedMonoid.mk m ((PiTensorProduct.reindex R (fun x => M) (finCongr h)) x) = GradedMonoid.mk n x
-- TensorPower.list_prod_gradedMonoid_mk_single
theorem _root_.TensorPower.list_prod_gradedMonoid_mk_single (n : ℕ) (x : Fin n → M) :
    ((List.finRange n).map fun a =>
          (GradedMonoid.mk _ (PiTensorProduct.tprod R fun _ : Fin 1 => x a) :
            GradedMonoid fun n => ⨂[R]^n M)).prod =
      GradedMonoid.mk n (PiTensorProduct.tprod R x) 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (n : ℕ) (x : Fin n → M)
Goal: (List.map (fun a => GradedMonoid.mk 1 ((PiTensorProduct.tprod R) fun x_1 => x a)) (List.finRange n)).prod =
  GradedMonoid.mk n ((PiTensorProduct.tprod R) x)
-- TensorAlgebra.toDirectSum_tensorPower_tprod
theorem toDirectSum_tensorPower_tprod {n} (x : Fin n → M) :
    toDirectSum (tprod R M n x) = DirectSum.of _ n (PiTensorProduct.tprod R x) 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] {n : ℕ} (x : Fin n → M)
Goal: TensorAlgebra.toDirectSum ((TensorAlgebra.tprod R M n) x) =
  (DirectSum.of (fun i => ⨂[R]^i M) n) ((PiTensorProduct.tprod R) x)
-- TensorAlgebra.toDirectSum_comp_ofDirectSum
theorem toDirectSum_comp_ofDirectSum :
    toDirectSum.comp ofDirectSum = AlgHom.id R (⨁ n, ⨂[R]^n M) 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M]
Goal: TensorAlgebra.toDirectSum.comp TensorAlgebra.ofDirectSum = AlgHom.id R (⨁ (n : ℕ), ⨂[R]^n M)
-- TensorAlgebra.toDirectSum_ofDirectSum
@[simp]
theorem toDirectSum_ofDirectSum (x : ⨁ n, ⨂[R]^n M) :
    TensorAlgebra.toDirectSum (ofDirectSum x) = x 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (x : ⨁ (n : ℕ), ⨂[R]^n M)
Goal: TensorAlgebra.toDirectSum (TensorAlgebra.ofDirectSum x) = x
-- TensorAlgebra.equivDirectSum_apply
@[simps!]
def equivDirectSum : TensorAlgebra R M ≃ₐ[R] ⨁ n, ⨂[R]^n M 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (a : TensorAlgebra R M)
Goal: TensorAlgebra.equivDirectSum a = TensorAlgebra.toDirectSum a
-- TensorAlgebra.equivDirectSum_symm_apply
@[simps!]
def equivDirectSum : TensorAlgebra R M ≃ₐ[R] ⨁ n, ⨂[R]^n M 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (a : ⨁ (n : ℕ), ⨂[R]^n M)
Goal: TensorAlgebra.equivDirectSum.symm a = TensorAlgebra.ofDirectSum a
-- Basis.finite_ofVectorSpaceIndex_of_rank_lt_aleph0
theorem Basis.finite_ofVectorSpaceIndex_of_rank_lt_aleph0 (h : Module.rank K V < ℵ₀) :
    (Basis.ofVectorSpaceIndex K V).Finite 
Arguments: {K : Type u} {V : Type v} [DivisionRing K] [AddCommGroup V] [Module K V] (h : Module.rank K V < ℵ₀)
Goal: (Basis.ofVectorSpaceIndex K V).Finite
-- rank_quotient_add_rank_of_divisionRing
theorem rank_quotient_add_rank_of_divisionRing (p : Submodule K V) :
    Module.rank K (V ⧸ p) + Module.rank K p = Module.rank K V 
Arguments: {K : Type u} {V : Type v} [DivisionRing K] [AddCommGroup V] [Module K V] (p : Submodule K V)
Goal: Module.rank K (V ⧸ p) + Module.rank K ↥p = Module.rank K V