ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- PiTensorProduct.lifts_smul
lemma lifts_smul {x : ⨂[R] i, s i} {p : FreeAddMonoid (R × Π i, s i)} (h : p ∈ lifts x) (a : R) :
    List.map (fun (y : R × Π i, s i) ↦ (a * y.1, y.2)) p ∈ lifts (a • x) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {x : PiTensorProduct R fun i => s i} {p : FreeAddMonoid (R × ((i : ι) → s i))} (h : p ∈ x.lifts) (a : R)
Goal: List.map (fun y => (a * y.1, y.2)) p ∈ (a • x).lifts
-- PiTensorProduct.induction_on
@[elab_as_elim]
protected theorem induction_on {motive : (⨂[R] i, s i) → Prop} (z : ⨂[R] i, s i)
    (smul_tprod : ∀ (r : R) (f : Π i, s i), motive (r • tprod R f))
    (add : ∀ x y, motive x → motive y → motive (x + y)) :
    motive z 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {motive : (PiTensorProduct R fun i => s i) → Prop} (z : PiTensorProduct R fun i => s i) (smul_tprod : ∀ (r : R) (f : (i : ι) → s i), motive (r • (PiTensorProduct.tprod R) f)) (add : ∀ (x y : PiTensorProduct R fun i => s i), motive x → motive y → motive (x + y))
Goal: motive z
-- PiTensorProduct.ext
@[ext]
theorem ext {φ₁ φ₂ : (⨂[R] i, s i) →ₗ[R] E}
    (H : φ₁.compMultilinearMap (tprod R) = φ₂.compMultilinearMap (tprod R)) : φ₁ = φ₂ 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] {φ₁ φ₂ : (PiTensorProduct R fun i => s i) →ₗ[R] E} (H : φ₁.compMultilinearMap (PiTensorProduct.tprod R) = φ₂.compMultilinearMap (PiTensorProduct.tprod R))
Goal: φ₁ = φ₂
-- PiTensorProduct.span_tprod_eq_top
theorem span_tprod_eq_top :
    Submodule.span R (Set.range (tprod R)) = (⊤ : Submodule R (⨂[R] i, s i)) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)]
Goal: Submodule.span R (Set.range ⇑(PiTensorProduct.tprod R)) = ⊤
-- PiTensorProduct.liftAux_tprod
theorem liftAux_tprod (φ : MultilinearMap R s E) (f : Π i, s i) : liftAux φ (tprod R f) = φ f 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] (φ : MultilinearMap R s E) (f : (i : ι) → s i)
Goal: (PiTensorProduct.liftAux φ) ((PiTensorProduct.tprod R) f) = φ f
-- PiTensorProduct.liftAux_tprodCoeff
theorem liftAux_tprodCoeff (φ : MultilinearMap R s E) (z : R) (f : Π i, s i) :
    liftAux φ (tprodCoeff R z f) = z • φ f 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] (φ : MultilinearMap R s E) (z : R) (f : (i : ι) → s i)
Goal: (PiTensorProduct.liftAux φ) (PiTensorProduct.tprodCoeff R z f) = z • φ f
-- PiTensorProduct.liftAux.smul
theorem liftAux.smul {φ : MultilinearMap R s E} (r : R) (x : ⨂[R] i, s i) :
    liftAux φ (r • x) = r • liftAux φ x 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] {φ : MultilinearMap R s E} (r : R) (x : PiTensorProduct R fun i => s i)
Goal: (PiTensorProduct.liftAux φ) (r • x) = r • (PiTensorProduct.liftAux φ) x
-- PiTensorProduct.lift.tprod
@[simp]
theorem lift.tprod (f : Π i, s i) : lift φ (tprod R f) = φ f 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] {φ : MultilinearMap R s E} (f : (i : ι) → s i)
Goal: (PiTensorProduct.lift φ) ((PiTensorProduct.tprod R) f) = φ f
-- PiTensorProduct.lift.unique'
theorem lift.unique' {φ' : (⨂[R] i, s i) →ₗ[R] E}
    (H : φ'.compMultilinearMap (PiTensorProduct.tprod R) = φ) : φ' = lift φ 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] {φ : MultilinearMap R s E} {φ' : (PiTensorProduct R fun i => s i) →ₗ[R] E} (H : φ'.compMultilinearMap (PiTensorProduct.tprod R) = φ)
