ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CliffordAlgebra.toBaseChange_comp_involute
theorem toBaseChange_comp_involute (Q : QuadraticForm R V) :
    (toBaseChange A Q).comp (involute : CliffordAlgebra (Q.baseChange A) →ₐ[A] _) =
      (Algebra.TensorProduct.map (AlgHom.id _ _) involute).comp (toBaseChange A Q) 
Arguments: {R : Type u_1} (A : Type u_2) {V : Type u_3} [CommRing R] [CommRing A] [AddCommGroup V] [Algebra R A] [Module R V] [Invertible 2] (Q : QuadraticForm R V)
Goal: (CliffordAlgebra.toBaseChange A Q).comp CliffordAlgebra.involute =
  (Algebra.TensorProduct.map (AlgHom.id A A) CliffordAlgebra.involute).comp (CliffordAlgebra.toBaseChange A Q)
-- CliffordAlgebra.toBaseChange_involute
theorem toBaseChange_involute (Q : QuadraticForm R V) (x : CliffordAlgebra (Q.baseChange A)) :
    toBaseChange A Q (involute x) =
      TensorProduct.map LinearMap.id (involute.toLinearMap) (toBaseChange A Q x) 
Arguments: {R : Type u_1} (A : Type u_2) {V : Type u_3} [CommRing R] [CommRing A] [AddCommGroup V] [Algebra R A] [Module R V] [Invertible 2] (Q : QuadraticForm R V) (x : CliffordAlgebra (QuadraticForm.baseChange A Q))
Goal: (CliffordAlgebra.toBaseChange A Q) (CliffordAlgebra.involute x) =
  (TensorProduct.map LinearMap.id CliffordAlgebra.involute.toLinearMap) ((CliffordAlgebra.toBaseChange A Q) x)
-- CliffordAlgebra.toBaseChange_comp_reverseOp
theorem toBaseChange_comp_reverseOp (Q : QuadraticForm R V) :
    (toBaseChange A Q).op.comp reverseOp =
      ((Algebra.TensorProduct.opAlgEquiv R A A (CliffordAlgebra Q)).toAlgHom.comp <|
        (Algebra.TensorProduct.map
          (AlgEquiv.toOpposite A A).toAlgHom (reverseOp (Q := Q))).comp
        (toBaseChange A Q)) 
Arguments: {R : Type u_1} (A : Type u_2) {V : Type u_3} [CommRing R] [CommRing A] [AddCommGroup V] [Algebra R A] [Module R V] [Invertible 2] (Q : QuadraticForm R V)
Goal: (AlgHom.op (CliffordAlgebra.toBaseChange A Q)).comp CliffordAlgebra.reverseOp =
  (↑(Algebra.TensorProduct.opAlgEquiv R A A (CliffordAlgebra Q))).comp
    ((Algebra.TensorProduct.map (↑(AlgEquiv.toOpposite A A)) CliffordAlgebra.reverseOp).comp
      (CliffordAlgebra.toBaseChange A Q))
-- CliffordAlgebra.toBaseChange_reverse
theorem toBaseChange_reverse (Q : QuadraticForm R V) (x : CliffordAlgebra (Q.baseChange A)) :
    toBaseChange A Q (reverse x) =
      TensorProduct.map LinearMap.id reverse (toBaseChange A Q x) 
Arguments: {R : Type u_1} (A : Type u_2) {V : Type u_3} [CommRing R] [CommRing A] [AddCommGroup V] [Algebra R A] [Module R V] [Invertible 2] (Q : QuadraticForm R V) (x : CliffordAlgebra (QuadraticForm.baseChange A Q))
Goal: (CliffordAlgebra.toBaseChange A Q) (CliffordAlgebra.reverse x) =
  (TensorProduct.map LinearMap.id CliffordAlgebra.reverse) ((CliffordAlgebra.toBaseChange A Q) x)
-- CliffordAlgebra.toBaseChange_comp_ofBaseChange
theorem toBaseChange_comp_ofBaseChange (Q : QuadraticForm R V) :
    (toBaseChange A Q).comp (ofBaseChange A Q) = AlgHom.id _ _ 
