ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AlgebraicGeometry.Scheme.Hom.stalkMap_surjective
lemma Scheme.Hom.stalkMap_surjective {X Y : Scheme} (f : Hom X Y) [IsPreimmersion f] (x) :
    Function.Surjective (f.stalkMap x) 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X.Hom Y) [AlgebraicGeometry.IsPreimmersion f] (x : ↑↑X.toPresheafedSpace)
Goal: Function.Surjective ⇑(f.stalkMap x)
-- AlgebraicGeometry.isPreimmersion_eq_inf
lemma isPreimmersion_eq_inf :
    @IsPreimmersion = topologically Embedding ⊓ stalkwise (Function.Surjective ·) 
Goal: @AlgebraicGeometry.IsPreimmersion =
  (AlgebraicGeometry.topologically fun {α β} [TopologicalSpace α] [TopologicalSpace β] => Embedding) ⊓
    AlgebraicGeometry.stalkwise fun {R S} [CommRing R] [CommRing S] x => Function.Surjective ⇑x
-- AlgebraicGeometry.IsPreimmersion.of_comp
theorem of_comp {X Y Z : Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [IsPreimmersion g]
    [IsPreimmersion (f ≫ g)] : IsPreimmersion f 
Arguments: {X Y Z : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [AlgebraicGeometry.IsPreimmersion g] [AlgebraicGeometry.IsPreimmersion (f ≫ g)]
Goal: AlgebraicGeometry.IsPreimmersion f
-- AlgebraicGeometry.IsPreimmersion.comp_iff
theorem comp_iff {X Y Z : Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [IsPreimmersion g] :
    IsPreimmersion (f ≫ g) ↔ IsPreimmersion f 
Arguments: {X Y Z : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [AlgebraicGeometry.IsPreimmersion g]
Goal: AlgebraicGeometry.IsPreimmersion (f ≫ g) ↔ AlgebraicGeometry.IsPreimmersion f
-- TrivSqZeroExt.fst_mk
@[simp]
theorem fst_mk (r : R) (m : M) : fst (r, m) = r 
Arguments: {R : Type u} {M : Type v} (r : R) (m : M)
Goal: TrivSqZeroExt.fst (r, m) = r
-- TrivSqZeroExt.snd_mk
@[simp]
theorem snd_mk (r : R) (m : M) : snd (r, m) = m 
Arguments: {R : Type u} {M : Type v} (r : R) (m : M)
Goal: TrivSqZeroExt.snd (r, m) = m
-- TrivSqZeroExt.ext
@[ext]
theorem ext {x y : tsze R M} (h1 : x.fst = y.fst) (h2 : x.snd = y.snd) : x = y 
Arguments: {R : Type u} {M : Type v} {x y : tsze R M} (h1 : x.fst = y.fst) (h2 : x.snd = y.snd)
Goal: x = y
-- TrivSqZeroExt.fst_inl
@[simp]
theorem fst_inl [Zero M] (r : R) : (inl r : tsze R M).fst = r 
Arguments: {R : Type u} (M : Type v) [Zero M] (r : R)
Goal: (TrivSqZeroExt.inl r).fst = r
-- TrivSqZeroExt.snd_inl
@[simp]
theorem snd_inl [Zero M] (r : R) : (inl r : tsze R M).snd = 0 
Arguments: {R : Type u} (M : Type v) [Zero M] (r : R)
Goal: (TrivSqZeroExt.inl r).snd = 0
-- TrivSqZeroExt.fst_comp_inl
@[simp]
theorem fst_comp_inl [Zero M] : fst ∘ (inl : R → tsze R M) = id 
Arguments: {R : Type u} (M : Type v) [Zero M]
Goal: TrivSqZeroExt.fst ∘ TrivSqZeroExt.inl = id
-- TrivSqZeroExt.snd_comp_inl
@[simp]
theorem snd_comp_inl [Zero M] : snd ∘ (inl : R → tsze R M) = 0 
Arguments: {R : Type u} (M : Type v) [Zero M]
Goal: TrivSqZeroExt.snd ∘ TrivSqZeroExt.inl = 0
-- TrivSqZeroExt.fst_inr
@[simp]
theorem fst_inr [Zero R] (m : M) : (inr m : tsze R M).fst = 0 
Arguments: (R : Type u) {M : Type v} [Zero R] (m : M)
Goal: (TrivSqZeroExt.inr m).fst = 0
-- TrivSqZeroExt.snd_inr
@[simp]
theorem snd_inr [Zero R] (m : M) : (inr m : tsze R M).snd = m 
Arguments: (R : Type u) {M : Type v} [Zero R] (m : M)
Goal: (TrivSqZeroExt.inr m).snd = m
-- TrivSqZeroExt.fst_comp_inr
@[simp]
theorem fst_comp_inr [Zero R] : fst ∘ (inr : M → tsze R M) = 0 
Arguments: (R : Type u) {M : Type v} [Zero R]
Goal: TrivSqZeroExt.fst ∘ TrivSqZeroExt.inr = 0
-- TrivSqZeroExt.snd_comp_inr
@[simp]
theorem snd_comp_inr [Zero R] : snd ∘ (inr : M → tsze R M) = id 
Arguments: (R : Type u) {M : Type v} [Zero R]
Goal: TrivSqZeroExt.snd ∘ TrivSqZeroExt.inr = id
-- TrivSqZeroExt.inl_injective
theorem inl_injective [Zero M] : Function.Injective (inl : R → tsze R M) 
Arguments: {R : Type u} {M : Type v} [Zero M]
Goal: Function.Injective TrivSqZeroExt.inl
-- TrivSqZeroExt.inr_injective
theorem inr_injective [Zero R] : Function.Injective (inr : M → tsze R M) 
Arguments: {R : Type u} {M : Type v} [Zero R]
Goal: Function.Injective TrivSqZeroExt.inr
-- TrivSqZeroExt.fst_zero
@[simp]
theorem fst_zero [Zero R] [Zero M] : (0 : tsze R M).fst = 0 
Arguments: {R : Type u} {M : Type v} [Zero R] [Zero M]
Goal: TrivSqZeroExt.fst 0 = 0
-- TrivSqZeroExt.snd_zero
@[simp]
theorem snd_zero [Zero R] [Zero M] : (0 : tsze R M).snd = 0 
Arguments: {R : Type u} {M : Type v} [Zero R] [Zero M]
Goal: TrivSqZeroExt.snd 0 = 0
-- TrivSqZeroExt.fst_add
@[simp]
theorem fst_add [Add R] [Add M] (x₁ x₂ : tsze R M) : (x₁ + x₂).fst = x₁.fst + x₂.fst 
Arguments: {R : Type u} {M : Type v} [Add R] [Add M] (x₁ x₂ : tsze R M)
Goal: (x₁ + x₂).fst = x₁.fst + x₂.fst
-- TrivSqZeroExt.snd_add
@[simp]
theorem snd_add [Add R] [Add M] (x₁ x₂ : tsze R M) : (x₁ + x₂).snd = x₁.snd + x₂.snd 
Arguments: {R : Type u} {M : Type v} [Add R] [Add M] (x₁ x₂ : tsze R M)
Goal: (x₁ + x₂).snd = x₁.snd + x₂.snd
-- TrivSqZeroExt.fst_neg
@[simp]
theorem fst_neg [Neg R] [Neg M] (x : tsze R M) : (-x).fst = -x.fst 
Arguments: {R : Type u} {M : Type v} [Neg R] [Neg M] (x : tsze R M)
Goal: (-x).fst = -x.fst
-- TrivSqZeroExt.snd_neg
@[simp]
theorem snd_neg [Neg R] [Neg M] (x : tsze R M) : (-x).snd = -x.snd 
Arguments: {R : Type u} {M : Type v} [Neg R] [Neg M] (x : tsze R M)
Goal: (-x).snd = -x.snd
-- TrivSqZeroExt.fst_sub
@[simp]
theorem fst_sub [Sub R] [Sub M] (x₁ x₂ : tsze R M) : (x₁ - x₂).fst = x₁.fst - x₂.fst 
Arguments: {R : Type u} {M : Type v} [Sub R] [Sub M] (x₁ x₂ : tsze R M)
Goal: (x₁ - x₂).fst = x₁.fst - x₂.fst
-- TrivSqZeroExt.snd_sub
@[simp]
theorem snd_sub [Sub R] [Sub M] (x₁ x₂ : tsze R M) : (x₁ - x₂).snd = x₁.snd - x₂.snd 
Arguments: {R : Type u} {M : Type v} [Sub R] [Sub M] (x₁ x₂ : tsze R M)
Goal: (x₁ - x₂).snd = x₁.snd - x₂.snd
-- TrivSqZeroExt.fst_smul
@[simp]
theorem fst_smul [SMul S R] [SMul S M] (s : S) (x : tsze R M) : (s • x).fst = s • x.fst 
Arguments: {S : Type u_2} {R : Type u} {M : Type v} [SMul S R] [SMul S M] (s : S) (x : tsze R M)
Goal: (s •> x).fst = s •> x.fst
-- TrivSqZeroExt.snd_smul
@[simp]
theorem snd_smul [SMul S R] [SMul S M] (s : S) (x : tsze R M) : (s • x).snd = s • x.snd 
Arguments: {S : Type u_2} {R : Type u} {M : Type v} [SMul S R] [SMul S M] (s : S) (x : tsze R M)
Goal: (s •> x).snd = s •> x.snd
-- TrivSqZeroExt.fst_sum
theorem fst_sum {ι} [AddCommMonoid R] [AddCommMonoid M] (s : Finset ι) (f : ι → tsze R M) :
    (∑ i ∈ s, f i).fst = ∑ i ∈ s, (f i).fst 
Arguments: {R : Type u} {M : Type v} {ι : Type u_3} [AddCommMonoid R] [AddCommMonoid M] (s : Finset ι) (f : ι → tsze R M)
Goal: (∑ i ∈ s, f i).fst = ∑ i ∈ s, (f i).fst
-- TrivSqZeroExt.snd_sum
theorem snd_sum {ι} [AddCommMonoid R] [AddCommMonoid M] (s : Finset ι) (f : ι → tsze R M) :
    (∑ i ∈ s, f i).snd = ∑ i ∈ s, (f i).snd 
Arguments: {R : Type u} {M : Type v} {ι : Type u_3} [AddCommMonoid R] [AddCommMonoid M] (s : Finset ι) (f : ι → tsze R M)
Goal: (∑ i ∈ s, f i).snd = ∑ i ∈ s, (f i).snd
-- TrivSqZeroExt.inl_zero
@[simp]
theorem inl_zero [Zero R] [Zero M] : (inl 0 : tsze R M) = 0 
Arguments: {R : Type u} (M : Type v) [Zero R] [Zero M]
Goal: TrivSqZeroExt.inl 0 = 0
-- TrivSqZeroExt.inl_add
@[simp]
theorem inl_add [Add R] [AddZeroClass M] (r₁ r₂ : R) :
    (inl (r₁ + r₂) : tsze R M) = inl r₁ + inl r₂ 
Arguments: {R : Type u} (M : Type v) [Add R] [AddZeroClass M] (r₁ r₂ : R)
Goal: TrivSqZeroExt.inl (r₁ + r₂) = TrivSqZeroExt.inl r₁ + TrivSqZeroExt.inl r₂
-- TrivSqZeroExt.inl_neg
@[simp]
theorem inl_neg [Neg R] [SubNegZeroMonoid M] (r : R) : (inl (-r) : tsze R M) = -inl r 
Arguments: {R : Type u} (M : Type v) [Neg R] [SubNegZeroMonoid M] (r : R)
Goal: TrivSqZeroExt.inl (-r) = -TrivSqZeroExt.inl r
-- TrivSqZeroExt.inl_sub
@[simp]
theorem inl_sub [Sub R] [SubNegZeroMonoid M] (r₁ r₂ : R) :
    (inl (r₁ - r₂) : tsze R M) = inl r₁ - inl r₂ 
Arguments: {R : Type u} (M : Type v) [Sub R] [SubNegZeroMonoid M] (r₁ r₂ : R)
Goal: TrivSqZeroExt.inl (r₁ - r₂) = TrivSqZeroExt.inl r₁ - TrivSqZeroExt.inl r₂
-- TrivSqZeroExt.inl_smul
@[simp]
theorem inl_smul [Monoid S] [AddMonoid M] [SMul S R] [DistribMulAction S M] (s : S) (r : R) :
    (inl (s • r) : tsze R M) = s • inl r 
Arguments: {S : Type u_2} {R : Type u} (M : Type v) [Monoid S] [AddMonoid M] [SMul S R] [DistribMulAction S M] (s : S) (r : R)
Goal: TrivSqZeroExt.inl (s •> r) = s •> TrivSqZeroExt.inl r
-- TrivSqZeroExt.inl_sum
theorem inl_sum {ι} [AddCommMonoid R] [AddCommMonoid M] (s : Finset ι) (f : ι → R) :
    (inl (∑ i ∈ s, f i) : tsze R M) = ∑ i ∈ s, inl (f i) 
Arguments: {R : Type u} (M : Type v) {ι : Type u_3} [AddCommMonoid R] [AddCommMonoid M] (s : Finset ι) (f : ι → R)
Goal: TrivSqZeroExt.inl (∑ i ∈ s, f i) = ∑ i ∈ s, TrivSqZeroExt.inl (f i)
-- TrivSqZeroExt.inr_zero
@[simp]
theorem inr_zero [Zero R] [Zero M] : (inr 0 : tsze R M) = 0 
Arguments: (R : Type u) {M : Type v} [Zero R] [Zero M]
Goal: TrivSqZeroExt.inr 0 = 0
-- TrivSqZeroExt.inr_add
@[simp]
theorem inr_add [AddZeroClass R] [AddZeroClass M] (m₁ m₂ : M) :
    (inr (m₁ + m₂) : tsze R M) = inr m₁ + inr m₂ 
Arguments: (R : Type u) {M : Type v} [AddZeroClass R] [AddZeroClass M] (m₁ m₂ : M)
Goal: TrivSqZeroExt.inr (m₁ + m₂) = TrivSqZeroExt.inr m₁ + TrivSqZeroExt.inr m₂
-- TrivSqZeroExt.inr_neg
@[simp]
theorem inr_neg [SubNegZeroMonoid R] [Neg M] (m : M) : (inr (-m) : tsze R M) = -inr m 
Arguments: (R : Type u) {M : Type v} [SubNegZeroMonoid R] [Neg M] (m : M)
Goal: TrivSqZeroExt.inr (-m) = -TrivSqZeroExt.inr m
-- TrivSqZeroExt.inr_sub
@[simp]
theorem inr_sub [SubNegZeroMonoid R] [Sub M] (m₁ m₂ : M) :
    (inr (m₁ - m₂) : tsze R M) = inr m₁ - inr m₂ 
Arguments: (R : Type u) {M : Type v} [SubNegZeroMonoid R] [Sub M] (m₁ m₂ : M)
Goal: TrivSqZeroExt.inr (m₁ - m₂) = TrivSqZeroExt.inr m₁ - TrivSqZeroExt.inr m₂
-- TrivSqZeroExt.inr_smul
@[simp]
theorem inr_smul [Zero R] [Zero S] [SMulWithZero S R] [SMul S M] (r : S) (m : M) :
    (inr (r • m) : tsze R M) = r • inr m 
Arguments: {S : Type u_2} (R : Type u) {M : Type v} [Zero R] [Zero S] [SMulWithZero S R] [SMul S M] (r : S) (m : M)
Goal: TrivSqZeroExt.inr (r •> m) = r •> TrivSqZeroExt.inr m
-- TrivSqZeroExt.inr_sum
theorem inr_sum {ι} [AddCommMonoid R] [AddCommMonoid M] (s : Finset ι) (f : ι → M) :
    (inr (∑ i ∈ s, f i) : tsze R M) = ∑ i ∈ s, inr (f i) 
Arguments: (R : Type u) {M : Type v} {ι : Type u_3} [AddCommMonoid R] [AddCommMonoid M] (s : Finset ι) (f : ι → M)
Goal: TrivSqZeroExt.inr (∑ i ∈ s, f i) = ∑ i ∈ s, TrivSqZeroExt.inr (f i)
-- TrivSqZeroExt.inl_fst_add_inr_snd_eq
theorem inl_fst_add_inr_snd_eq [AddZeroClass R] [AddZeroClass M] (x : tsze R M) :
    inl x.fst + inr x.snd = x 
Arguments: {R : Type u} {M : Type v} [AddZeroClass R] [AddZeroClass M] (x : tsze R M)
Goal: TrivSqZeroExt.inl x.fst + TrivSqZeroExt.inr x.snd = x
-- TrivSqZeroExt.ind
@[elab_as_elim, induction_eliminator, cases_eliminator]
theorem ind {R M} [AddZeroClass R] [AddZeroClass M] {P : TrivSqZeroExt R M → Prop}
    (inl_add_inr : ∀ r m, P (inl r + inr m)) (x) : P x 
Arguments: {R : Type u_3} {M : Type u_4} [AddZeroClass R] [AddZeroClass M] {P : tsze R M → Prop} (inl_add_inr : ∀ (r : R) (m : M), P (TrivSqZeroExt.inl r + TrivSqZeroExt.inr m)) (x : tsze R M)
Goal: P x
-- TrivSqZeroExt.linearMap_ext
theorem linearMap_ext {N} [Semiring S] [AddCommMonoid R] [AddCommMonoid M] [AddCommMonoid N]
    [Module S R] [Module S M] [Module S N] ⦃f g : tsze R M →ₗ[S] N⦄
    (hl : ∀ r, f (inl r) = g (inl r)) (hr : ∀ m, f (inr m) = g (inr m)) : f = g 
Arguments: {S : Type u_2} {R : Type u} {M : Type v} {N : Type u_3} [Semiring S] [AddCommMonoid R] [AddCommMonoid M] [AddCommMonoid N] [Module S R] [Module S M] [Module S N] ⦃f g : tsze R M →ₗ[S] N⦄ (hl : ∀ (r : R), f (TrivSqZeroExt.inl r) = g (TrivSqZeroExt.inl r)) (hr : ∀ (m : M), f (TrivSqZeroExt.inr m) = g (TrivSqZeroExt.inr m))
Goal: f = g
-- TrivSqZeroExt.inrHom_apply
@[simps apply]
def inrHom [Semiring R] [AddCommMonoid M] [Module R M] : M →ₗ[R] tsze R M 
Arguments: (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] (m : M)
Goal: (TrivSqZeroExt.inrHom R M) m = TrivSqZeroExt.inr m
-- TrivSqZeroExt.sndHom_apply
@[simps apply]
def sndHom [Semiring R] [AddCommMonoid M] [Module R M] : tsze R M →ₗ[R] M 
Arguments: (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] (x : tsze R M)
Goal: (TrivSqZeroExt.sndHom R M) x = x.snd
-- TrivSqZeroExt.fst_one
@[simp]
theorem fst_one [One R] [Zero M] : (1 : tsze R M).fst = 1 
Arguments: {R : Type u} {M : Type v} [One R] [Zero M]
Goal: TrivSqZeroExt.fst 1 = 1
-- TrivSqZeroExt.snd_one
@[simp]
theorem snd_one [One R] [Zero M] : (1 : tsze R M).snd = 0 
Arguments: {R : Type u} {M : Type v} [One R] [Zero M]
Goal: TrivSqZeroExt.snd 1 = 0
-- TrivSqZeroExt.fst_mul
@[simp]
theorem fst_mul [Mul R] [Add M] [SMul R M] [SMul Rᵐᵒᵖ M] (x₁ x₂ : tsze R M) :
    (x₁ * x₂).fst = x₁.fst * x₂.fst 
Arguments: {R : Type u} {M : Type v} [Mul R] [Add M] [SMul R M] [SMul Rᵐᵒᵖ M] (x₁ x₂ : tsze R M)
Goal: (x₁ * x₂).fst = x₁.fst * x₂.fst
-- TrivSqZeroExt.snd_mul
@[simp]
theorem snd_mul [Mul R] [Add M] [SMul R M] [SMul Rᵐᵒᵖ M] (x₁ x₂ : tsze R M) :
    (x₁ * x₂).snd = x₁.fst •> x₂.snd + x₁.snd <• x₂.fst 
Arguments: {R : Type u} {M : Type v} [Mul R] [Add M] [SMul R M] [SMul Rᵐᵒᵖ M] (x₁ x₂ : tsze R M)
Goal: (x₁ * x₂).snd = x₁.fst •> x₂.snd + x₁.snd <• x₂.fst
-- TrivSqZeroExt.inl_one
@[simp]
theorem inl_one [One R] [Zero M] : (inl 1 : tsze R M) = 1 
Arguments: {R : Type u} (M : Type v) [One R] [Zero M]
Goal: TrivSqZeroExt.inl 1 = 1
-- TrivSqZeroExt.inl_mul
@[simp]
theorem inl_mul [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M]
    (r₁ r₂ : R) : (inl (r₁ * r₂) : tsze R M) = inl r₁ * inl r₂ 
Arguments: {R : Type u} (M : Type v) [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M] (r₁ r₂ : R)
Goal: TrivSqZeroExt.inl (r₁ * r₂) = TrivSqZeroExt.inl r₁ * TrivSqZeroExt.inl r₂
-- TrivSqZeroExt.inl_mul_inl
theorem inl_mul_inl [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M]
    (r₁ r₂ : R) : (inl r₁ * inl r₂ : tsze R M) = inl (r₁ * r₂) 
Arguments: {R : Type u} (M : Type v) [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M] (r₁ r₂ : R)
Goal: TrivSqZeroExt.inl r₁ * TrivSqZeroExt.inl r₂ = TrivSqZeroExt.inl (r₁ * r₂)
-- TrivSqZeroExt.inr_mul_inr
@[simp]
theorem inr_mul_inr [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M] (m₁ m₂ : M) :
    (inr m₁ * inr m₂ : tsze R M) = 0 
Arguments: (R : Type u) {M : Type v} [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M] (m₁ m₂ : M)
Goal: TrivSqZeroExt.inr m₁ * TrivSqZeroExt.inr m₂ = 0
-- TrivSqZeroExt.inl_mul_inr
theorem inl_mul_inr [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M] (r : R) (m : M) :
    (inl r * inr m : tsze R M) = inr (r • m) 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M] (r : R) (m : M)
Goal: TrivSqZeroExt.inl r * TrivSqZeroExt.inr m = TrivSqZeroExt.inr (r •> m)
-- TrivSqZeroExt.inr_mul_inl
theorem inr_mul_inl [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M] (r : R) (m : M) :
    (inr m * inl r : tsze R M) = inr (m <• r) 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M] (r : R) (m : M)
Goal: TrivSqZeroExt.inr m * TrivSqZeroExt.inl r = TrivSqZeroExt.inr (m <• r)
-- TrivSqZeroExt.inl_mul_eq_smul
theorem inl_mul_eq_smul [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M]
    (r : R) (x : tsze R M) :
    inl r * x = r •> x 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M] (r : R) (x : tsze R M)
Goal: TrivSqZeroExt.inl r * x = r •> x
-- TrivSqZeroExt.mul_inl_eq_op_smul
theorem mul_inl_eq_op_smul [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M]
    (x : tsze R M) (r : R) :
    x * inl r = x <• r 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M] (x : tsze R M) (r : R)