Goal: φ' = PiTensorProduct.lift φ
-- PiTensorProduct.lift.unique
theorem lift.unique {φ' : (⨂[R] i, s i) →ₗ[R] E} (H : ∀ f, φ' (PiTensorProduct.tprod R f) = φ f) :
    φ' = lift φ 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] {φ : MultilinearMap R s E} {φ' : (PiTensorProduct R fun i => s i) →ₗ[R] E} (H : ∀ (f : (i : ι) → s i), φ' ((PiTensorProduct.tprod R) f) = φ f)
Goal: φ' = PiTensorProduct.lift φ
-- PiTensorProduct.lift_symm
@[simp]
theorem lift_symm (φ' : (⨂[R] i, s i) →ₗ[R] E) : lift.symm φ' = φ'.compMultilinearMap (tprod R) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] (φ' : (PiTensorProduct R fun i => s i) →ₗ[R] E)
Goal: PiTensorProduct.lift.symm φ' = φ'.compMultilinearMap (PiTensorProduct.tprod R)
-- PiTensorProduct.lift_tprod
@[simp]
theorem lift_tprod : lift (tprod R : MultilinearMap R s _) = LinearMap.id 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)]
Goal: PiTensorProduct.lift (PiTensorProduct.tprod R) = LinearMap.id
-- PiTensorProduct.map_tprod
@[simp] lemma map_tprod (x : Π i, s i) :
    map f (tprod R x) = tprod R fun i ↦ f i (x i) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i) (x : (i : ι) → s i)
Goal: (PiTensorProduct.map f) ((PiTensorProduct.tprod R) x) = ⨂ₜ[R] (i : ι), (f i) (x i)
-- PiTensorProduct.map_range_eq_span_tprod
theorem map_range_eq_span_tprod :
    LinearMap.range (map f) =
      Submodule.span R {t | ∃ (m : Π i, s i), tprod R (fun i ↦ f i (m i)) = t} 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i)
Goal: LinearMap.range (PiTensorProduct.map f) = Submodule.span R {t_1 | ∃ m, (⨂ₜ[R] (i : ι), (f i) (m i)) = t_1}
-- PiTensorProduct.map_comp
theorem map_comp : map (fun (i : ι) ↦ g i ∘ₗ f i) = map g ∘ₗ map f 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} {t' : ι → Type u_12} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] [(i : ι) → AddCommMonoid (t' i)] [(i : ι) → Module R (t' i)] (g : (i : ι) → t i →ₗ[R] t' i) (f : (i : ι) → s i →ₗ[R] t i)
Goal: (PiTensorProduct.map fun i => g i ∘ₗ f i) = PiTensorProduct.map g ∘ₗ PiTensorProduct.map f
-- PiTensorProduct.lift_comp_map
theorem lift_comp_map (h : MultilinearMap R t E) :
    lift h ∘ₗ map f = lift (h.compLinearMap f) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i) (h : MultilinearMap R t E)
Goal: PiTensorProduct.lift h ∘ₗ PiTensorProduct.map f = PiTensorProduct.lift (h.compLinearMap f)
-- PiTensorProduct.map_id
@[simp]
theorem map_id : map (fun i ↦ (LinearMap.id : s i →ₗ[R] s i)) = .id 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)]
Goal: (PiTensorProduct.map fun i => LinearMap.id) = LinearMap.id
-- PiTensorProduct.map_one
@[simp]
theorem map_one : map (fun (i : ι) ↦ (1 : s i →ₗ[R] s i)) = 1 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)]
Goal: (PiTensorProduct.map fun i => 1) = 1
-- PiTensorProduct.map_mul
theorem map_mul (f₁ f₂ : Π i, s i →ₗ[R] s i) :
    map (fun i ↦ f₁ i * f₂ i) = map f₁ * map f₂ 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] (f₁ f₂ : (i : ι) → s i →ₗ[R] s i)