Arguments: {R : Type u_1} (A : Type u_2) {V : Type u_3} [CommRing R] [CommRing A] [AddCommGroup V] [Algebra R A] [Module R V] [Invertible 2] (Q : QuadraticForm R V)
Goal: (CliffordAlgebra.toBaseChange A Q).comp (CliffordAlgebra.ofBaseChange A Q) = AlgHom.id A (A ⊗[R] CliffordAlgebra Q)
-- CliffordAlgebra.toBaseChange_ofBaseChange
@[simp] theorem toBaseChange_ofBaseChange (Q : QuadraticForm R V) (x : A ⊗[R] CliffordAlgebra Q) :
    toBaseChange A Q (ofBaseChange A Q x) = x 
Arguments: {R : Type u_1} (A : Type u_2) {V : Type u_3} [CommRing R] [CommRing A] [AddCommGroup V] [Algebra R A] [Module R V] [Invertible 2] (Q : QuadraticForm R V) (x : A ⊗[R] CliffordAlgebra Q)
Goal: (CliffordAlgebra.toBaseChange A Q) ((CliffordAlgebra.ofBaseChange A Q) x) = x
-- CliffordAlgebra.ofBaseChange_comp_toBaseChange
theorem ofBaseChange_comp_toBaseChange (Q : QuadraticForm R V) :
    (ofBaseChange A Q).comp (toBaseChange A Q) = AlgHom.id _ _ 
Arguments: {R : Type u_1} (A : Type u_2) {V : Type u_3} [CommRing R] [CommRing A] [AddCommGroup V] [Algebra R A] [Module R V] [Invertible 2] (Q : QuadraticForm R V)
Goal: (CliffordAlgebra.ofBaseChange A Q).comp (CliffordAlgebra.toBaseChange A Q) =
  AlgHom.id A (CliffordAlgebra (QuadraticForm.baseChange A Q))
-- CliffordAlgebra.ofBaseChange_toBaseChange
@[simp] theorem ofBaseChange_toBaseChange
    (Q : QuadraticForm R V) (x : CliffordAlgebra (Q.baseChange A)) :
    ofBaseChange A Q (toBaseChange A Q x) = x 
Arguments: {R : Type u_1} (A : Type u_2) {V : Type u_3} [CommRing R] [CommRing A] [AddCommGroup V] [Algebra R A] [Module R V] [Invertible 2] (Q : QuadraticForm R V) (x : CliffordAlgebra (QuadraticForm.baseChange A Q))
Goal: (CliffordAlgebra.ofBaseChange A Q) ((CliffordAlgebra.toBaseChange A Q) x) = x
-- CliffordAlgebra.equivBaseChange_apply
@[simps!]
-- `noncomputable` is a performance workaround for mathlib4#7103
noncomputable def equivBaseChange (Q : QuadraticForm R V) :
    CliffordAlgebra (Q.baseChange A) ≃ₐ[A] A ⊗[R] CliffordAlgebra Q 
Arguments: {R : Type u_1} (A : Type u_2) {V : Type u_3} [CommRing R] [CommRing A] [AddCommGroup V] [Algebra R A] [Module R V] [Invertible 2] (Q : QuadraticForm R V) (a : CliffordAlgebra (QuadraticForm.baseChange A Q))
Goal: (CliffordAlgebra.equivBaseChange A Q) a = (CliffordAlgebra.toBaseChange A Q) a
-- CliffordAlgebra.equivBaseChange_symm_apply
@[simps!]
-- `noncomputable` is a performance workaround for mathlib4#7103
noncomputable def equivBaseChange (Q : QuadraticForm R V) :
    CliffordAlgebra (Q.baseChange A) ≃ₐ[A] A ⊗[R] CliffordAlgebra Q 