Goal: x * TrivSqZeroExt.inl r = x <• r
-- TrivSqZeroExt.fst_natCast
@[simp]
theorem fst_natCast [AddMonoidWithOne R] [AddMonoid M] (n : ℕ) : (n : tsze R M).fst = n 
Arguments: {R : Type u} {M : Type v} [AddMonoidWithOne R] [AddMonoid M] (n : ℕ)
Goal: (↑n).fst = ↑n
-- TrivSqZeroExt.snd_natCast
@[simp]
theorem snd_natCast [AddMonoidWithOne R] [AddMonoid M] (n : ℕ) : (n : tsze R M).snd = 0 
Arguments: {R : Type u} {M : Type v} [AddMonoidWithOne R] [AddMonoid M] (n : ℕ)
Goal: (↑n).snd = 0
-- TrivSqZeroExt.inl_natCast
@[simp]
theorem inl_natCast [AddMonoidWithOne R] [AddMonoid M] (n : ℕ) : (inl n : tsze R M) = n 
Arguments: {R : Type u} {M : Type v} [AddMonoidWithOne R] [AddMonoid M] (n : ℕ)
Goal: TrivSqZeroExt.inl ↑n = ↑n
-- TrivSqZeroExt.fst_intCast
@[simp]
theorem fst_intCast [AddGroupWithOne R] [AddGroup M] (z : ℤ) : (z : tsze R M).fst = z 
Arguments: {R : Type u} {M : Type v} [AddGroupWithOne R] [AddGroup M] (z : ℤ)
Goal: (↑z).fst = ↑z
-- TrivSqZeroExt.snd_intCast
@[simp]
theorem snd_intCast [AddGroupWithOne R] [AddGroup M] (z : ℤ) : (z : tsze R M).snd = 0 
Arguments: {R : Type u} {M : Type v} [AddGroupWithOne R] [AddGroup M] (z : ℤ)
Goal: (↑z).snd = 0
-- TrivSqZeroExt.inl_intCast
@[simp]
theorem inl_intCast [AddGroupWithOne R] [AddGroup M] (z : ℤ) : (inl z : tsze R M) = z 
Arguments: {R : Type u} {M : Type v} [AddGroupWithOne R] [AddGroup M] (z : ℤ)
Goal: TrivSqZeroExt.inl ↑z = ↑z
-- TrivSqZeroExt.fst_pow
@[simp]
theorem fst_pow [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M]
    (x : tsze R M) (n : ℕ) : fst (x ^ n) = x.fst ^ n 