Goal: (PiTensorProduct.map fun i => f₁ i * f₂ i) = PiTensorProduct.map f₁ * PiTensorProduct.map f₂
-- PiTensorProduct.mapMonoidHom_apply
@[simps]
def mapMonoidHom : (Π i, s i →ₗ[R] s i) →* ((⨂[R] i, s i) →ₗ[R] ⨂[R] i, s i) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] (f : (i : ι) → s i →ₗ[R] s i)
Goal: PiTensorProduct.mapMonoidHom f = PiTensorProduct.map f
-- PiTensorProduct.map_pow
@[simp]
protected theorem map_pow (f : Π i, s i →ₗ[R] s i) (n : ℕ) :
    map (f ^ n) = map f ^ n 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] (f : (i : ι) → s i →ₗ[R] s i) (n : ℕ)
Goal: PiTensorProduct.map (f ^ n) = PiTensorProduct.map f ^ n
-- _private.Mathlib.LinearAlgebra.PiTensorProduct.0.PiTensorProduct.map_add_smul_aux
private theorem map_add_smul_aux [DecidableEq ι] (i : ι) (x : Π i, s i) (u : s i →ₗ[R] t i) :
    (fun j ↦ update f i u j (x j)) = update (fun j ↦ (f j) (x j)) i (u (x i)) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i) [DecidableEq ι] (i : ι) (x : (i : ι) → s i) (u : s i →ₗ[R] t i)
Goal: (fun j => (Function.update f i u j) (x j)) = Function.update (fun j => (f j) (x j)) i (u (x i))
-- PiTensorProduct.map_add
protected theorem map_add [DecidableEq ι] (i : ι) (u v : s i →ₗ[R] t i) :
    map (update f i (u + v)) = map (update f i u) + map (update f i v) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i) [DecidableEq ι] (i : ι) (u v : s i →ₗ[R] t i)
Goal: PiTensorProduct.map (Function.update f i (u + v)) =
  PiTensorProduct.map (Function.update f i u) + PiTensorProduct.map (Function.update f i v)
-- PiTensorProduct.map_smul
protected theorem map_smul [DecidableEq ι] (i : ι) (c : R) (u : s i →ₗ[R] t i) :
    map (update f i (c • u)) = c • map (update f i u) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i) [DecidableEq ι] (i : ι) (c : R) (u : s i →ₗ[R] t i)
Goal: PiTensorProduct.map (Function.update f i (c • u)) = c • PiTensorProduct.map (Function.update f i u)
-- PiTensorProduct.mapMultilinear_apply
@[simps]
noncomputable def mapMultilinear :
    MultilinearMap R (fun (i : ι) ↦ s i →ₗ[R] t i) ((⨂[R] i, s i) →ₗ[R] ⨂[R] i, t i) 
Arguments: {ι : Type u_1} (R : Type u_4) [CommSemiring R] (s : ι → Type u_7) [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] (t : ι → Type u_11) [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i)
Goal: (PiTensorProduct.mapMultilinear R s t) f = PiTensorProduct.map f
-- PiTensorProduct.piTensorHomMap_tprod_tprod
@[simp] lemma piTensorHomMap_tprod_tprod (f : Π i, s i →ₗ[R] t i) (x : Π i, s i) :
    piTensorHomMap (tprod R f) (tprod R x) = tprod R fun i ↦ f i (x i) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i) (x : (i : ι) → s i)
Goal: (PiTensorProduct.piTensorHomMap ((PiTensorProduct.tprod R) f)) ((PiTensorProduct.tprod R) x) =
  ⨂ₜ[R] (i : ι), (f i) (x i)
-- PiTensorProduct.piTensorHomMap_tprod_eq_map
lemma piTensorHomMap_tprod_eq_map (f : Π i, s i →ₗ[R] t i) :
    piTensorHomMap (tprod R f) = map f 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i)
Goal: PiTensorProduct.piTensorHomMap ((PiTensorProduct.tprod R) f) = PiTensorProduct.map f
-- PiTensorProduct.congr_tprod
@[simp]
theorem congr_tprod (f : Π i, s i ≃ₗ[R] t i) (m : Π i, s i) :
    congr f (tprod R m) = tprod R (fun (i : ι) ↦ (f i) (m i)) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i ≃ₗ[R] t i) (m : (i : ι) → s i)