Arguments: {R : Type u_1} (A : Type u_2) {V : Type u_3} [CommRing R] [CommRing A] [AddCommGroup V] [Algebra R A] [Module R V] [Invertible 2] (Q : QuadraticForm R V) (a : A ⊗[R] CliffordAlgebra Q)
Goal: (CliffordAlgebra.equivBaseChange A Q).symm a = (CliffordAlgebra.ofBaseChange A Q) a
-- CliffordAlgebra.even_toSubmodule
@[simp]
theorem even_toSubmodule : Subalgebra.toSubmodule (even Q) = evenOdd Q 0 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] (Q : QuadraticForm R M)
Goal: Subalgebra.toSubmodule (CliffordAlgebra.even Q) = CliffordAlgebra.evenOdd Q 0
-- CliffordAlgebra.EvenHom.contract
@[ext]
structure EvenHom : Type max uA uM where
  bilin : M →ₗ[R] M →ₗ[R] A
  contract (m : M) : bilin m m = algebraMap R A (Q m)
  contract_mid (m₁ m₂ m₃ : M) : bilin m₁ m₂ * bilin m₂ m₃ = Q m₂ • bilin m₁ m₃
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {A : Type uA} [Ring A] [Algebra R A] (self : CliffordAlgebra.EvenHom Q A) (m : M)
Goal: (self.bilin m) m = (algebraMap R A) (Q m)
-- CliffordAlgebra.EvenHom.contract_mid
@[ext]
structure EvenHom : Type max uA uM where
  bilin : M →ₗ[R] M →ₗ[R] A
  contract (m : M) : bilin m m = algebraMap R A (Q m)
  contract_mid (m₁ m₂ m₃ : M) : bilin m₁ m₂ * bilin m₂ m₃ = Q m₂ • bilin m₁ m₃
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {A : Type uA} [Ring A] [Algebra R A] (self : CliffordAlgebra.EvenHom Q A) (m₁ m₂ m₃ : M)
Goal: (self.bilin m₁) m₂ * (self.bilin m₂) m₃ = Q m₂ • (self.bilin m₁) m₃
-- CliffordAlgebra.EvenHom.compr₂_bilin
@[simps]
def EvenHom.compr₂ (g : EvenHom Q A) (f : A →ₐ[R] B) : EvenHom Q B 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {A : Type uA} {B : Type uB} [Ring A] [Ring B] [Algebra R A] [Algebra R B] (g : CliffordAlgebra.EvenHom Q A) (f : A →ₐ[R] B)
Goal: (g.compr₂ f).bilin = g.bilin.compr₂ f.toLinearMap
-- CliffordAlgebra.even.algHom_ext
@[ext high]
theorem even.algHom_ext ⦃f g : even Q →ₐ[R] A⦄ (h : (even.ι Q).compr₂ f = (even.ι Q).compr₂ g) :
    f = g 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) {A : Type uA} [Ring A] [Algebra R A] ⦃f g : ↥(CliffordAlgebra.even Q) →ₐ[R] A⦄ (h : (CliffordAlgebra.even.ι Q).compr₂ f = (CliffordAlgebra.even.ι Q).compr₂ g)
Goal: f = g
-- _private.Mathlib.LinearAlgebra.CliffordAlgebra.Even.0.CliffordAlgebra.even.lift.fst_fFold_fFold
@[simp]
private theorem fst_fFold_fFold (m₁ m₂ : M) (x : A × S f) :
    (fFold f m₁ (fFold f m₂ x)).fst = f.bilin m₁ m₂ * x.fst 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {A : Type uA} [Ring A] [Algebra R A] (f : CliffordAlgebra.EvenHom Q A) (m₁ m₂ : M) (x : A × ↥(CliffordAlgebra.even.lift.S f))
Goal: (((CliffordAlgebra.even.lift.fFold f) m₁) (((CliffordAlgebra.even.lift.fFold f) m₂) x)).1 = (f.bilin m₁) m₂ * x.1
-- _private.Mathlib.LinearAlgebra.CliffordAlgebra.Even.0.CliffordAlgebra.even.lift.snd_fFold_fFold
@[simp]
private theorem snd_fFold_fFold (m₁ m₂ m₃ : M) (x : A × S f) :
    ((fFold f m₁ (fFold f m₂ x)).snd : M →ₗ[R] A) m₃ = f.bilin m₃ m₁ * (x.snd : M →ₗ[R] A) m₂ 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {A : Type uA} [Ring A] [Algebra R A] (f : CliffordAlgebra.EvenHom Q A) (m₁ m₂ m₃ : M) (x : A × ↥(CliffordAlgebra.even.lift.S f))
