1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Iio_mem_nhdsSet_Ico
File: Mathlib/Topology/Order/NhdsSet.lean

tactic: simpa
state_before: α : Type u_1
inst✝² : LinearOrder α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
a b c d : α
h : b ≤ c
⊢ Iio c ∈ 𝓝ˢ (Iio b)
state_after: no goals
Theorem: IsometryEquiv.image_ball
File: Mathlib/Topology/MetricSpace/Isometry.lean

tactic: rw [← h.preimage_symm, h.symm.preimage_ball, symm_symm]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
h✝ h : α ≃ᵢ β
x : α
r : ℝ
⊢ ⇑h '' Metric.ball x r = Metric.ball (h x) r
state_after: no goals
Theorem: FractionalIdeal.coe_natCast
File: Mathlib/RingTheory/FractionalIdeal/Basic.lean

tactic: induction n <;> simp [*, Nat.unaryCast]
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
n : ℕ
⊢ ↑n.unaryCast = ↑n
state_after: no goals
Theorem: RelEmbedding.inter_preimage_maximals_eq_of_subset
File: Mathlib/Order/Minimal.lean

tactic: rw [inter_preimage_maximals_eq_of_rel_iff_rel_on_of_subset _ h]
state_before: α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a b : α
inst✝ : PartialOrder α
f✝ : α → β
r : α → α → Prop
s : β → β → Prop
y : Set β
x : Set α
f : r ↪r s
h : y ⊆ ⇑f '' x
⊢ x ∩ ⇑f ⁻¹' maximals s y = maximals r (x ∩ ⇑f ⁻¹' y)
state_after: α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a b : α
inst✝ : PartialOrder α
f✝ : α → β
r : α → α → Prop
s : β → β → Prop
y : Set β
x : Set α
f : r ↪r s
h : y ⊆ ⇑f '' x
⊢ ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))

tactic: simp [f.map_rel_iff]
state_before: α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a b : α
inst✝ : PartialOrder α
f✝ : α → β
r : α → α → Prop
s : β → β → Prop
y : Set β
x : Set α
f : r ↪r s
h : y ⊆ ⇑f '' x
⊢ ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
state_after: no goals
Theorem: CategoryTheory.ComposableArrows.Exact.δ₀
File: Mathlib/Algebra/Homology/ExactSequence.lean

tactic: rw [exact_iff_δ₀] at hS
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
n : ℕ
S✝ : ComposableArrows C n
S : ComposableArrows C (n + 2)
hS : S.Exact
⊢ S.δ₀.Exact
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
n : ℕ
S✝ : ComposableArrows C n
S : ComposableArrows C (n + 2)
hS : (mk₂ (S.map' 0 1 ⋯ ⋯) (S.map' 1 2 ⋯ ⋯)).Exact ∧ S.δ₀.Exact
⊢ S.δ₀.Exact

tactic: exact hS.2
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
n : ℕ
S✝ : ComposableArrows C n
S : ComposableArrows C (n + 2)
hS : (mk₂ (S.map' 0 1 ⋯ ⋯) (S.map' 1 2 ⋯ ⋯)).Exact ∧ S.δ₀.Exact
⊢ S.δ₀.Exact
state_after: no goals
Theorem: toIcoDiv_zero_one
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simp [toIcoDiv_eq_floor]
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
b : α
⊢ toIcoDiv ⋯ 0 b = ⌊b⌋
state_after: no goals
Theorem: Orientation.det_rotation
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean

tactic: haveI : Nontrivial V :=
  FiniteDimensional.nontrivial_of_finrank_eq_succ (@Fact.out (finrank ℝ V = 2) _)
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
θ : Real.Angle
⊢ LinearMap.det ↑(o.rotation θ).toLinearEquiv = 1
state_after: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
θ : Real.Angle
this : Nontrivial V
⊢ LinearMap.det ↑(o.rotation θ).toLinearEquiv = 1