Arguments: {R : Type u} {M : Type v} [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M] (x : tsze R M) (n : ℕ)
Goal: (x ^ n).fst = x.fst ^ n
-- TrivSqZeroExt.snd_pow_eq_sum
theorem snd_pow_eq_sum [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M]
    (x : tsze R M) (n : ℕ) :
    snd (x ^ n) = ((List.range n).map fun i => x.fst ^ (n.pred - i) •> x.snd <• x.fst ^ i).sum 
Arguments: {R : Type u} {M : Type v} [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M] (x : tsze R M) (n : ℕ)
Goal: (x ^ n).snd = (List.map (fun i => x.fst ^ (n.pred - i) •> x.snd <• x.fst ^ i) (List.range n)).sum
-- TrivSqZeroExt.snd_pow_of_smul_comm
theorem snd_pow_of_smul_comm [Monoid R] [AddMonoid M] [DistribMulAction R M]
    [DistribMulAction Rᵐᵒᵖ M] [SMulCommClass R Rᵐᵒᵖ M] (x : tsze R M) (n : ℕ)
    (h : x.snd <• x.fst = x.fst •> x.snd) : snd (x ^ n) = n • x.fst ^ n.pred •> x.snd 
Arguments: {R : Type u} {M : Type v} [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M] [SMulCommClass R Rᵐᵒᵖ M] (x : tsze R M) (n : ℕ) (h : x.snd <• x.fst = x.fst •> x.snd)
Goal: (x ^ n).snd = n •> x.fst ^ n.pred •> x.snd
-- TrivSqZeroExt.snd_pow_of_smul_comm.aux
theorem snd_pow_of_smul_comm [Monoid R] [AddMonoid M] [DistribMulAction R M]
    [DistribMulAction Rᵐᵒᵖ M] [SMulCommClass R Rᵐᵒᵖ M] (x : tsze R M) (n : ℕ)
    (h : x.snd <• x.fst = x.fst •> x.snd) : snd (x ^ n) = n • x.fst ^ n.pred •> x.snd 