Goal: ↑(((CliffordAlgebra.even.lift.fFold f) m₁) (((CliffordAlgebra.even.lift.fFold f) m₂) x)).2 m₃ =
  (f.bilin m₃) m₁ * ↑x.2 m₂
-- _private.Mathlib.LinearAlgebra.CliffordAlgebra.Even.0.CliffordAlgebra.even.lift.fFold_fFold
private theorem fFold_fFold (m : M) (x : A × S f) : fFold f m (fFold f m x) = Q m • x 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {A : Type uA} [Ring A] [Algebra R A] (f : CliffordAlgebra.EvenHom Q A) (m : M) (x : A × ↥(CliffordAlgebra.even.lift.S f))
Goal: ((CliffordAlgebra.even.lift.fFold f) m) (((CliffordAlgebra.even.lift.fFold f) m) x) = Q m • x
-- CliffordAlgebra.even.lift.aux_apply
@[simps! (config := .lemmasOnly) apply]
def aux (f : EvenHom Q A) : CliffordAlgebra.even Q →ₗ[R] A 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {A : Type uA} [Ring A] [Algebra R A] (f : CliffordAlgebra.EvenHom Q A)
Goal: ∀ (a : ↥(CliffordAlgebra.even Q)),
  (CliffordAlgebra.even.lift.aux f) a = (((CliffordAlgebra.foldr Q (CliffordAlgebra.even.lift.fFold f) ⋯) (1, 0)) ↑a).1
-- CliffordAlgebra.even.lift.aux_one
@[simp, nolint simpNF] -- Added `nolint simpNF` to avoid a timeout #8386
theorem aux_one : aux f 1 = 1 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {A : Type uA} [Ring A] [Algebra R A] (f : CliffordAlgebra.EvenHom Q A)
Goal: (CliffordAlgebra.even.lift.aux f) 1 = 1
-- CliffordAlgebra.even.lift.aux_ι
@[simp, nolint simpNF] -- Added `nolint simpNF` to avoid a timeout #8386
theorem aux_ι (m₁ m₂ : M) : aux f ((even.ι Q).bilin m₁ m₂) = f.bilin m₁ m₂ 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {A : Type uA} [Ring A] [Algebra R A] (f : CliffordAlgebra.EvenHom Q A) (m₁ m₂ : M)
Goal: (CliffordAlgebra.even.lift.aux f) (((CliffordAlgebra.even.ι Q).bilin m₁) m₂) = (f.bilin m₁) m₂
-- CliffordAlgebra.even.lift.aux_algebraMap
@[simp, nolint simpNF] -- Added `nolint simpNF` to avoid a timeout #8386
theorem aux_algebraMap (r) (hr) : aux f ⟨algebraMap R _ r, hr⟩ = algebraMap R _ r 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {A : Type uA} [Ring A] [Algebra R A] (f : CliffordAlgebra.EvenHom Q A) (r : R) (hr : (algebraMap R (CliffordAlgebra Q)) r ∈ CliffordAlgebra.even Q)
Goal: (CliffordAlgebra.even.lift.aux f) ⟨(algebraMap R (CliffordAlgebra Q)) r, hr⟩ = (algebraMap R A) r
-- CliffordAlgebra.even.lift.aux_mul
@[simp, nolint simpNF] -- Added `nolint simpNF` to avoid a timeout #8386
theorem aux_mul (x y : even Q) : aux f (x * y) = aux f x * aux f y 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} {A : Type uA} [Ring A] [Algebra R A] (f : CliffordAlgebra.EvenHom Q A) (x y : ↥(CliffordAlgebra.even Q))
Goal: (CliffordAlgebra.even.lift.aux f) (x * y) = (CliffordAlgebra.even.lift.aux f) x * (CliffordAlgebra.even.lift.aux f) y
-- CliffordAlgebra.even.lift_symm_apply_bilin
@[simps! symm_apply_bilin]
def even.lift : EvenHom Q A ≃ (CliffordAlgebra.even Q →ₐ[R] A) 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) {A : Type uA} [Ring A] [Algebra R A] (F : ↥(CliffordAlgebra.even Q) →ₐ[R] A)
Goal: ((CliffordAlgebra.even.lift Q).symm F).bilin = (CliffordAlgebra.even.ι Q).bilin.compr₂ F.toLinearMap
-- CliffordAlgebra.even.lift_ι
theorem even.lift_ι (f : EvenHom Q A) (m₁ m₂ : M) :
    even.lift Q f ((even.ι Q).bilin m₁ m₂) = f.bilin m₁ m₂ 