tactic: obtain ⟨x, hx⟩ : ∃ x, x ≠ (0 : V) := exists_ne (0 : V)
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
θ : Real.Angle
this : Nontrivial V
⊢ LinearMap.det ↑(o.rotation θ).toLinearEquiv = 1
state_after: case intro
V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
θ : Real.Angle
this : Nontrivial V
x : V
hx : x ≠ 0
⊢ LinearMap.det ↑(o.rotation θ).toLinearEquiv = 1

tactic: rw [o.rotation_eq_matrix_toLin θ hx]
state_before: case intro
V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
θ : Real.Angle
this : Nontrivial V
x : V
hx : x ≠ 0
⊢ LinearMap.det ↑(o.rotation θ).toLinearEquiv = 1
state_after: case intro
V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
θ : Real.Angle
this : Nontrivial V
x : V
hx : x ≠ 0
⊢ LinearMap.det
      ((Matrix.toLin (o.basisRightAngleRotation x hx) (o.basisRightAngleRotation x hx))
        (Matrix.of ![![θ.cos, -θ.sin], ![θ.sin, θ.cos]])) =
    1

tactic: simpa [sq] using θ.cos_sq_add_sin_sq
state_before: case intro
V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
θ : Real.Angle
this : Nontrivial V
x : V
hx : x ≠ 0
⊢ LinearMap.det
      ((Matrix.toLin (o.basisRightAngleRotation x hx) (o.basisRightAngleRotation x hx))
        (Matrix.of ![![θ.cos, -θ.sin], ![θ.sin, θ.cos]])) =
    1
state_after: no goals
Theorem: ContDiffOn.continuousOn_iteratedDerivWithin
File: Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean

tactic: simpa only [iteratedDerivWithin_eq_equiv_comp, LinearIsometryEquiv.comp_continuousOn_iff] using
  h.continuousOn_iteratedFDerivWithin hmn hs
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n✝ : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
n : ℕ∞
m : ℕ
h : ContDiffOn 𝕜 n f s
hmn : ↑m ≤ n
hs : UniqueDiffOn 𝕜 s
⊢ ContinuousOn (iteratedDerivWithin m f s) s
state_after: no goals
Theorem: TrivSqZeroExt.mul_inl_eq_op_smul
File: Mathlib/Algebra/TrivSqZeroExt.lean

tactic: dsimp
state_before: R : Type u
M : Type v
inst✝³ : Semiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : Module Rᵐᵒᵖ M
x : tsze R M
r : R
⊢ (x * inl r).snd = (x <• r).snd
state_after: R : Type u
M : Type v
inst✝³ : Semiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : Module Rᵐᵒᵖ M
x : tsze R M
r : R
⊢ x.fst •> 0 + x.snd <• r = x.snd <• r

tactic: rw [smul_zero, zero_add]
state_before: R : Type u
M : Type v
inst✝³ : Semiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : Module Rᵐᵒᵖ M
x : tsze R M
r : R
⊢ x.fst •> 0 + x.snd <• r = x.snd <• r
state_after: no goals
Theorem: ModularGroup.T_pow_mul_apply_one
File: Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean

tactic: ext j
state_before: n : ℤ
g : SL(2, ℤ)
⊢ ↑(T ^ n * g) 1 = ↑g 1
state_after: case h
n : ℤ
g : SL(2, ℤ)
j : Fin 2
⊢ ↑(T ^ n * g) 1 j = ↑g 1 j

tactic: simp [coe_T_zpow, Matrix.vecMul, Matrix.dotProduct, Fin.sum_univ_succ, vecTail]
state_before: case h
n : ℤ
g : SL(2, ℤ)
j : Fin 2
⊢ ↑(T ^ n * g) 1 j = ↑g 1 j
state_after: no goals
Theorem: SetTheory.PGame.lf_iff_lt_or_fuzzy
File: Mathlib/SetTheory/Game/PGame.lean

tactic: simp only [lt_iff_le_and_lf, Fuzzy, ← PGame.not_le]
state_before: xl xr : Type u
x y : PGame
⊢ x ⧏ y ↔ x < y ∨ x ‖ y
state_after: xl xr : Type u
x y : PGame
⊢ ¬y ≤ x ↔ x ≤ y ∧ ¬y ≤ x ∨ ¬y ≤ x ∧ ¬x ≤ y

