1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.GrothendieckTopology.sheafifyMap_id
File: Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean

tactic: dsimp [sheafifyMap, sheafify]
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
⊢ J.sheafifyMap (𝟙 P) = 𝟙 (J.sheafify P)
state_after: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
⊢ J.plusMap (J.plusMap (𝟙 P)) = 𝟙 (J.plusObj (J.plusObj P))

tactic: simp
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P : Cᵒᵖ ⥤ D
⊢ J.plusMap (J.plusMap (𝟙 P)) = 𝟙 (J.plusObj (J.plusObj P))
state_after: no goals
Theorem: CategoryTheory.ShiftedHom.comp_zero
File: Mathlib/CategoryTheory/Shift/ShiftedHom.lean

tactic: rw [comp, Functor.map_zero, Limits.zero_comp, Limits.comp_zero]
state_before: C : Type u_1
inst✝⁴ : Category.{u_3, u_1} C
M : Type u_2
inst✝³ : AddMonoid M
inst✝² : HasShift C M
X Y Z T : C
inst✝¹ : Preadditive C
inst✝ : ∀ (a : M), (shiftFunctor C a).PreservesZeroMorphisms
a : M
β : ShiftedHom X Y a
b c : M
h : b + a = c
⊢ β.comp 0 h = 0
state_after: no goals
Theorem: Submodule.mul_toAddSubmonoid
File: Mathlib/Algebra/Algebra/Operations.lean

tactic: dsimp [HMul.hMul, Mul.mul]
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M✝ N✝ P Q : Submodule R A
m n : A
M N : Submodule R A
⊢ (M * N).toAddSubmonoid = M.toAddSubmonoid * N.toAddSubmonoid
state_after: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M✝ N✝ P Q : Submodule R A
m n : A
M N : Submodule R A
⊢ (map₂ (LinearMap.mul R A) M N).toAddSubmonoid = ⨆ s, AddSubmonoid.map (AddMonoidHom.mulLeft ↑s) N.toAddSubmonoid

tactic: rw [map₂, iSup_toAddSubmonoid]
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M✝ N✝ P Q : Submodule R A
m n : A
M N : Submodule R A
⊢ (map₂ (LinearMap.mul R A) M N).toAddSubmonoid = ⨆ s, AddSubmonoid.map (AddMonoidHom.mulLeft ↑s) N.toAddSubmonoid
state_after: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M✝ N✝ P Q : Submodule R A
m n : A
M N : Submodule R A
⊢ ⨆ i, (map ((LinearMap.mul R A) ↑i) N).toAddSubmonoid =
    ⨆ s, AddSubmonoid.map (AddMonoidHom.mulLeft ↑s) N.toAddSubmonoid

tactic: rfl
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M✝ N✝ P Q : Submodule R A
m n : A
M N : Submodule R A
⊢ ⨆ i, (map ((LinearMap.mul R A) ↑i) N).toAddSubmonoid =
    ⨆ s, AddSubmonoid.map (AddMonoidHom.mulLeft ↑s) N.toAddSubmonoid
state_after: no goals
Theorem: MulLECancellable.injective_left
File: Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean

tactic: dsimp
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Mul α
i : IsSymmOp α α fun x x_1 => x * x_1
inst✝ : PartialOrder α
a : α
ha : MulLECancellable a
b c : α
h : (fun x => x * a) b = (fun x => x * a) c
⊢ (fun x => a * x) b = (fun x => a * x) c
state_after: α : Type u_1
β : Type u_2
inst✝¹ : Mul α
i : IsSymmOp α α fun x x_1 => x * x_1
inst✝ : PartialOrder α
a : α
ha : MulLECancellable a
b c : α
h : (fun x => x * a) b = (fun x => x * a) c
⊢ a * b = a * c