Arguments: {R : Type u} {M : Type v} [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M] [SMulCommClass R Rᵐᵒᵖ M] (x : tsze R M) (h : x.snd <• x.fst = x.fst •> x.snd) (n : ℕ)
Goal: x.snd <• x.fst ^ n = x.fst ^ n •> x.snd
-- TrivSqZeroExt.snd_pow_of_smul_comm'
theorem snd_pow_of_smul_comm' [Monoid R] [AddMonoid M] [DistribMulAction R M]
    [DistribMulAction Rᵐᵒᵖ M] [SMulCommClass R Rᵐᵒᵖ M] (x : tsze R M) (n : ℕ)
    (h : x.snd <• x.fst = x.fst •> x.snd) : snd (x ^ n) = n • (x.snd <• x.fst ^ n.pred) 
Arguments: {R : Type u} {M : Type v} [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M] [SMulCommClass R Rᵐᵒᵖ M] (x : tsze R M) (n : ℕ) (h : x.snd <• x.fst = x.fst •> x.snd)
Goal: (x ^ n).snd = n •> (x.snd <• x.fst ^ n.pred)
-- TrivSqZeroExt.snd_pow
@[simp]
theorem snd_pow [CommMonoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M]
    [IsCentralScalar R M] (x : tsze R M) (n : ℕ) : snd (x ^ n) = n • x.fst ^ n.pred • x.snd 