tactic: tauto
state_before: xl xr : Type u
x y : PGame
⊢ ¬y ≤ x ↔ x ≤ y ∧ ¬y ≤ x ∨ ¬y ≤ x ∧ ¬x ≤ y
state_after: no goals
Theorem: Polynomial.support_ofFinsupp
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: rw [support]
state_before: R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p✝ q : R[X]
p : R[ℕ]
⊢ { toFinsupp := p }.support = p.support
state_after: no goals
Theorem: Prod.noncompactSpace_iff
File: Mathlib/Topology/Compactness/Compact.lean

tactic: simp [← Filter.cocompact_neBot_iff, ← Filter.coprod_cocompact, Filter.coprod_neBot_iff]
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ NoncompactSpace (X × Y) ↔ NoncompactSpace X ∧ Nonempty Y ∨ Nonempty X ∧ NoncompactSpace Y
state_after: no goals
Theorem: Int.even_coe_nat
File: Mathlib/Algebra/Group/Int.lean

tactic: rw_mod_cast [even_iff, Nat.even_iff]
state_before: u v m n✝ : ℤ
n : ℕ
⊢ Even ↑n ↔ Even n
state_after: no goals
Theorem: CategoryTheory.SmallObject.functorMapSrc_functorObjTop
File: Mathlib/CategoryTheory/SmallObject/Construction.lean

tactic: ext ⟨i, t, b, w⟩
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
I : Type w
A B : I → C
f : (i : I) → A i ⟶ B i
S X Y Z : C
πX : X ⟶ S
πY : Y ⟶ S
φ : X ⟶ Y
hφ : φ ≫ πY = πX
inst✝³ : HasColimitsOfShape (Discrete (FunctorObjIndex f πX)) C
inst✝² : HasColimitsOfShape (Discrete (FunctorObjIndex f πY)) C
inst✝¹ : HasPushout (functorObjTop f πX) (functorObjLeft f πX)
inst✝ : HasPushout (functorObjTop f πY) (functorObjLeft f πY)
⊢ functorMapSrc f πX πY φ hφ ≫ functorObjTop f πY = functorObjTop f πX ≫ φ
state_after: case h.mk
C : Type u
inst✝⁴ : Category.{v, u} C
I : Type w
A B : I → C
f : (i : I) → A i ⟶ B i
S X Y Z : C
πX : X ⟶ S
πY : Y ⟶ S
φ : X ⟶ Y
hφ : φ ≫ πY = πX
inst✝³ : HasColimitsOfShape (Discrete (FunctorObjIndex f πX)) C
inst✝² : HasColimitsOfShape (Discrete (FunctorObjIndex f πY)) C
inst✝¹ : HasPushout (functorObjTop f πX) (functorObjLeft f πX)
inst✝ : HasPushout (functorObjTop f πY) (functorObjLeft f πY)
i : I
t : A i ⟶ X
b : B i ⟶ S
w : t ≫ πX = f i ≫ b
⊢ Sigma.ι (functorObjSrcFamily f πX) { i := i, t := t, b := b, w := w } ≫
      functorMapSrc f πX πY φ hφ ≫ functorObjTop f πY =
    Sigma.ι (functorObjSrcFamily f πX) { i := i, t := t, b := b, w := w } ≫ functorObjTop f πX ≫ φ

tactic: simp [ι_functorMapSrc_assoc f πX πY φ hφ i t b w _ rfl]
state_before: case h.mk
C : Type u
inst✝⁴ : Category.{v, u} C
I : Type w
A B : I → C
f : (i : I) → A i ⟶ B i
S X Y Z : C
πX : X ⟶ S
πY : Y ⟶ S
φ : X ⟶ Y
hφ : φ ≫ πY = πX
inst✝³ : HasColimitsOfShape (Discrete (FunctorObjIndex f πX)) C
inst✝² : HasColimitsOfShape (Discrete (FunctorObjIndex f πY)) C
inst✝¹ : HasPushout (functorObjTop f πX) (functorObjLeft f πX)
inst✝ : HasPushout (functorObjTop f πY) (functorObjLeft f πY)
i : I
t : A i ⟶ X
b : B i ⟶ S
w : t ≫ πX = f i ≫ b
⊢ Sigma.ι (functorObjSrcFamily f πX) { i := i, t := t, b := b, w := w } ≫
      functorMapSrc f πX πY φ hφ ≫ functorObjTop f πY =
    Sigma.ι (functorObjSrcFamily f πX) { i := i, t := t, b := b, w := w } ≫ functorObjTop f πX ≫ φ