Arguments: {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) {A : Type uA} [Ring A] [Algebra R A] (f : CliffordAlgebra.EvenHom Q A) (m₁ m₂ : M)
Goal: ((CliffordAlgebra.even.lift Q) f) (((CliffordAlgebra.even.ι Q).bilin m₁) m₂) = (f.bilin m₁) m₂
-- strongRankCondition_iff
@[mk_iff]
class StrongRankCondition : Prop where
    le_of_fin_injective : ∀ {n m : ℕ} (f : (Fin n → R) →ₗ[R] Fin m → R), Injective f → n ≤ m
Arguments: (R : Type u) [Semiring R]
Goal: StrongRankCondition R ↔ ∀ {n m : ℕ} (f : (Fin n → R) →ₗ[R] Fin m → R), Function.Injective ⇑f → n ≤ m
-- StrongRankCondition.le_of_fin_injective
@[mk_iff]
class StrongRankCondition : Prop where
    le_of_fin_injective : ∀ {n m : ℕ} (f : (Fin n → R) →ₗ[R] Fin m → R), Injective f → n ≤ m
Arguments: {R : Type u} [Semiring R] [self : StrongRankCondition R] {n m : ℕ} (f : (Fin n → R) →ₗ[R] Fin m → R)
Goal: Function.Injective ⇑f → n ≤ m
-- le_of_fin_injective
theorem le_of_fin_injective [StrongRankCondition R] {n m : ℕ} (f : (Fin n → R) →ₗ[R] Fin m → R) :
    Injective f → n ≤ m 
Arguments: (R : Type u) [Semiring R] [StrongRankCondition R] {n m : ℕ} (f : (Fin n → R) →ₗ[R] Fin m → R)
Goal: Function.Injective ⇑f → n ≤ m
-- strongRankCondition_iff_succ
theorem strongRankCondition_iff_succ :
    StrongRankCondition R ↔
      ∀ (n : ℕ) (f : (Fin (n + 1) → R) →ₗ[R] Fin n → R), ¬Function.Injective f 
Arguments: (R : Type u) [Semiring R]
Goal: StrongRankCondition R ↔ ∀ (n : ℕ) (f : (Fin (n + 1) → R) →ₗ[R] Fin n → R), ¬Function.Injective ⇑f
-- card_le_of_injective
theorem card_le_of_injective [StrongRankCondition R] {α β : Type*} [Fintype α] [Fintype β]
    (f : (α → R) →ₗ[R] β → R) (i : Injective f) : Fintype.card α ≤ Fintype.card β 
Arguments: (R : Type u) [Semiring R] [StrongRankCondition R] {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] (f : (α → R) →ₗ[R] β → R) (i : Function.Injective ⇑f)
Goal: Fintype.card α ≤ Fintype.card β
-- card_le_of_injective'
theorem card_le_of_injective' [StrongRankCondition R] {α β : Type*} [Fintype α] [Fintype β]
    (f : (α →₀ R) →ₗ[R] β →₀ R) (i : Injective f) : Fintype.card α ≤ Fintype.card β 
Arguments: (R : Type u) [Semiring R] [StrongRankCondition R] {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] (f : (α →₀ R) →ₗ[R] β →₀ R) (i : Function.Injective ⇑f)
Goal: Fintype.card α ≤ Fintype.card β
-- RankCondition.le_of_fin_surjective
class RankCondition : Prop where
    le_of_fin_surjective : ∀ {n m : ℕ} (f : (Fin n → R) →ₗ[R] Fin m → R), Surjective f → m ≤ n
