1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: linearIndependent_algHom_toLinearMap'
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: apply (linearIndependent_algHom_toLinearMap K M L).restrict_scalars
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹³ : Ring R
inst✝¹² : AddCommGroup M✝
inst✝¹¹ : AddCommGroup M'
inst✝¹⁰ : AddCommGroup M''
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'
inst✝⁷ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁶ : CommRing K
inst✝⁵ : Semiring M
inst✝⁴ : Algebra K M
inst✝³ : CommRing L
inst✝² : IsDomain L
inst✝¹ : Algebra K L
inst✝ : NoZeroSMulDivisors K L
⊢ LinearIndependent K AlgHom.toLinearMap
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹³ : Ring R
inst✝¹² : AddCommGroup M✝
inst✝¹¹ : AddCommGroup M'
inst✝¹⁰ : AddCommGroup M''
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'
inst✝⁷ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁶ : CommRing K
inst✝⁵ : Semiring M
inst✝⁴ : Algebra K M
inst✝³ : CommRing L
inst✝² : IsDomain L
inst✝¹ : Algebra K L
inst✝ : NoZeroSMulDivisors K L
⊢ Injective fun r => r • 1

tactic: simp_rw [Algebra.smul_def, mul_one]
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹³ : Ring R
inst✝¹² : AddCommGroup M✝
inst✝¹¹ : AddCommGroup M'
inst✝¹⁰ : AddCommGroup M''
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'
inst✝⁷ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁶ : CommRing K
inst✝⁵ : Semiring M
inst✝⁴ : Algebra K M
inst✝³ : CommRing L
inst✝² : IsDomain L
inst✝¹ : Algebra K L
inst✝ : NoZeroSMulDivisors K L
⊢ Injective fun r => r • 1
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹³ : Ring R
inst✝¹² : AddCommGroup M✝
inst✝¹¹ : AddCommGroup M'
inst✝¹⁰ : AddCommGroup M''
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'
inst✝⁷ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁶ : CommRing K
inst✝⁵ : Semiring M
inst✝⁴ : Algebra K M
inst✝³ : CommRing L
inst✝² : IsDomain L
inst✝¹ : Algebra K L
inst✝ : NoZeroSMulDivisors K L
⊢ Injective fun r => (algebraMap K L) r

tactic: exact NoZeroSMulDivisors.algebraMap_injective K L
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹³ : Ring R
inst✝¹² : AddCommGroup M✝
inst✝¹¹ : AddCommGroup M'
inst✝¹⁰ : AddCommGroup M''
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'
inst✝⁷ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁶ : CommRing K
inst✝⁵ : Semiring M
inst✝⁴ : Algebra K M
inst✝³ : CommRing L
inst✝² : IsDomain L
inst✝¹ : Algebra K L
inst✝ : NoZeroSMulDivisors K L
⊢ Injective fun r => (algebraMap K L) r
state_after: no goals
Theorem: MeasureTheory.lintegral_subtype_comap
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [← (MeasurableEmbedding.subtype_coe hs).lintegral_map, map_comap_subtype_coe hs]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
f : α → ℝ≥0∞
⊢ ∫⁻ (x : ↑s), f ↑x ∂Measure.comap Subtype.val μ = ∫⁻ (x : α) in s, f x ∂μ
state_after: no goals
Theorem: Equiv.Perm.IsSwap.finite_compl_fixedBy
File: Mathlib/GroupTheory/Perm/ClosureSwap.lean

tactic: obtain ⟨x, y, -, rfl⟩ := h
state_before: G : Type u_1
α : Type u_2
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : DecidableEq α
σ : Perm α
h : σ.IsSwap
⊢ (fixedBy α σ)ᶜ.Finite
state_after: case intro.intro.intro
G : Type u_1
α : Type u_2
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : DecidableEq α
x y : α
⊢ (fixedBy α (swap x y))ᶜ.Finite

tactic: exact finite_compl_fixedBy_swap
state_before: case intro.intro.intro
G : Type u_1
α : Type u_2
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : DecidableEq α
x y : α
⊢ (fixedBy α (swap x y))ᶜ.Finite
state_after: no goals
Theorem: Rat.divInt_pow
File: Mathlib/Algebra/Ring/Rat.lean