state_after: no goals
Theorem: mem_extChartAt_source
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: simp only [extChartAt_source, mem_chart_source]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x : M
⊢ x ∈ (extChartAt I x).source
state_after: no goals
Theorem: Matrix.transpose_map
File: Mathlib/Data/Matrix/Basic.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
f : α → β
M : Matrix m n α
⊢ Mᵀ.map f = (M.map f)ᵀ
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
f : α → β
M : Matrix m n α
i✝ : n
j✝ : m
⊢ Mᵀ.map f i✝ j✝ = (M.map f)ᵀ i✝ j✝

tactic: rfl
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
f : α → β
M : Matrix m n α
i✝ : n
j✝ : m
⊢ Mᵀ.map f i✝ j✝ = (M.map f)ᵀ i✝ j✝
state_after: no goals
Theorem: Metric.cthickening_eq_iInter_cthickening
File: Mathlib/Topology/MetricSpace/Thickening.lean

tactic: apply cthickening_eq_iInter_cthickening' (Ioi δ) rfl.subset
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s t : Set α
x : α
δ : ℝ
E : Set α
⊢ cthickening δ E = ⋂ ε, ⋂ (_ : δ < ε), cthickening ε E
state_after: case hs
ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s t : Set α
x : α
δ : ℝ
E : Set α
⊢ ∀ (ε : ℝ), δ < ε → (Ioi δ ∩ Ioc δ ε).Nonempty

tactic: simp_rw [inter_eq_right.mpr Ioc_subset_Ioi_self]
state_before: case hs
ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s t : Set α
x : α
δ : ℝ
E : Set α
⊢ ∀ (ε : ℝ), δ < ε → (Ioi δ ∩ Ioc δ ε).Nonempty
state_after: case hs
ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s t : Set α
x : α
δ : ℝ
E : Set α
⊢ ∀ (ε : ℝ), δ < ε → (Ioc δ ε).Nonempty

tactic: exact fun _ hε => nonempty_Ioc.mpr hε
state_before: case hs
ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s t : Set α
x : α
δ : ℝ
E : Set α
⊢ ∀ (ε : ℝ), δ < ε → (Ioc δ ε).Nonempty
state_after: no goals
Theorem: Rat.divInt_neg_one_one
File: Mathlib/Data/Rat/Defs.lean

tactic: rw [divInt_one]
state_before: q a b c : ℚ
⊢ -1 /. 1 = -1
state_after: q a b c : ℚ
⊢ ↑(-1) = -1

tactic: rfl
state_before: q a b c : ℚ
⊢ ↑(-1) = -1
state_after: no goals
Theorem: LiouvilleWith.int_mul_iff
File: Mathlib/NumberTheory/Liouville/LiouvilleWith.lean

tactic: rw [mul_comm, mul_int_iff hm]
state_before: p q x y : ℝ
r : ℚ
m : ℤ
n : ℕ
hm : m ≠ 0
⊢ LiouvilleWith p (↑m * x) ↔ LiouvilleWith p x
state_after: no goals
Theorem: Real.le_rpow_add
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rcases le_iff_eq_or_lt.1 hx with (H | pos)
state_before: x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
⊢ x ^ y * x ^ z ≤ x ^ (y + z)
state_after: case inl
x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
H : 0 = x
⊢ x ^ y * x ^ z ≤ x ^ (y + z)

case inr
x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
pos : 0 < x
⊢ x ^ y * x ^ z ≤ x ^ (y + z)