Goal: (PiTensorProduct.congr f) ((PiTensorProduct.tprod R) m) = ⨂ₜ[R] (i : ι), (f i) (m i)
-- PiTensorProduct.congr_symm_tprod
@[simp]
theorem congr_symm_tprod (f : Π i, s i ≃ₗ[R] t i) (p : Π i, t i) :
    (congr f).symm (tprod R p) = tprod R (fun (i : ι) ↦ (f i).symm (p i)) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i ≃ₗ[R] t i) (p : (i : ι) → t i)
Goal: (PiTensorProduct.congr f).symm ((PiTensorProduct.tprod R) p) = ⨂ₜ[R] (i : ι), (f i).symm (p i)
-- PiTensorProduct.map₂_tprod_tprod
lemma map₂_tprod_tprod (f : Π i, s i →ₗ[R] t i →ₗ[R] t' i) (x : Π i, s i) (y : Π i, t i) :
    map₂ f (tprod R x) (tprod R y) = tprod R fun i ↦ f i (x i) (y i) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} {t' : ι → Type u_12} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] [(i : ι) → AddCommMonoid (t' i)] [(i : ι) → Module R (t' i)] (f : (i : ι) → s i →ₗ[R] t i →ₗ[R] t' i) (x : (i : ι) → s i) (y : (i : ι) → t i)
Goal: ((PiTensorProduct.map₂ f) ((PiTensorProduct.tprod R) x)) ((PiTensorProduct.tprod R) y) =
  ⨂ₜ[R] (i : ι), ((f i) (x i)) (y i)
-- PiTensorProduct.piTensorHomMapFun₂_add
theorem piTensorHomMapFun₂_add (φ ψ : ⨂[R] i, s i →ₗ[R] t i →ₗ[R] t' i) :
    piTensorHomMapFun₂ (φ + ψ) = piTensorHomMapFun₂ φ + piTensorHomMapFun₂ ψ 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} {t' : ι → Type u_12} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] [(i : ι) → AddCommMonoid (t' i)] [(i : ι) → Module R (t' i)] (φ ψ : PiTensorProduct R fun i => s i →ₗ[R] t i →ₗ[R] t' i)
Goal: (φ + ψ).piTensorHomMapFun₂ = φ.piTensorHomMapFun₂ + ψ.piTensorHomMapFun₂
-- PiTensorProduct.piTensorHomMapFun₂_smul
theorem piTensorHomMapFun₂_smul (r : R) (φ : ⨂[R] i, s i →ₗ[R] t i →ₗ[R] t' i) :
    piTensorHomMapFun₂ (r • φ) = r • piTensorHomMapFun₂ φ 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} {t' : ι → Type u_12} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] [(i : ι) → AddCommMonoid (t' i)] [(i : ι) → Module R (t' i)] (r : R) (φ : PiTensorProduct R fun i => s i →ₗ[R] t i →ₗ[R] t' i)
Goal: (r • φ).piTensorHomMapFun₂ = r • φ.piTensorHomMapFun₂
-- PiTensorProduct.piTensorHomMap₂_tprod_tprod_tprod
@[simp] lemma piTensorHomMap₂_tprod_tprod_tprod
    (f : ∀ i, s i →ₗ[R] t i →ₗ[R] t' i) (a : ∀ i, s i) (b : ∀ i, t i) :
    piTensorHomMap₂ (tprod R f) (tprod R a) (tprod R b) = tprod R (fun i ↦ f i (a i) (b i)) 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} {t' : ι → Type u_12} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] [(i : ι) → AddCommMonoid (t' i)] [(i : ι) → Module R (t' i)] (f : (i : ι) → s i →ₗ[R] t i →ₗ[R] t' i) (a : (i : ι) → s i) (b : (i : ι) → t i)
Goal: ((PiTensorProduct.piTensorHomMap₂ ((PiTensorProduct.tprod R) f)) ((PiTensorProduct.tprod R) a))
    ((PiTensorProduct.tprod R) b) =
  ⨂ₜ[R] (i : ι), ((f i) (a i)) (b i)
-- PiTensorProduct.reindex_tprod
@[simp]
theorem reindex_tprod (e : ι ≃ ι₂) (f : Π i, s i) :
    reindex R s e (tprod R f) = tprod R fun i ↦ f (e.symm i) 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] (e : ι ≃ ι₂) (f : (i : ι) → s i)