Arguments: {R : Type u} {M : Type v} [CommMonoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M] [IsCentralScalar R M] (x : tsze R M) (n : ℕ)
Goal: (x ^ n).snd = n •> x.fst ^ n.pred •> x.snd
-- TrivSqZeroExt.inl_pow
@[simp]
theorem inl_pow [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M] (r : R)
    (n : ℕ) : (inl r ^ n : tsze R M) = inl (r ^ n) 
Arguments: {R : Type u} {M : Type v} [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M] (r : R) (n : ℕ)
Goal: TrivSqZeroExt.inl r ^ n = TrivSqZeroExt.inl (r ^ n)
-- TrivSqZeroExt.fst_list_prod
theorem fst_list_prod [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M]
    [SMulCommClass R Rᵐᵒᵖ M] (l : List (tsze R M)) : l.prod.fst = (l.map fst).prod 
Arguments: {R : Type u} {M : Type v} [Monoid R] [AddMonoid M] [DistribMulAction R M] [DistribMulAction Rᵐᵒᵖ M] [SMulCommClass R Rᵐᵒᵖ M] (l : List (tsze R M))
Goal: l.prod.fst = (List.map TrivSqZeroExt.fst l).prod
-- TrivSqZeroExt.snd_list_prod
theorem snd_list_prod [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M]
    [SMulCommClass R Rᵐᵒᵖ M] (l : List (tsze R M)) :
    l.prod.snd =
      (l.enum.map fun x : ℕ × tsze R M =>
          ((l.map fst).take x.1).prod •> x.snd.snd <• ((l.map fst).drop x.1.succ).prod).sum 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M] [SMulCommClass R Rᵐᵒᵖ M] (l : List (tsze R M))