tactic: by_cases h : y + z = 0
state_before: case inl
x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
H : 0 = x
⊢ x ^ y * x ^ z ≤ x ^ (y + z)
state_after: case pos
x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
H : 0 = x
h : y + z = 0
⊢ x ^ y * x ^ z ≤ x ^ (y + z)

case neg
x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
H : 0 = x
h : ¬y + z = 0
⊢ x ^ y * x ^ z ≤ x ^ (y + z)

tactic: simp only [H.symm, h, rpow_zero]
state_before: case pos
x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
H : 0 = x
h : y + z = 0
⊢ x ^ y * x ^ z ≤ x ^ (y + z)
state_after: case pos
x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
H : 0 = x
h : y + z = 0
⊢ 0 ^ y * 0 ^ z ≤ 1

tactic: calc
  (0 : ℝ) ^ y * 0 ^ z ≤ 1 * 1 :=
    mul_le_mul (zero_rpow_le_one y) (zero_rpow_le_one z) (zero_rpow_nonneg z) zero_le_one
  _ = 1 := by simp
state_before: case pos
x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
H : 0 = x
h : y + z = 0
⊢ 0 ^ y * 0 ^ z ≤ 1
state_after: no goals

tactic: simp
state_before: x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
H : 0 = x
h : y + z = 0
⊢ 1 * 1 = 1
state_after: no goals

tactic: simp [rpow_add', ← H, h]
state_before: case neg
x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
H : 0 = x
h : ¬y + z = 0
⊢ x ^ y * x ^ z ≤ x ^ (y + z)
state_after: no goals

tactic: simp [rpow_add pos]
state_before: case inr
x✝¹ y✝¹ z✝¹ w x✝ y✝ z✝ x : ℝ
hx : 0 ≤ x
y z : ℝ
pos : 0 < x
⊢ x ^ y * x ^ z ≤ x ^ (y + z)
state_after: no goals
Theorem: Nat.Prime.multiplicity_choose
File: Mathlib/Data/Nat/Multiplicity.lean

tactic: have := Nat.sub_add_cancel hkn
state_before: p n k b : ℕ
hp : Prime p
hkn : k ≤ n
hnb : log p n < b
⊢ multiplicity p (n.choose k) = ↑(filter (fun i => p ^ i ≤ k % p ^ i + (n - k) % p ^ i) (Ico 1 b)).card
state_after: p n k b : ℕ
hp : Prime p
hkn : k ≤ n
hnb : log p n < b
this : n - k + k = n
⊢ multiplicity p (n.choose k) = ↑(filter (fun i => p ^ i ≤ k % p ^ i + (n - k) % p ^ i) (Ico 1 b)).card

tactic: convert @multiplicity_choose' p (n - k) k b hp _
state_before: p n k b : ℕ
hp : Prime p
hkn : k ≤ n
hnb : log p n < b
this : n - k + k = n
⊢ multiplicity p (n.choose k) = ↑(filter (fun i => p ^ i ≤ k % p ^ i + (n - k) % p ^ i) (Ico 1 b)).card
state_after: case h.e'_2.h.e'_5.h.e'_1
p n k b : ℕ
hp : Prime p
hkn : k ≤ n
hnb : log p n < b
this : n - k + k = n
⊢ n = n - k + k

p n k b : ℕ
hp : Prime p
hkn : k ≤ n
hnb : log p n < b
this : n - k + k = n
⊢ log p (n - k + k) < b

tactic: exact this.symm ▸ hnb
state_before: p n k b : ℕ
hp : Prime p
hkn : k ≤ n
hnb : log p n < b
this : n - k + k = n
⊢ log p (n - k + k) < b
state_after: no goals

tactic: rw [this]
state_before: case h.e'_2.h.e'_5.h.e'_1
p n k b : ℕ
hp : Prime p
hkn : k ≤ n
hnb : log p n < b
this : n - k + k = n
⊢ n = n - k + k
state_after: no goals
Theorem: CategoryTheory.ShortComplex.opcyclesMap'_add
File: Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean

tactic: have γ : RightHomologyMapData φ h₁ h₂ := default
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
⊢ opcyclesMap' (φ + φ') h₁ h₂ = opcyclesMap' φ h₁ h₂ + opcyclesMap' φ' h₁ h₂
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
γ : RightHomologyMapData φ h₁ h₂
⊢ opcyclesMap' (φ + φ') h₁ h₂ = opcyclesMap' φ h₁ h₂ + opcyclesMap' φ' h₁ h₂