tactic: rwa [i.symm_op a, i.symm_op a]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Mul α
i : IsSymmOp α α fun x x_1 => x * x_1
inst✝ : PartialOrder α
a : α
ha : MulLECancellable a
b c : α
h : (fun x => x * a) b = (fun x => x * a) c
⊢ a * b = a * c
state_after: no goals
Theorem: HomologicalComplex.opcyclesIsoSc'_inv_fromOpcycles
File: Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean

tactic: simp only [← cancel_epi (K.sc' i j k).pOpcycles,  pOpcycles_opcyclesIsoSc'_inv_assoc,
  p_fromOpcycles, ShortComplex.p_fromOpcycles, shortComplexFunctor'_obj_g]
state_before: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K : HomologicalComplex C c
i j k : ι
hi : c.prev j = i
hk : c.next j = k
inst✝¹ : K.HasHomology j
inst✝ : (K.sc' i j k).HasHomology
⊢ (K.opcyclesIsoSc' i j k hi hk).inv ≫ K.fromOpcycles j k = (K.sc' i j k).fromOpcycles
state_after: no goals
Theorem: Seminorm.uniformity_eq_of_hasBasis
File: Mathlib/Analysis/Seminorm.lean

tactic: rfl
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : SeminormedRing 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
ι : Sort u_13
inst✝² : UniformSpace E
inst✝¹ : UniformAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
p' : ι → Prop
s : ι → Set E
p : Seminorm 𝕜 E
hb : (𝓝 0).HasBasis p' s
h₁ : ∃ r, p.closedBall 0 r ∈ 𝓝 0
h₂ : ∀ (i : ι), p' i → ∃ r > 0, p.ball 0 r ⊆ s i
⊢ 𝓤 E = ⨅ r, ⨅ (_ : r > 0), 𝓟 {x | p (x.1 - x.2) < r}
state_after: no goals
Theorem: Complex.exp_bound_sq
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

tactic: congr
state_before: z✝ y x✝ : ℝ
x z : ℂ
hz : ‖z‖ ≤ 1
⊢ ‖cexp (x + z) - cexp x - z * cexp x‖ = ‖cexp x * (cexp z - 1 - z)‖
state_after: case e_a
z✝ y x✝ : ℝ
x z : ℂ
hz : ‖z‖ ≤ 1
⊢ cexp (x + z) - cexp x - z * cexp x = cexp x * (cexp z - 1 - z)

tactic: rw [exp_add]
state_before: case e_a
z✝ y x✝ : ℝ
x z : ℂ
hz : ‖z‖ ≤ 1
⊢ cexp (x + z) - cexp x - z * cexp x = cexp x * (cexp z - 1 - z)
state_after: case e_a
z✝ y x✝ : ℝ
x z : ℂ
hz : ‖z‖ ≤ 1
⊢ cexp x * cexp z - cexp x - z * cexp x = cexp x * (cexp z - 1 - z)

tactic: ring
state_before: case e_a
z✝ y x✝ : ℝ
x z : ℂ
hz : ‖z‖ ≤ 1
⊢ cexp x * cexp z - cexp x - z * cexp x = cexp x * (cexp z - 1 - z)
state_after: no goals
Theorem: Ideal.span_singleton_mul_left_mono
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: simpa only [mul_comm I, mul_comm J] using span_singleton_mul_right_mono hx
state_before: R : Type u
ι : Type u_1
inst✝¹ : CommSemiring R
I J K L : Ideal R
inst✝ : IsDomain R
x : R
hx : x ≠ 0
⊢ I * span {x} ≤ J * span {x} ↔ I ≤ J
state_after: no goals
Theorem: SemidirectProduct.inl_left_mul_inr_right
File: Mathlib/GroupTheory/SemidirectProduct.lean

tactic: ext <;> simp
state_before: N : Type u_1
G : Type u_2
H : Type u_3
inst✝² : Group N
inst✝¹ : Group G
inst✝ : Group H
φ : G →* MulAut N
x : N ⋊[φ] G
⊢ inl x.left * inr x.right = x
state_after: no goals
Theorem: FractionalIdeal.ideal_factor_ne_zero
File: Mathlib/RingTheory/FractionalIdeal/Operations.lean

tactic: rw [h, Ideal.zero_eq_bot, coeIdeal_bot, MulZeroClass.mul_zero] at haJ
state_before: R✝ : Type u_1
inst✝¹¹ : CommRing R✝
S : Submonoid R✝
P : Type u_2
inst✝¹⁰ : CommRing P
inst✝⁹ : Algebra R✝ P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁸ : CommRing R₁
K✝ : Type u_4
inst✝⁷ : Field K✝
inst✝⁶ : Algebra R₁ K✝
inst✝⁵ : IsFractionRing R₁ K✝
inst✝⁴ : IsDomain R₁
R : Type u_6
inst✝³ : CommRing R
K : Type u_5
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
I : FractionalIdeal R⁰ K
hI : I ≠ 0
a : R
J : Ideal R
haJ : I = spanSingleton R⁰ ((algebraMap R K) a)⁻¹ * ↑J
h : J = 0
⊢ False
state_after: R✝ : Type u_1
inst✝¹¹ : CommRing R✝
S : Submonoid R✝
P : Type u_2
inst✝¹⁰ : CommRing P
inst✝⁹ : Algebra R✝ P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁸ : CommRing R₁
K✝ : Type u_4
inst✝⁷ : Field K✝
inst✝⁶ : Algebra R₁ K✝
inst✝⁵ : IsFractionRing R₁ K✝
inst✝⁴ : IsDomain R₁
R : Type u_6
inst✝³ : CommRing R
K : Type u_5
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
I : FractionalIdeal R⁰ K
hI : I ≠ 0
a : R
J : Ideal R
haJ : I = 0
h : J = 0
⊢ False

tactic: exact hI haJ
state_before: R✝ : Type u_1
inst✝¹¹ : CommRing R✝
S : Submonoid R✝
P : Type u_2
inst✝¹⁰ : CommRing P
inst✝⁹ : Algebra R✝ P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁸ : CommRing R₁
K✝ : Type u_4
inst✝⁷ : Field K✝
inst✝⁶ : Algebra R₁ K✝
inst✝⁵ : IsFractionRing R₁ K✝
inst✝⁴ : IsDomain R₁
R : Type u_6
inst✝³ : CommRing R
K : Type u_5
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
I : FractionalIdeal R⁰ K
hI : I ≠ 0
a : R
J : Ideal R
haJ : I = 0
h : J = 0
⊢ False
state_after: no goals
Theorem: LinearMap.coprod_inl
File: Mathlib/LinearAlgebra/Prod.lean

tactic: ext
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
S : Type u_3
inst✝¹³ : Semiring R
inst✝¹² : Semiring S
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : AddCommMonoid M₅
inst✝⁶ : AddCommMonoid M₆
inst✝⁵ : Module R M
inst✝⁴ : Module R M₂
inst✝³ : Module R M₃
inst✝² : Module R M₄
inst✝¹ : Module R M₅
inst✝ : Module R M₆
f✝ : M →ₗ[R] M₂
f : M →ₗ[R] M₃
g : M₂ →ₗ[R] M₃
⊢ f.coprod g ∘ₗ inl R M M₂ = f
state_after: case h
R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
S : Type u_3
inst✝¹³ : Semiring R
inst✝¹² : Semiring S
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : AddCommMonoid M₅
inst✝⁶ : AddCommMonoid M₆
inst✝⁵ : Module R M
inst✝⁴ : Module R M₂
inst✝³ : Module R M₃
inst✝² : Module R M₄
inst✝¹ : Module R M₅
inst✝ : Module R M₆
f✝ : M →ₗ[R] M₂
f : M →ₗ[R] M₃
g : M₂ →ₗ[R] M₃
x✝ : M
⊢ (f.coprod g ∘ₗ inl R M M₂) x✝ = f x✝

tactic: simp only [map_zero, add_zero, coprod_apply, inl_apply, comp_apply]
state_before: case h
R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
S : Type u_3
inst✝¹³ : Semiring R
inst✝¹² : Semiring S
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : AddCommMonoid M₅
inst✝⁶ : AddCommMonoid M₆
inst✝⁵ : Module R M
inst✝⁴ : Module R M₂
inst✝³ : Module R M₃
inst✝² : Module R M₄
inst✝¹ : Module R M₅
inst✝ : Module R M₆
f✝ : M →ₗ[R] M₂
f : M →ₗ[R] M₃
g : M₂ →ₗ[R] M₃
x✝ : M
⊢ (f.coprod g ∘ₗ inl R M M₂) x✝ = f x✝
state_after: no goals
Theorem: String.contains_iff
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: simp [contains, any_iff]
state_before: s : String
c : Char
⊢ s.contains c = true ↔ c ∈ s.data
state_after: no goals
Theorem: Set.prod_empty
File: Mathlib/Data/Set/Prod.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
⊢ s ×ˢ ∅ = ∅
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
x✝ : α × β
⊢ x✝ ∈ s ×ˢ ∅ ↔ x✝ ∈ ∅

tactic: exact and_false_iff _
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
x✝ : α × β
⊢ x✝ ∈ s ×ˢ ∅ ↔ x✝ ∈ ∅
state_after: no goals
Theorem: Int.card_fintype_Icc
File: Mathlib/Data/Int/Interval.lean

tactic: rw [← card_Icc, Fintype.card_ofFinset]
state_before: a b : ℤ
⊢ Fintype.card ↑(Set.Icc a b) = (b + 1 - a).toNat
state_after: no goals
Theorem: newton_seq_norm_eq
File: Mathlib/NumberTheory/Padics/Hensel.lean

tactic: rw [newton_seq_gen, newton_seq_gen, newton_seq_aux, ih_n]
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
n : ℕ
⊢ ‖newton_seq (n + 1) - newton_seq n‖ =
    ‖Polynomial.eval (newton_seq n) F‖ / ‖Polynomial.eval (newton_seq n) (Polynomial.derivative F)‖
state_after: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
n : ℕ
⊢ ‖↑(let_fun h1 := ⋯;
          let z1 :=
            ⟨↑(Polynomial.eval (↑(newton_seq_aux hnorm n)) F) /
                ↑(Polynomial.eval (↑(newton_seq_aux hnorm n)) (Polynomial.derivative F)),
              h1⟩;
          let z' := ↑(newton_seq_aux hnorm n) - z1;
          ⟨z', ⋯⟩) -
        ↑(newton_seq_aux hnorm n)‖ =
    ‖Polynomial.eval (↑(newton_seq_aux hnorm n)) F‖ /
      ‖Polynomial.eval (↑(newton_seq_aux hnorm n)) (Polynomial.derivative F)‖

tactic: simp [sub_eq_add_neg, add_comm]
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
n : ℕ
⊢ ‖↑(let_fun h1 := ⋯;
          let z1 :=
            ⟨↑(Polynomial.eval (↑(newton_seq_aux hnorm n)) F) /
                ↑(Polynomial.eval (↑(newton_seq_aux hnorm n)) (Polynomial.derivative F)),
              h1⟩;
          let z' := ↑(newton_seq_aux hnorm n) - z1;
          ⟨z', ⋯⟩) -
        ↑(newton_seq_aux hnorm n)‖ =
    ‖Polynomial.eval (↑(newton_seq_aux hnorm n)) F‖ /
      ‖Polynomial.eval (↑(newton_seq_aux hnorm n)) (Polynomial.derivative F)‖
state_after: no goals
Theorem: CategoryTheory.Functor.shiftMap_comp'
File: Mathlib/CategoryTheory/Shift/ShiftSequence.lean

tactic: simp [shiftMap]
state_before: C : Type u_1
A : Type u_2
inst✝⁶ : Category.{u_5, u_1} C
inst✝⁵ : Category.{u_6, u_2} A
F : C ⥤ A
M : Type u_3
inst✝⁴ : AddMonoid M
inst✝³ : HasShift C M
G : Type u_4
inst✝² : AddGroup G
inst✝¹ : HasShift C G
inst✝ : F.ShiftSequence M
X Y Z : C
n : M
f : X ⟶ Y
g : Y ⟶ (shiftFunctor C n).obj Z
a a' : M
ha' : n + a = a'
⊢ F.shiftMap (f ≫ g) a a' ha' = (F.shift a).map f ≫ F.shiftMap g a a' ha'
state_after: no goals
Theorem: WittVector.mul_polyOfInterest_aux4
File: Mathlib/RingTheory/WittVector/MulCoeff.lean

tactic: rw [← add_sub_assoc, eq_sub_iff_add_eq, mul_polyOfInterest_aux2]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
k : Type u_1
inst✝ : CommRing k
n : ℕ
⊢ ↑p ^ (n + 1) * wittMul p (n + 1) =
    -(↑p ^ (n + 1) * X (0, n + 1)) * (↑p ^ (n + 1) * X (1, n + 1)) +
          ↑p ^ (n + 1) * X (0, n + 1) * (rename (Prod.mk 1)) (wittPolynomial p ℤ (n + 1)) +
        ↑p ^ (n + 1) * X (1, n + 1) * (rename (Prod.mk 0)) (wittPolynomial p ℤ (n + 1)) +
      (remainder p n - wittPolyProdRemainder p (n + 1))
state_after: p : ℕ
hp : Fact (Nat.Prime p)
k : Type u_1
inst✝ : CommRing k
n : ℕ
⊢ wittPolyProd p (n + 1) =
    -(↑p ^ (n + 1) * X (0, n + 1)) * (↑p ^ (n + 1) * X (1, n + 1)) +
          ↑p ^ (n + 1) * X (0, n + 1) * (rename (Prod.mk 1)) (wittPolynomial p ℤ (n + 1)) +
        ↑p ^ (n + 1) * X (1, n + 1) * (rename (Prod.mk 0)) (wittPolynomial p ℤ (n + 1)) +
      remainder p n

tactic: exact mul_polyOfInterest_aux3 _ _
state_before: p : ℕ
hp : Fact (Nat.Prime p)
k : Type u_1
inst✝ : CommRing k
n : ℕ
⊢ wittPolyProd p (n + 1) =
    -(↑p ^ (n + 1) * X (0, n + 1)) * (↑p ^ (n + 1) * X (1, n + 1)) +
          ↑p ^ (n + 1) * X (0, n + 1) * (rename (Prod.mk 1)) (wittPolynomial p ℤ (n + 1)) +
        ↑p ^ (n + 1) * X (1, n + 1) * (rename (Prod.mk 0)) (wittPolynomial p ℤ (n + 1)) +
      remainder p n
state_after: no goals
Theorem: SetTheory.PGame.moveLeft_neg'
File: Mathlib/SetTheory/Game/PGame.lean

tactic: cases x
state_before: xl xr : Type u
x : PGame
i : (-x).LeftMoves
⊢ (-x).moveLeft i = -x.moveRight (toLeftMovesNeg.symm i)
state_after: case mk
xl xr : Type u
α✝ β✝ : Type u_1
a✝¹ : α✝ → PGame
a✝ : β✝ → PGame
i : (-mk α✝ β✝ a✝¹ a✝).LeftMoves
⊢ (-mk α✝ β✝ a✝¹ a✝).moveLeft i = -(mk α✝ β✝ a✝¹ a✝).moveRight (toLeftMovesNeg.symm i)

tactic: rfl
state_before: case mk
xl xr : Type u
α✝ β✝ : Type u_1
a✝¹ : α✝ → PGame
a✝ : β✝ → PGame
i : (-mk α✝ β✝ a✝¹ a✝).LeftMoves
⊢ (-mk α✝ β✝ a✝¹ a✝).moveLeft i = -(mk α✝ β✝ a✝¹ a✝).moveRight (toLeftMovesNeg.symm i)
state_after: no goals
Theorem: IntermediateField.eq_bot_of_isPurelyInseparable_of_isSeparable
File: Mathlib/FieldTheory/PurelyInseparable.lean

tactic: obtain ⟨y, hy⟩ := IsPurelyInseparable.surjective_algebraMap_of_isSeparable F L ⟨x, hx⟩
state_before: F : Type u
E : Type v
inst✝⁶ : Field F
inst✝⁵ : Field E
inst✝⁴ : Algebra F E
K : Type w
inst✝³ : Field K
inst✝² : Algebra F K
L : IntermediateField F E
inst✝¹ : IsPurelyInseparable F ↥L
inst✝ : IsSeparable F ↥L
x : E
hx : x ∈ L
⊢ x ∈ ⊥
state_after: case intro
F : Type u
E : Type v
inst✝⁶ : Field F
inst✝⁵ : Field E
inst✝⁴ : Algebra F E
K : Type w
inst✝³ : Field K
inst✝² : Algebra F K
L : IntermediateField F E
inst✝¹ : IsPurelyInseparable F ↥L
inst✝ : IsSeparable F ↥L
x : E
hx : x ∈ L
y : F
hy : (algebraMap F ↥L) y = ⟨x, hx⟩
⊢ x ∈ ⊥

tactic: exact ⟨y, congr_arg (algebraMap L E) hy⟩
state_before: case intro
F : Type u
E : Type v
inst✝⁶ : Field F
inst✝⁵ : Field E
inst✝⁴ : Algebra F E
K : Type w
inst✝³ : Field K
inst✝² : Algebra F K
L : IntermediateField F E
inst✝¹ : IsPurelyInseparable F ↥L
inst✝ : IsSeparable F ↥L
x : E
hx : x ∈ L
y : F
hy : (algebraMap F ↥L) y = ⟨x, hx⟩
⊢ x ∈ ⊥
state_after: no goals
Theorem: Set.Nontrivial.exists_ne
File: Mathlib/Data/Set/Subsingleton.lean

tactic: by_contra! H
state_before: α : Type u
a : α
s t : Set α
hs : s.Nontrivial
z : α
⊢ ∃ x ∈ s, x ≠ z
state_after: α : Type u
a : α
s t : Set α
hs : s.Nontrivial
z : α
H : ∀ x ∈ s, x = z
⊢ False

tactic: rcases hs with ⟨x, hx, y, hy, hxy⟩
state_before: α : Type u
a : α
s t : Set α
hs : s.Nontrivial
z : α
H : ∀ x ∈ s, x = z
⊢ False
state_after: case intro.intro.intro.intro
α : Type u
a : α
s t : Set α
z : α
H : ∀ x ∈ s, x = z
x : α
hx : x ∈ s
y : α
hy : y ∈ s
hxy : x ≠ y
⊢ False

tactic: rw [H x hx, H y hy] at hxy
state_before: case intro.intro.intro.intro
α : Type u
a : α
s t : Set α
z : α
H : ∀ x ∈ s, x = z
x : α
hx : x ∈ s
y : α
hy : y ∈ s
hxy : x ≠ y
⊢ False
state_after: case intro.intro.intro.intro
α : Type u
a : α
s t : Set α
z : α
H : ∀ x ∈ s, x = z
x : α
hx : x ∈ s
y : α
hy : y ∈ s
hxy : z ≠ z
⊢ False

tactic: exact hxy rfl
state_before: case intro.intro.intro.intro
α : Type u
a : α
s t : Set α
z : α
H : ∀ x ∈ s, x = z
x : α
hx : x ∈ s
y : α
hy : y ∈ s
hxy : z ≠ z
⊢ False
state_after: no goals
Theorem: MeasureTheory.Measure.map_zero
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: by_cases hf : AEMeasurable f (0 : Measure α) <;> simp [map, hf]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
⊢ map f 0 = 0
state_after: no goals
Theorem: MeasureTheory.Submartingale.bddAbove_iff_exists_tendsto_aux
File: Mathlib/Probability/Martingale/BorelCantelli.lean

tactic: filter_upwards [hf.exists_tendsto_of_abs_bddAbove_aux hf0 hbdd] with ω hω using
  ⟨hω, fun ⟨c, hc⟩ => hc.bddAbove_range⟩
state_before: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω : Ω
r : ℝ
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
hf : Submartingale f ℱ μ
hf0 : f 0 = 0
hbdd : ∀ᵐ (ω : Ω) ∂μ, ∀ (i : ℕ), |f (i + 1) ω - f i ω| ≤ ↑R
⊢ ∀ᵐ (ω : Ω) ∂μ, BddAbove (Set.range fun n => f n ω) ↔ ∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c)
state_after: no goals
Theorem: finprod_mem_range'
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: rw [← image_univ, finprod_mem_image', finprod_mem_univ]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g✝ : α → M
a b : α
s t : Set α
g : β → α
hg : InjOn g (mulSupport (f ∘ g))
⊢ ∏ᶠ (i : α) (_ : i ∈ range g), f i = ∏ᶠ (j : β), f (g j)
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g✝ : α → M
a b : α
s t : Set α
g : β → α
hg : InjOn g (mulSupport (f ∘ g))
⊢ InjOn g (univ ∩ mulSupport (f ∘ g))

tactic: rwa [univ_inter]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g✝ : α → M
a b : α
s t : Set α
g : β → α
hg : InjOn g (mulSupport (f ∘ g))
⊢ InjOn g (univ ∩ mulSupport (f ∘ g))
state_after: no goals
Theorem: Homeomorph.isBigO_congr
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsBigO_def]
state_before: α : Type u_1
β : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
E : Type u_3
inst✝¹ : Norm E
F : Type u_4
inst✝ : Norm F
e : α ≃ₜ β
b : β
f : β → E
g : β → F
⊢ f =O[𝓝 b] g ↔ (f ∘ ⇑e) =O[𝓝 (e.symm b)] (g ∘ ⇑e)
state_after: α : Type u_1
β : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
E : Type u_3
inst✝¹ : Norm E
F : Type u_4
inst✝ : Norm F
e : α ≃ₜ β
b : β
f : β → E
g : β → F
⊢ (∃ c, IsBigOWith c (𝓝 b) f g) ↔ ∃ c, IsBigOWith c (𝓝 (e.symm b)) (f ∘ ⇑e) (g ∘ ⇑e)

tactic: exact exists_congr fun C => e.isBigOWith_congr
state_before: α : Type u_1
β : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
E : Type u_3
inst✝¹ : Norm E
F : Type u_4
inst✝ : Norm F
e : α ≃ₜ β
b : β
f : β → E
g : β → F
⊢ (∃ c, IsBigOWith c (𝓝 b) f g) ↔ ∃ c, IsBigOWith c (𝓝 (e.symm b)) (f ∘ ⇑e) (g ∘ ⇑e)
state_after: no goals
Theorem: Metric.ne_of_mem_sphere
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: simpa using hε.symm
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
h : y ∈ sphere x ε
hε : ε ≠ 0
⊢ x ∉ sphere x ε
state_after: no goals
Theorem: MvPolynomial.totalDegree_neg
File: Mathlib/Algebra/MvPolynomial/CommRing.lean

tactic: simp only [totalDegree, support_neg]
state_before: R : Type u
S : Type v
σ : Type u_1
a✝ a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommRing R
p q a : MvPolynomial σ R
⊢ (-a).totalDegree = a.totalDegree
state_after: no goals