Goal: (PiTensorProduct.reindex R s e) ((PiTensorProduct.tprod R) f) = (PiTensorProduct.tprod R) fun i => f (e.symm i)
-- PiTensorProduct.reindex_comp_tprod
@[simp]
theorem reindex_comp_tprod (e : ι ≃ ι₂) :
    (reindex R s e).compMultilinearMap (tprod R) =
    (domDomCongrLinearEquiv' R R s _ e).symm (tprod R) 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] (e : ι ≃ ι₂)
Goal: (↑(PiTensorProduct.reindex R s e)).compMultilinearMap (PiTensorProduct.tprod R) =
  (MultilinearMap.domDomCongrLinearEquiv' R R s (PiTensorProduct R fun i => s (e.symm i)) e).symm
    (PiTensorProduct.tprod R)
-- PiTensorProduct.lift_comp_reindex
theorem lift_comp_reindex (e : ι ≃ ι₂) (φ : MultilinearMap R (fun i ↦ s (e.symm i)) E) :
    lift φ ∘ₗ (reindex R s e) = lift ((domDomCongrLinearEquiv' R R s _ e).symm φ) 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] (e : ι ≃ ι₂) (φ : MultilinearMap R (fun i => s (e.symm i)) E)
Goal: PiTensorProduct.lift φ ∘ₗ ↑(PiTensorProduct.reindex R s e) =
  PiTensorProduct.lift ((MultilinearMap.domDomCongrLinearEquiv' R R s E e).symm φ)
-- PiTensorProduct.lift_comp_reindex_symm
@[simp]
theorem lift_comp_reindex_symm (e : ι ≃ ι₂) (φ : MultilinearMap R s E) :
    lift φ ∘ₗ (reindex R s e).symm = lift (domDomCongrLinearEquiv' R R s _ e φ) 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] (e : ι ≃ ι₂) (φ : MultilinearMap R s E)
Goal: PiTensorProduct.lift φ ∘ₗ ↑(PiTensorProduct.reindex R s e).symm =
  PiTensorProduct.lift ((MultilinearMap.domDomCongrLinearEquiv' R R s E e) φ)
-- PiTensorProduct.lift_reindex
theorem lift_reindex
    (e : ι ≃ ι₂) (φ : MultilinearMap R (fun i ↦ s (e.symm i)) E) (x : ⨂[R] i, s i) :
    lift φ (reindex R s e x) = lift ((domDomCongrLinearEquiv' R R s _ e).symm φ) x 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] (e : ι ≃ ι₂) (φ : MultilinearMap R (fun i => s (e.symm i)) E) (x : PiTensorProduct R fun i => s i)
Goal: (PiTensorProduct.lift φ) ((PiTensorProduct.reindex R s e) x) =
  (PiTensorProduct.lift ((MultilinearMap.domDomCongrLinearEquiv' R R s E e).symm φ)) x
-- PiTensorProduct.lift_reindex_symm
@[simp]
theorem lift_reindex_symm
    (e : ι ≃ ι₂) (φ : MultilinearMap R s E) (x : ⨂[R] i, s (e.symm i)) :
    lift φ (reindex R s e |>.symm x) = lift (domDomCongrLinearEquiv' R R s _ e φ) x 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {E : Type u_9} [AddCommMonoid E] [Module R E] (e : ι ≃ ι₂) (φ : MultilinearMap R s E) (x : PiTensorProduct R fun i => s (e.symm i))
Goal: (PiTensorProduct.lift φ) ((PiTensorProduct.reindex R s e).symm x) =
  (PiTensorProduct.lift ((MultilinearMap.domDomCongrLinearEquiv' R R s E e) φ)) x
-- PiTensorProduct.reindex_trans
@[simp]
theorem reindex_trans (e : ι ≃ ι₂) (e' : ι₂ ≃ ι₃) :
    (reindex R s e).trans (reindex R _ e') = reindex R s (e.trans e') 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {ι₃ : Type u_3} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] (e : ι ≃ ι₂) (e' : ι₂ ≃ ι₃)
Goal: PiTensorProduct.reindex R s e ≪≫ₗ PiTensorProduct.reindex R (fun i => s (e.symm i)) e' =
  PiTensorProduct.reindex R s (e.trans e')
-- PiTensorProduct.reindex_reindex
theorem reindex_reindex (e : ι ≃ ι₂) (e' : ι₂ ≃ ι₃) (x : ⨂[R] i, s i) :
    reindex R _ e' (reindex R s e x) = reindex R s (e.trans e') x 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {ι₃ : Type u_3} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] (e : ι ≃ ι₂) (e' : ι₂ ≃ ι₃) (x : PiTensorProduct R fun i => s i)
Goal: (PiTensorProduct.reindex R (fun i => s (e.symm i)) e') ((PiTensorProduct.reindex R s e) x) =
  (PiTensorProduct.reindex R s (e.trans e')) x
-- PiTensorProduct.reindex_symm
@[simp]
theorem reindex_symm (e : ι ≃ ι₂) :
    (reindex R (fun _ ↦ M) e).symm = reindex R (fun _ ↦ M) e.symm 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {R : Type u_4} [CommSemiring R] {M : Type u_8} [AddCommMonoid M] [Module R M] (e : ι ≃ ι₂)
Goal: (PiTensorProduct.reindex R (fun x => M) e).symm = PiTensorProduct.reindex R (fun x => M) e.symm
-- PiTensorProduct.reindex_refl
@[simp]
theorem reindex_refl : reindex R s (Equiv.refl ι) = LinearEquiv.refl R _ 
Arguments: {ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)]
Goal: PiTensorProduct.reindex R s (Equiv.refl ι) = LinearEquiv.refl R (PiTensorProduct R fun i => s i)
-- PiTensorProduct.map_comp_reindex_eq
theorem map_comp_reindex_eq (f : Π i, s i →ₗ[R] t i) (e : ι ≃ ι₂) :
    map (fun i ↦ f (e.symm i)) ∘ₗ reindex R s e = reindex R t e ∘ₗ map f 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i) (e : ι ≃ ι₂)
Goal: (PiTensorProduct.map fun i => f (e.symm i)) ∘ₗ ↑(PiTensorProduct.reindex R s e) =
  ↑(PiTensorProduct.reindex R t e) ∘ₗ PiTensorProduct.map f
-- PiTensorProduct.map_reindex
theorem map_reindex (f : Π i, s i →ₗ[R] t i) (e : ι ≃ ι₂) (x : ⨂[R] i, s i) :
    map (fun i ↦ f (e.symm i)) (reindex R s e x) = reindex R t e (map f x) 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i) (e : ι ≃ ι₂) (x : PiTensorProduct R fun i => s i)
Goal: (PiTensorProduct.map fun i => f (e.symm i)) ((PiTensorProduct.reindex R s e) x) =
  (PiTensorProduct.reindex R t e) ((PiTensorProduct.map f) x)
-- PiTensorProduct.map_comp_reindex_symm
theorem map_comp_reindex_symm (f : Π i, s i →ₗ[R] t i) (e : ι ≃ ι₂) :
    map f ∘ₗ (reindex R s e).symm = (reindex R t e).symm ∘ₗ map (fun i => f (e.symm i)) 
Arguments: {ι : Type u_1} {ι₂ : Type u_2} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {t : ι → Type u_11} [(i : ι) → AddCommMonoid (t i)] [(i : ι) → Module R (t i)] (f : (i : ι) → s i →ₗ[R] t i) (e : ι ≃ ι₂)
Goal: PiTensorProduct.map f ∘ₗ ↑(PiTensorProduct.reindex R s e).symm =
  ↑(PiTensorProduct.reindex R t e).symm ∘ₗ PiTensorProduct.map fun i => f (e.symm i)