tactic: have γ' : RightHomologyMapData φ' h₁ h₂ := default
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
γ : RightHomologyMapData φ h₁ h₂
⊢ opcyclesMap' (φ + φ') h₁ h₂ = opcyclesMap' φ h₁ h₂ + opcyclesMap' φ' h₁ h₂
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
γ : RightHomologyMapData φ h₁ h₂
γ' : RightHomologyMapData φ' h₁ h₂
⊢ opcyclesMap' (φ + φ') h₁ h₂ = opcyclesMap' φ h₁ h₂ + opcyclesMap' φ' h₁ h₂

tactic: simp only [γ.opcyclesMap'_eq, γ'.opcyclesMap'_eq,
  (γ.add γ').opcyclesMap'_eq, RightHomologyMapData.add_φQ]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
γ : RightHomologyMapData φ h₁ h₂
γ' : RightHomologyMapData φ' h₁ h₂
⊢ opcyclesMap' (φ + φ') h₁ h₂ = opcyclesMap' φ h₁ h₂ + opcyclesMap' φ' h₁ h₂
state_after: no goals
Theorem: FiniteField.exists_nonsquare
File: Mathlib/FieldTheory/Finite/Basic.lean

tactic: have h : ¬Function.Injective fun x : F ↦ x * x := fun h ↦
  h.ne (Ring.neg_one_ne_one_of_char_ne_two hF) <| by simp
state_before: K : Type u_1
R : Type u_2
F : Type u_3
inst✝¹ : Field F
inst✝ : Finite F
hF : ringChar F ≠ 2
⊢ ∃ a, ¬IsSquare a
state_after: K : Type u_1
R : Type u_2
F : Type u_3
inst✝¹ : Field F
inst✝ : Finite F
hF : ringChar F ≠ 2
h : ¬Function.Injective fun x => x * x
⊢ ∃ a, ¬IsSquare a

tactic: simpa [Finite.injective_iff_surjective, Function.Surjective, IsSquare, eq_comm] using h
state_before: K : Type u_1
R : Type u_2
F : Type u_3
inst✝¹ : Field F
inst✝ : Finite F
hF : ringChar F ≠ 2
h : ¬Function.Injective fun x => x * x
⊢ ∃ a, ¬IsSquare a
state_after: no goals

tactic: simp
state_before: K : Type u_1
R : Type u_2
F : Type u_3
inst✝¹ : Field F
inst✝ : Finite F
hF : ringChar F ≠ 2
h : Function.Injective fun x => x * x
⊢ -1 * -1 = 1 * 1
state_after: no goals
Theorem: Ordnode.Sized.dual
File: Mathlib/Data/Ordmap/Ordset.lean

tactic: simp [size_dual, add_comm]
state_before: α : Type u_1
l : Ordnode α
x✝ : α
r : Ordnode α
sl : l.Sized
sr : r.Sized
⊢ l.size + r.size + 1 = r.dual.size + l.dual.size + 1
state_after: no goals
Theorem: BialgHom.toAlgHom_toLinearMap
File: Mathlib/RingTheory/Bialgebra/Hom.lean

tactic: rfl
state_before: R : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A
inst✝¹⁰ : Algebra R A
inst✝⁹ : Semiring B
inst✝⁸ : Algebra R B
inst✝⁷ : Semiring C
inst✝⁶ : Algebra R C
inst✝⁵ : Semiring D
inst✝⁴ : Algebra R D
inst✝³ : CoalgebraStruct R A
inst✝² : CoalgebraStruct R B
inst✝¹ : CoalgebraStruct R C
inst✝ : CoalgebraStruct R D
f : A →ₐc[R] B
⊢ (↑↑f).toLinearMap = ↑f
state_after: no goals
Theorem: Fin.univ_map_def
File: Mathlib/Data/Fintype/Basic.lean