Goal: l.prod.snd =
  (List.map
      (fun x =>
        (List.take x.1 (List.map TrivSqZeroExt.fst l)).prod •> x.2.snd <•
          (List.drop x.1.succ (List.map TrivSqZeroExt.fst l)).prod)
      l.enum).sum
-- TrivSqZeroExt.inlHom_apply
@[simps apply]
def inlHom [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M] : R →+* tsze R M 
Arguments: (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] [Module Rᵐᵒᵖ M] (r : R)
Goal: (TrivSqZeroExt.inlHom R M) r = TrivSqZeroExt.inl r
-- TrivSqZeroExt.fst_inv
@[simp] theorem fst_inv (x : tsze R M) : fst x⁻¹ = (fst x)⁻¹ 
Arguments: {R : Type u} {M : Type v} [Neg M] [Inv R] [SMul Rᵐᵒᵖ M] [SMul R M] (x : tsze R M)
Goal: x⁻¹.fst = x.fst⁻¹
-- TrivSqZeroExt.snd_inv
@[simp] theorem snd_inv (x : tsze R M) : snd x⁻¹ = -((fst x)⁻¹ •> snd x <• (fst x)⁻¹) 
Arguments: {R : Type u} {M : Type v} [Neg M] [Inv R] [SMul Rᵐᵒᵖ M] [SMul R M] (x : tsze R M)
Goal: x⁻¹.snd = -(x.fst⁻¹ •> x.snd <• x.fst⁻¹)
-- TrivSqZeroExt.inv_inl
protected theorem inv_inl (r : R) :
    (inl r)⁻¹ = (inl (r⁻¹ : R) : tsze R M) 