Arguments: {R : Type u} [Semiring R] [self : RankCondition R] {n m : ℕ} (f : (Fin n → R) →ₗ[R] Fin m → R)
Goal: Function.Surjective ⇑f → m ≤ n
-- le_of_fin_surjective
theorem le_of_fin_surjective [RankCondition R] {n m : ℕ} (f : (Fin n → R) →ₗ[R] Fin m → R) :
    Surjective f → m ≤ n 
Arguments: (R : Type u) [Semiring R] [RankCondition R] {n m : ℕ} (f : (Fin n → R) →ₗ[R] Fin m → R)
Goal: Function.Surjective ⇑f → m ≤ n
-- card_le_of_surjective
theorem card_le_of_surjective [RankCondition R] {α β : Type*} [Fintype α] [Fintype β]
    (f : (α → R) →ₗ[R] β → R) (i : Surjective f) : Fintype.card β ≤ Fintype.card α 
Arguments: (R : Type u) [Semiring R] [RankCondition R] {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] (f : (α → R) →ₗ[R] β → R) (i : Function.Surjective ⇑f)
Goal: Fintype.card β ≤ Fintype.card α
-- card_le_of_surjective'
theorem card_le_of_surjective' [RankCondition R] {α β : Type*} [Fintype α] [Fintype β]
    (f : (α →₀ R) →ₗ[R] β →₀ R) (i : Surjective f) : Fintype.card β ≤ Fintype.card α 
Arguments: (R : Type u) [Semiring R] [RankCondition R] {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] (f : (α →₀ R) →ₗ[R] β →₀ R) (i : Function.Surjective ⇑f)
Goal: Fintype.card β ≤ Fintype.card α
-- InvariantBasisNumber.eq_of_fin_equiv
class InvariantBasisNumber : Prop where
    eq_of_fin_equiv : ∀ {n m : ℕ}, ((Fin n → R) ≃ₗ[R] Fin m → R) → n = m
Arguments: {R : Type u} [Semiring R] [self : InvariantBasisNumber R] {n m : ℕ}
Goal: ((Fin n → R) ≃ₗ[R] Fin m → R) → n = m
-- eq_of_fin_equiv
theorem eq_of_fin_equiv {n m : ℕ} : ((Fin n → R) ≃ₗ[R] Fin m → R) → n = m 
Arguments: (R : Type u) [Semiring R] [InvariantBasisNumber R] {n m : ℕ}
Goal: ((Fin n → R) ≃ₗ[R] Fin m → R) → n = m
-- card_eq_of_linearEquiv
theorem card_eq_of_linearEquiv {α β : Type*} [Fintype α] [Fintype β] (f : (α → R) ≃ₗ[R] β → R) :
    Fintype.card α = Fintype.card β 
Arguments: (R : Type u) [Semiring R] [InvariantBasisNumber R] {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] (f : (α → R) ≃ₗ[R] β → R)
Goal: Fintype.card α = Fintype.card β
-- nontrivial_of_invariantBasisNumber
theorem nontrivial_of_invariantBasisNumber : Nontrivial R 
Arguments: (R : Type u) [Semiring R] [InvariantBasisNumber R]
Goal: Nontrivial R
-- QuadraticForm.tmul_comp_tensorMap
@[simp]
theorem tmul_comp_tensorMap
    {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂}
    {Q₃ : QuadraticForm R M₃} {Q₄ : QuadraticForm R M₄}
    (f : Q₁ →qᵢ Q₂) (g : Q₃ →qᵢ Q₄) :
    (Q₂.tmul Q₄).comp (TensorProduct.map f.toLinearMap g.toLinearMap) = Q₁.tmul Q₃ 