tactic: simp [divInt_eq_div, div_pow, Int.natCast_pow]
state_before: num : ℕ
den : ℤ
n : ℕ
⊢ (↑num /. den) ^ n = ↑num ^ n /. den ^ n
state_after: no goals
Theorem: HahnSeries.single_pow
File: Mathlib/RingTheory/HahnSeries/Multiplication.lean

tactic: induction' n with n IH
state_before: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : Semiring R
a : Γ
n : ℕ
r : R
⊢ (single a) r ^ n = (single (n • a)) (r ^ n)
state_after: case zero
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : Semiring R
a : Γ
r : R
⊢ (single a) r ^ 0 = (single (0 • a)) (r ^ 0)

case succ
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : Semiring R
a : Γ
r : R
n : ℕ
IH : (single a) r ^ n = (single (n • a)) (r ^ n)
⊢ (single a) r ^ (n + 1) = (single ((n + 1) • a)) (r ^ (n + 1))

tactic: ext
state_before: case zero
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : Semiring R
a : Γ
r : R
⊢ (single a) r ^ 0 = (single (0 • a)) (r ^ 0)
state_after: case zero.coeff.h
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : Semiring R
a : Γ
r : R
x✝ : Γ
⊢ ((single a) r ^ 0).coeff x✝ = ((single (0 • a)) (r ^ 0)).coeff x✝

tactic: simp only [pow_zero, one_coeff, zero_smul, single_coeff]
state_before: case zero.coeff.h
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : Semiring R
a : Γ
r : R
x✝ : Γ
⊢ ((single a) r ^ 0).coeff x✝ = ((single (0 • a)) (r ^ 0)).coeff x✝
state_after: no goals

tactic: rw [pow_succ, pow_succ, IH, single_mul_single, succ_nsmul]
state_before: case succ
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : Semiring R
a : Γ
r : R
n : ℕ
IH : (single a) r ^ n = (single (n • a)) (r ^ n)
⊢ (single a) r ^ (n + 1) = (single ((n + 1) • a)) (r ^ (n + 1))
state_after: no goals
Theorem: Submodule.mulRightMap_apply_single
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: simp [mulRightMap]
state_before: R : Type u_1
M✝ : Type u_2
N✝ : Type u_3
inst✝⁹ : Semiring R
inst✝⁸ : AddCommMonoid M✝
inst✝⁷ : Module R M✝
inst✝⁶ : AddCommMonoid N✝
inst✝⁵ : Module R N✝
S : Type u_4
inst✝⁴ : Semiring S
inst✝³ : Module R S
inst✝² : SMulCommClass R R S
inst✝¹ : SMulCommClass R S S
inst✝ : IsScalarTower R S S
M N : Submodule R S
ι : Type u_5
n : ι → ↥N
i : ι
m : ↥M
⊢ (M.mulRightMap n) (Finsupp.single i m) = ↑m * ↑(n i)
state_after: no goals
Theorem: NormedField.punctured_nhds_neBot
File: Mathlib/Analysis/Normed/Field/Basic.lean