Arguments: {R : Type u} {M : Type v} [DivisionSemiring R] [AddCommGroup M] [Module Rᵐᵒᵖ M] [Module R M] (r : R)
Goal: (TrivSqZeroExt.inl r)⁻¹ = TrivSqZeroExt.inl r⁻¹
-- TrivSqZeroExt.inv_inr
@[simp]
theorem inv_inr (m : M) : (inr m)⁻¹ = (0 : tsze R M) 
Arguments: {R : Type u} {M : Type v} [DivisionSemiring R] [AddCommGroup M] [Module Rᵐᵒᵖ M] [Module R M] (m : M)
Goal: (TrivSqZeroExt.inr m)⁻¹ = 0
-- TrivSqZeroExt.inv_zero
@[simp]
protected theorem inv_zero : (0 : tsze R M)⁻¹ = (0 : tsze R M) 
Arguments: {R : Type u} {M : Type v} [DivisionSemiring R] [AddCommGroup M] [Module Rᵐᵒᵖ M] [Module R M]
Goal: 0⁻¹ = 0
-- TrivSqZeroExt.inv_one
@[simp]
protected theorem inv_one : (1 : tsze R M)⁻¹ = (1 : tsze R M) 
Arguments: {R : Type u} {M : Type v} [DivisionSemiring R] [AddCommGroup M] [Module Rᵐᵒᵖ M] [Module R M]
Goal: 1⁻¹ = 1
-- TrivSqZeroExt.mul_inv_cancel
protected theorem mul_inv_cancel {x : tsze R M} (hx : fst x ≠ 0) : x * x⁻¹ = 1 
Arguments: {R : Type u} {M : Type v} [DivisionSemiring R] [AddCommGroup M] [Module Rᵐᵒᵖ M] [Module R M] [SMulCommClass R Rᵐᵒᵖ M] {x : tsze R M} (hx : x.fst ≠ 0)
Goal: x * x⁻¹ = 1
-- TrivSqZeroExt.inv_mul_cancel
protected theorem inv_mul_cancel {x : tsze R M} (hx : fst x ≠ 0) : x⁻¹ * x = 1 
Arguments: {R : Type u} {M : Type v} [DivisionSemiring R] [AddCommGroup M] [Module Rᵐᵒᵖ M] [Module R M] {x : tsze R M} (hx : x.fst ≠ 0)
Goal: x⁻¹ * x = 1
-- TrivSqZeroExt.mul_inv_rev
protected theorem mul_inv_rev (a b : tsze R M) :
    (a * b)⁻¹ = b⁻¹ * a⁻¹ 
Arguments: {R : Type u} {M : Type v} [DivisionSemiring R] [AddCommGroup M] [Module Rᵐᵒᵖ M] [Module R M] [SMulCommClass R Rᵐᵒᵖ M] (a b : tsze R M)
Goal: (a * b)⁻¹ = b⁻¹ * a⁻¹
-- TrivSqZeroExt.inv_inv
protected theorem inv_inv {x : tsze R M} (hx : fst x ≠ 0) : x⁻¹⁻¹ = x 
Arguments: {R : Type u} {M : Type v} [DivisionSemiring R] [AddCommGroup M] [Module Rᵐᵒᵖ M] [Module R M] [SMulCommClass R Rᵐᵒᵖ M] {x : tsze R M} (hx : x.fst ≠ 0)
Goal: x⁻¹⁻¹ = x
-- TrivSqZeroExt.inv_neg
protected theorem inv_neg {x : tsze R M} : (-x)⁻¹ = -(x⁻¹) 
Arguments: {R : Type u} {M : Type v} [DivisionRing R] [AddCommGroup M] [Module Rᵐᵒᵖ M] [Module R M] {x : tsze R M}
Goal: (-x)⁻¹ = -x⁻¹