Arguments: {R : Type uR} {M₁ : Type uM₁} {M₂ : Type uM₂} {M₃ : Type uM₃} {M₄ : Type uM₄} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [AddCommGroup M₃] [AddCommGroup M₄] [Module R M₁] [Module R M₂] [Module R M₃] [Module R M₄] [Invertible 2] {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂} {Q₃ : QuadraticForm R M₃} {Q₄ : QuadraticForm R M₄} (f : Q₁ →qᵢ Q₂) (g : Q₃ →qᵢ Q₄)
Goal: QuadraticMap.comp (Q₂.tmul Q₄) (TensorProduct.map f.toLinearMap g.toLinearMap) = Q₁.tmul Q₃
-- QuadraticForm.tmul_tensorMap_apply
@[simp]
theorem tmul_tensorMap_apply
    {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂}
    {Q₃ : QuadraticForm R M₃} {Q₄ : QuadraticForm R M₄}
    (f : Q₁ →qᵢ Q₂) (g : Q₃ →qᵢ Q₄) (x : M₁ ⊗[R] M₃) :
    Q₂.tmul Q₄ (TensorProduct.map f.toLinearMap g.toLinearMap x) = Q₁.tmul Q₃ x 
Arguments: {R : Type uR} {M₁ : Type uM₁} {M₂ : Type uM₂} {M₃ : Type uM₃} {M₄ : Type uM₄} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [AddCommGroup M₃] [AddCommGroup M₄] [Module R M₁] [Module R M₂] [Module R M₃] [Module R M₄] [Invertible 2] {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂} {Q₃ : QuadraticForm R M₃} {Q₄ : QuadraticForm R M₄} (f : Q₁ →qᵢ Q₂) (g : Q₃ →qᵢ Q₄) (x : M₁ ⊗[R] M₃)
Goal: (Q₂.tmul Q₄) ((TensorProduct.map f.toLinearMap g.toLinearMap) x) = (Q₁.tmul Q₃) x
-- QuadraticMap.Isometry.tmul_apply
@[simp]
theorem _root_.QuadraticMap.Isometry.tmul_apply
    {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂}
    {Q₃ : QuadraticForm R M₃} {Q₄ : QuadraticForm R M₄}
    (f : Q₁ →qᵢ Q₂) (g : Q₃ →qᵢ Q₄) (x : M₁ ⊗[R] M₃) :
    f.tmul g x = TensorProduct.map f.toLinearMap g.toLinearMap x 
Arguments: {R : Type uR} {M₁ : Type uM₁} {M₂ : Type uM₂} {M₃ : Type uM₃} {M₄ : Type uM₄} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [AddCommGroup M₃] [AddCommGroup M₄] [Module R M₁] [Module R M₂] [Module R M₃] [Module R M₄] [Invertible 2] {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂} {Q₃ : QuadraticForm R M₃} {Q₄ : QuadraticForm R M₄} (f : Q₁ →qᵢ Q₂) (g : Q₃ →qᵢ Q₄) (x : M₁ ⊗[R] M₃)
Goal: (f.tmul g) x = (TensorProduct.map f.toLinearMap g.toLinearMap) x
-- QuadraticForm.tmul_comp_tensorComm
@[simp]
theorem tmul_comp_tensorComm (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) :
    (Q₂.tmul Q₁).comp (TensorProduct.comm R M₁ M₂) = Q₁.tmul Q₂ 
Arguments: {R : Type uR} {M₁ : Type uM₁} {M₂ : Type uM₂} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] [Invertible 2] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂)
Goal: QuadraticMap.comp (Q₂.tmul Q₁) ↑(TensorProduct.comm R M₁ M₂) = Q₁.tmul Q₂
-- QuadraticForm.tmul_tensorComm_apply
@[simp]
theorem tmul_tensorComm_apply
    (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (x : M₁ ⊗[R] M₂) :
    Q₂.tmul Q₁ (TensorProduct.comm R M₁ M₂ x) = Q₁.tmul Q₂ x 
Arguments: {R : Type uR} {M₁ : Type uM₁} {M₂ : Type uM₂} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] [Invertible 2] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (x : M₁ ⊗[R] M₂)
Goal: (Q₂.tmul Q₁) ((TensorProduct.comm R M₁ M₂) x) = (Q₁.tmul Q₂) x
-- QuadraticForm.tensorComm_toLinearEquiv
@[simps toLinearEquiv]
def tensorComm (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) :
    (Q₁.tmul Q₂).IsometryEquiv (Q₂.tmul Q₁) 