tactic: simp [Finset.map]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
n : ℕ
f : Fin n ↪ α
⊢ map f univ = { val := ↑(List.ofFn ⇑f), nodup := ⋯ }
state_after: no goals
Theorem: Int.bit0_ne_bit1
File: Mathlib/Data/Int/Bitwise.lean

tactic: simp
state_before: m n : ℤ
⊢ ¬(bit0 m).bodd = (bit1 n).bodd
state_after: no goals
Theorem: WithTop.map_sub
File: Mathlib/Algebra/Order/Sub/WithTop.lean

tactic: simp only [sub_top, map_coe, h₀, map_top]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Sub α
inst✝² : Bot α
inst✝¹ : Sub β
inst✝ : Bot β
f : α → β
h : ∀ (x y : α), f (x - y) = f x - f y
h₀ : f ⊥ = ⊥
x✝ : WithTop α
⊢ map f (x✝ - ⊤) = map f x✝ - map f ⊤
state_after: no goals

tactic: simp only [← coe_sub, map_coe, h]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Sub α
inst✝² : Bot α
inst✝¹ : Sub β
inst✝ : Bot β
f : α → β
h : ∀ (x y : α), f (x - y) = f x - f y
h₀ : f ⊥ = ⊥
x y : α
⊢ map f (↑x - ↑y) = map f ↑x - map f ↑y
state_after: no goals
Theorem: one_lt_sq_iff_one_lt_abs
File: Mathlib/Algebra/Order/Ring/Abs.lean

tactic: simpa only [one_pow, abs_one] using @sq_lt_sq _ _ 1 a
state_before: α : Type u_1
inst✝ : LinearOrderedRing α
n : ℕ
a✝ b c a : α
⊢ 1 < a ^ 2 ↔ 1 < |a|
state_after: no goals
Theorem: UpperSet.one_mul
File: Mathlib/Algebra/Order/UpperLower.lean

tactic: rw [← smul_eq_mul, ← Set.iUnion_smul_set]
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
s✝ t : Set α
a : α
s : UpperSet α
⊢ Set.Ici 1 * ↑s ⊆ ↑s
state_after: α : Type u_1
inst✝ : OrderedCommGroup α
s✝ t : Set α
a : α
s : UpperSet α
⊢ ⋃ a ∈ Set.Ici 1, a • ↑s ⊆ ↑s

tactic: exact Set.iUnion₂_subset fun _ ↦ s.upper.smul_subset
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
s✝ t : Set α
a : α
s : UpperSet α
⊢ ⋃ a ∈ Set.Ici 1, a • ↑s ⊆ ↑s
state_after: no goals
Theorem: DirichletCharacter.conductor_le_conductor_mem_conductorSet
File: Mathlib/NumberTheory/DirichletCharacter/Basic.lean

tactic: refine Nat.sInf_le <| (mem_conductorSet_iff χ).mpr <|
  ⟨dvd_trans (conductor_dvd_level _) hd.1,
   (factorsThrough_conductor (Classical.choose hd.2)).2.choose, ?_⟩
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
d : ℕ
hd : d ∈ χ.conductorSet
⊢ χ.conductor ≤ (Classical.choose ⋯).conductor
state_after: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
d : ℕ
hd : d ∈ χ.conductorSet
⊢ χ = (changeLevel ⋯) ⋯.choose

tactic: rw [changeLevel_trans _ (conductor_dvd_level _) hd.dvd,
    ← (factorsThrough_conductor (Classical.choose hd.2)).2.choose_spec]
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
d : ℕ
hd : d ∈ χ.conductorSet
⊢ χ = (changeLevel ⋯) ⋯.choose
state_after: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
d : ℕ
hd : d ∈ χ.conductorSet
⊢ χ = (changeLevel ⋯) (Classical.choose ⋯)

tactic: exact hd.eq_changeLevel
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
d : ℕ
hd : d ∈ χ.conductorSet
⊢ χ = (changeLevel ⋯) (Classical.choose ⋯)
state_after: no goals