tactic: rw [← mem_closure_iff_nhdsWithin_neBot, Metric.mem_closure_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
⊢ (𝓝[≠] x).NeBot
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
⊢ ∀ ε > 0, ∃ b ∈ {x}ᶜ, dist x b < ε

tactic: rintro ε ε0
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
⊢ ∀ ε > 0, ∃ b ∈ {x}ᶜ, dist x b < ε
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
⊢ ∃ b ∈ {x}ᶜ, dist x b < ε

tactic: rcases exists_norm_lt α ε0 with ⟨b, hb0, hbε⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
⊢ ∃ b ∈ {x}ᶜ, dist x b < ε
state_after: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
b : α
hb0 : 0 < ‖b‖
hbε : ‖b‖ < ε
⊢ ∃ b ∈ {x}ᶜ, dist x b < ε

tactic: refine ⟨x + b, mt (Set.mem_singleton_iff.trans add_right_eq_self).1 <| norm_pos_iff.1 hb0, ?_⟩
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
b : α
hb0 : 0 < ‖b‖
hbε : ‖b‖ < ε
⊢ ∃ b ∈ {x}ᶜ, dist x b < ε
state_after: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
b : α
hb0 : 0 < ‖b‖
hbε : ‖b‖ < ε
⊢ dist x (x + b) < ε

tactic: rwa [dist_comm, dist_eq_norm, add_sub_cancel_left]
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
b : α
hb0 : 0 < ‖b‖
hbε : ‖b‖ < ε
⊢ dist x (x + b) < ε
state_after: no goals
Theorem: Finset.not_mem_of_mem_powerset_of_not_mem
File: Mathlib/Data/Finset/Powerset.lean

tactic: apply mt _ h
state_before: α : Type u_1
s✝ t✝ s t : Finset α
a : α
ht : t ∈ s.powerset
h : a ∉ s
⊢ a ∉ t
state_after: α : Type u_1
s✝ t✝ s t : Finset α
a : α
ht : t ∈ s.powerset
h : a ∉ s
⊢ a ∈ t → a ∈ s

tactic: apply mem_powerset.1 ht
state_before: α : Type u_1
s✝ t✝ s t : Finset α
a : α
ht : t ∈ s.powerset
h : a ∉ s
⊢ a ∈ t → a ∈ s
state_after: no goals
Theorem: Real.Angle.cos_pos_iff_abs_toReal_lt_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [lt_iff_le_and_ne, lt_iff_le_and_ne, cos_nonneg_iff_abs_toReal_le_pi_div_two, ←
  and_congr_right]
state_before: θ : Angle
⊢ 0 < θ.cos ↔ |θ.toReal| < π / 2
state_after: θ : Angle
⊢ |θ.toReal| ≤ π / 2 → (|θ.toReal| ≠ π / 2 ↔ 0 ≠ θ.cos)

tactic: rintro -
state_before: θ : Angle
⊢ |θ.toReal| ≤ π / 2 → (|θ.toReal| ≠ π / 2 ↔ 0 ≠ θ.cos)
state_after: θ : Angle
⊢ |θ.toReal| ≠ π / 2 ↔ 0 ≠ θ.cos

tactic: rw [Ne, Ne, not_iff_not, @eq_comm ℝ 0, abs_toReal_eq_pi_div_two_iff, cos_eq_zero_iff]
state_before: θ : Angle
⊢ |θ.toReal| ≠ π / 2 ↔ 0 ≠ θ.cos
state_after: no goals
Theorem: Asymptotics.superpolynomialDecay_mul_const_iff
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

tactic: simp [mul_assoc, mul_inv_cancel hc0]
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : Field β
inst✝ : ContinuousMul β
c : β
hc0 : c ≠ 0
h : SuperpolynomialDecay l k fun n => f n * c
x : α
⊢ f x * c * c⁻¹ = f x
state_after: no goals
Theorem: HasDerivWithinAt.liminf_right_slope_norm_le
File: Mathlib/Analysis/Calculus/Deriv/Slope.lean

tactic: have := (hf.Ioi_of_Ici.limsup_slope_norm_le hr).frequently
state_before: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
f' : E
s : Set ℝ
x r : ℝ
hf : HasDerivWithinAt f f' (Ici x) x
hr : ‖f'‖ < r
⊢ ∃ᶠ (z : ℝ) in 𝓝[>] x, (z - x)⁻¹ * (‖f z‖ - ‖f x‖) < r
state_after: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
f' : E
s : Set ℝ
x r : ℝ
hf : HasDerivWithinAt f f' (Ici x) x
hr : ‖f'‖ < r
this : ∃ᶠ (x_1 : ℝ) in 𝓝[>] x, ‖x_1 - x‖⁻¹ * (‖f x_1‖ - ‖f x‖) < r
⊢ ∃ᶠ (z : ℝ) in 𝓝[>] x, (z - x)⁻¹ * (‖f z‖ - ‖f x‖) < r

tactic: refine this.mp (Eventually.mono self_mem_nhdsWithin fun z hxz hz ↦ ?_)
state_before: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
f' : E
s : Set ℝ
x r : ℝ
hf : HasDerivWithinAt f f' (Ici x) x
hr : ‖f'‖ < r
this : ∃ᶠ (x_1 : ℝ) in 𝓝[>] x, ‖x_1 - x‖⁻¹ * (‖f x_1‖ - ‖f x‖) < r
⊢ ∃ᶠ (z : ℝ) in 𝓝[>] x, (z - x)⁻¹ * (‖f z‖ - ‖f x‖) < r
state_after: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
f' : E
s : Set ℝ
x r : ℝ
hf : HasDerivWithinAt f f' (Ici x) x
hr : ‖f'‖ < r
this : ∃ᶠ (x_1 : ℝ) in 𝓝[>] x, ‖x_1 - x‖⁻¹ * (‖f x_1‖ - ‖f x‖) < r
z : ℝ
hxz : x < z
hz : ‖z - x‖⁻¹ * (‖f z‖ - ‖f x‖) < r
⊢ (z - x)⁻¹ * (‖f z‖ - ‖f x‖) < r

tactic: rwa [Real.norm_eq_abs, abs_of_pos (sub_pos_of_lt hxz)] at hz
state_before: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
f' : E
s : Set ℝ
x r : ℝ
hf : HasDerivWithinAt f f' (Ici x) x
hr : ‖f'‖ < r
this : ∃ᶠ (x_1 : ℝ) in 𝓝[>] x, ‖x_1 - x‖⁻¹ * (‖f x_1‖ - ‖f x‖) < r
z : ℝ
hxz : x < z
hz : ‖z - x‖⁻¹ * (‖f z‖ - ‖f x‖) < r
⊢ (z - x)⁻¹ * (‖f z‖ - ‖f x‖) < r
state_after: no goals
Theorem: IsUnit.mul_div_mul_right
File: Mathlib/Algebra/Group/Units.lean

tactic: simp only [div_eq_mul_inv, mul_inv_rev, mul_assoc, h.mul_inv_cancel_left]
state_before: α : Type u
M : Type u_1
N : Type u_2
inst✝ : DivisionMonoid α
a✝ b✝ c : α
h : IsUnit c
a b : α
⊢ a * c / (b * c) = a / b
state_after: no goals
Theorem: LinearMap.inr_injective
File: Mathlib/LinearAlgebra/Prod.lean

tactic: simp
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₂
x✝ : M₂
⊢ ∀ ⦃a₂ : M₂⦄, (inr R M M₂) x✝ = (inr R M M₂) a₂ → x✝ = a₂
state_after: no goals
Theorem: Orientation.tan_oangle_sub_left_of_oangle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean

tactic: rw [← neg_inj, oangle_rev, ← oangle_neg_orientation_eq_neg, neg_inj] at h ⊢
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : o.oangle x y = ↑(π / 2)
⊢ (o.oangle (x - y) x).tan = ‖y‖ / ‖x‖
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : (-o).oangle y x = ↑(π / 2)
⊢ ((-o).oangle x (x - y)).tan = ‖y‖ / ‖x‖

tactic: exact (-o).tan_oangle_sub_right_of_oangle_eq_pi_div_two h
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : (-o).oangle y x = ↑(π / 2)
⊢ ((-o).oangle x (x - y)).tan = ‖y‖ / ‖x‖
state_after: no goals
Theorem: Polynomial.Monic.natDegree_pow
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: induction' n with n hn
state_before: R : Type u
S : Type v
a b : R
m n✝ : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
n : ℕ
⊢ (p ^ n).natDegree = n * p.natDegree
state_after: case zero
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
⊢ (p ^ 0).natDegree = 0 * p.natDegree

case succ
R : Type u
S : Type v
a b : R
m n✝ : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
n : ℕ
hn : (p ^ n).natDegree = n * p.natDegree
⊢ (p ^ (n + 1)).natDegree = (n + 1) * p.natDegree

tactic: simp
state_before: case zero
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
⊢ (p ^ 0).natDegree = 0 * p.natDegree
state_after: no goals

tactic: rw [pow_succ, (hp.pow n).natDegree_mul hp, hn, Nat.succ_mul, add_comm]
state_before: case succ
R : Type u
S : Type v
a b : R
m n✝ : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
n : ℕ
hn : (p ^ n).natDegree = n * p.natDegree
⊢ (p ^ (n + 1)).natDegree = (n + 1) * p.natDegree
state_after: no goals
Theorem: Set.preimage_const_sub_Icc
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [← Ici_inter_Iic, inter_comm]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => a - x) ⁻¹' Icc b c = Icc (a - c) (a - b)
state_after: no goals
Theorem: CategoryTheory.Limits.kernel.lift_map
File: Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean

tactic: ext
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
inst✝² : HasKernel f✝
X Y Z X' Y' Z' : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝¹ : HasKernel g
w : f ≫ g = 0
f' : X' ⟶ Y'
g' : Y' ⟶ Z'
inst✝ : HasKernel g'
w' : f' ≫ g' = 0
p : X ⟶ X'
q : Y ⟶ Y'
r : Z ⟶ Z'
h₁ : f ≫ q = p ≫ f'
h₂ : g ≫ r = q ≫ g'
⊢ lift g f w ≫ map g g' q r h₂ = p ≫ lift g' f' w'
state_after: case h
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
inst✝² : HasKernel f✝
X Y Z X' Y' Z' : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝¹ : HasKernel g
w : f ≫ g = 0
f' : X' ⟶ Y'
g' : Y' ⟶ Z'
inst✝ : HasKernel g'
w' : f' ≫ g' = 0
p : X ⟶ X'
q : Y ⟶ Y'
r : Z ⟶ Z'
h₁ : f ≫ q = p ≫ f'
h₂ : g ≫ r = q ≫ g'
⊢ (lift g f w ≫ map g g' q r h₂) ≫ equalizer.ι g' 0 = (p ≫ lift g' f' w') ≫ equalizer.ι g' 0

tactic: simp [h₁]
state_before: case h
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
inst✝² : HasKernel f✝
X Y Z X' Y' Z' : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝¹ : HasKernel g
w : f ≫ g = 0
f' : X' ⟶ Y'
g' : Y' ⟶ Z'
inst✝ : HasKernel g'
w' : f' ≫ g' = 0
p : X ⟶ X'
q : Y ⟶ Y'
r : Z ⟶ Z'
h₁ : f ≫ q = p ≫ f'
h₂ : g ≫ r = q ≫ g'
⊢ (lift g f w ≫ map g g' q r h₂) ≫ equalizer.ι g' 0 = (p ≫ lift g' f' w') ≫ equalizer.ι g' 0
state_after: no goals
Theorem: Multiset.noncommFold_coe
File: Mathlib/Data/Finset/NoncommProd.lean

tactic: simp [noncommFold]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
assoc : Std.Associative op
l : List α
comm : {x | x ∈ ↑l}.Pairwise fun x y => op x y = op y x
a : α
⊢ noncommFold op (↑l) comm a = List.foldr op a l
state_after: no goals
Theorem: Nat.count_le_cardinal
File: Mathlib/Data/Nat/Count.lean

tactic: rw [count_eq_card_fintype, ← Cardinal.mk_fintype]
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
⊢ ↑(count p n) ≤ Cardinal.mk ↑{k | p k}
state_after: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
⊢ Cardinal.mk { k // k < n ∧ p k } ≤ Cardinal.mk ↑{k | p k}

tactic: exact Cardinal.mk_subtype_mono fun x hx ↦ hx.2
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
⊢ Cardinal.mk { k // k < n ∧ p k } ≤ Cardinal.mk ↑{k | p k}
state_after: no goals
Theorem: Metric.thickening_compl_thickening_self_subset_compl
File: Mathlib/Topology/MetricSpace/Thickening.lean

tactic: apply compl_subset_compl.mp
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ : ℝ
s : Set α
x : α
δ : ℝ
E : Set α
⊢ thickening δ (thickening δ E)ᶜ ⊆ Eᶜ
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ : ℝ
s : Set α
x : α
δ : ℝ
E : Set α
⊢ Eᶜᶜ ⊆ (thickening δ (thickening δ E)ᶜ)ᶜ

tactic: simpa only [compl_compl] using subset_compl_thickening_compl_thickening_self δ E
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ : ℝ
s : Set α
x : α
δ : ℝ
E : Set α
⊢ Eᶜᶜ ⊆ (thickening δ (thickening δ E)ᶜ)ᶜ
state_after: no goals
Theorem: Complex.coe_selfAdjointEquiv
File: Mathlib/Data/Complex/Module.lean

tactic: simpa [selfAdjointEquiv_symm_apply]
  using (congr_arg Subtype.val <| Complex.selfAdjointEquiv.left_inv z)
state_before: A : Type u_1
inst✝³ : AddCommGroup A
inst✝² : Module ℂ A
inst✝¹ : StarAddMonoid A
inst✝ : StarModule ℂ A
z : ↥(selfAdjoint ℂ)
⊢ ↑(selfAdjointEquiv z) = ↑z
state_after: no goals
Theorem: SimpleGraph.Walk.edges_transfer
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: induction p <;> simp [*]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
p : G.Walk u v
H : SimpleGraph V
hp : ∀ e ∈ p.edges, e ∈ H.edgeSet
⊢ (p.transfer H hp).edges = p.edges
state_after: no goals
Theorem: CategoryTheory.BraidedCategory.braiding_inv_tensor_left
File: Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean

tactic: simp
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X Y Z : C
⊢ inv (β_ (X ⊗ Y) Z).inv = inv ((α_ Z X Y).inv ≫ (β_ X Z).inv ▷ Y ≫ (α_ X Z Y).hom ≫ X ◁ (β_ Y Z).inv ≫ (α_ X Y Z).inv)
state_after: no goals
Theorem: Finset.prod_update_of_not_mem
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: apply prod_congr rfl
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
i : α
h : i ∉ s
f : α → β
b : β
⊢ ∏ x ∈ s, update f i b x = ∏ x ∈ s, f x
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
i : α
h : i ∉ s
f : α → β
b : β
⊢ ∀ x ∈ s, update f i b x = f x

tactic: intros j hj
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
i : α
h : i ∉ s
f : α → β
b : β
⊢ ∀ x ∈ s, update f i b x = f x
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
i : α
h : i ∉ s
f : α → β
b : β
j : α
hj : j ∈ s
⊢ update f i b j = f j

tactic: have : j ≠ i := by
  rintro rfl
  exact h hj
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
i : α
h : i ∉ s
f : α → β
b : β
j : α
hj : j ∈ s
⊢ update f i b j = f j
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
i : α
h : i ∉ s
f : α → β
b : β
j : α
hj : j ∈ s
this : j ≠ i
⊢ update f i b j = f j

tactic: simp [this]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
i : α
h : i ∉ s
f : α → β
b : β
j : α
hj : j ∈ s
this : j ≠ i
⊢ update f i b j = f j
state_after: no goals

tactic: rintro rfl
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
i : α
h : i ∉ s
f : α → β
b : β
j : α
hj : j ∈ s
⊢ j ≠ i
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
f : α → β
b : β
j : α
hj : j ∈ s
h : j ∉ s
⊢ False

tactic: exact h hj
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
f : α → β
b : β
j : α
hj : j ∈ s
h : j ∉ s
⊢ False
state_after: no goals
Theorem: RingHomInvPair.comp_apply_eq₂
File: Mathlib/Algebra/Ring/CompTypeclasses.lean

tactic: rw [← RingHom.comp_apply, comp_eq₂]
state_before: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝³ : Semiring R₁
inst✝² : Semiring R₂
inst✝¹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
σ : R₁ →+* R₂
σ' : R₂ →+* R₁
inst✝ : RingHomInvPair σ σ'
x : R₂
⊢ σ (σ' x) = x
state_after: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝³ : Semiring R₁
inst✝² : Semiring R₂
inst✝¹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
σ : R₁ →+* R₂
σ' : R₂ →+* R₁
inst✝ : RingHomInvPair σ σ'
x : R₂
⊢ (RingHom.id R₂) x = x

tactic: simp
state_before: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝³ : Semiring R₁
inst✝² : Semiring R₂
inst✝¹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
σ : R₁ →+* R₂
σ' : R₂ →+* R₁
inst✝ : RingHomInvPair σ σ'
x : R₂
⊢ (RingHom.id R₂) x = x
state_after: no goals