Arguments: {R : Type uR} {M₁ : Type uM₁} {M₂ : Type uM₂} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] [Invertible 2] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂)
Goal: (Q₁.tensorComm Q₂).toLinearEquiv = TensorProduct.comm R M₁ M₂
-- QuadraticForm.tensorComm_apply
@[simp] lemma tensorComm_apply (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂)
    (x : M₁ ⊗[R] M₂) :
    tensorComm Q₁ Q₂ x = TensorProduct.comm R M₁ M₂ x 
Arguments: {R : Type uR} {M₁ : Type uM₁} {M₂ : Type uM₂} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] [Invertible 2] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (x : M₁ ⊗[R] M₂)
Goal: (Q₁.tensorComm Q₂) x = (TensorProduct.comm R M₁ M₂) x
-- QuadraticForm.tensorComm_symm
@[simp] lemma tensorComm_symm (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) :
    (tensorComm Q₁ Q₂).symm = tensorComm Q₂ Q₁ 
Arguments: {R : Type uR} {M₁ : Type uM₁} {M₂ : Type uM₂} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] [Invertible 2] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂)
Goal: (Q₁.tensorComm Q₂).symm = Q₂.tensorComm Q₁
-- QuadraticForm.tmul_comp_tensorAssoc
@[simp]
theorem tmul_comp_tensorAssoc
    (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (Q₃ : QuadraticForm R M₃) :
    (Q₁.tmul (Q₂.tmul Q₃)).comp (TensorProduct.assoc R M₁ M₂ M₃) = (Q₁.tmul Q₂).tmul Q₃ 
Arguments: {R : Type uR} {M₁ : Type uM₁} {M₂ : Type uM₂} {M₃ : Type uM₃} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [AddCommGroup M₃] [Module R M₁] [Module R M₂] [Module R M₃] [Invertible 2] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (Q₃ : QuadraticForm R M₃)
Goal: QuadraticMap.comp (Q₁.tmul (Q₂.tmul Q₃)) ↑(TensorProduct.assoc R M₁ M₂ M₃) = (Q₁.tmul Q₂).tmul Q₃
-- QuadraticForm.tmul_tensorAssoc_apply
@[simp]
theorem tmul_tensorAssoc_apply
    (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (Q₃ : QuadraticForm R M₃)
    (x : (M₁ ⊗[R] M₂) ⊗[R] M₃) :
    Q₁.tmul (Q₂.tmul Q₃) (TensorProduct.assoc R M₁ M₂ M₃ x) = (Q₁.tmul Q₂).tmul Q₃ x 
Arguments: {R : Type uR} {M₁ : Type uM₁} {M₂ : Type uM₂} {M₃ : Type uM₃} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [AddCommGroup M₃] [Module R M₁] [Module R M₂] [Module R M₃] [Invertible 2] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (Q₃ : QuadraticForm R M₃) (x : (M₁ ⊗[R] M₂) ⊗[R] M₃)
Goal: (Q₁.tmul (Q₂.tmul Q₃)) ((TensorProduct.assoc R M₁ M₂ M₃) x) = ((Q₁.tmul Q₂).tmul Q₃) x
-- QuadraticForm.tensorAssoc_toLinearEquiv
@[simps toLinearEquiv]
def tensorAssoc (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (Q₃ : QuadraticForm R M₃) :
    ((Q₁.tmul Q₂).tmul Q₃).IsometryEquiv (Q₁.tmul (Q₂.tmul Q₃)) 
Arguments: {R : Type uR} {M₁ : Type uM₁} {M₂ : Type uM₂} {M₃ : Type uM₃} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [AddCommGroup M₃] [Module R M₁] [Module R M₂] [Module R M₃] [Invertible 2] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (Q₃ : QuadraticForm R M₃)
Goal: (Q₁.tensorAssoc Q₂ Q₃).toLinearEquiv = TensorProduct.assoc R M₁ M₂ M₃