1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Equiv.algebraMap_def
File: Mathlib/Logic/Equiv/TransferInstance.lean

tactic: intros
state_before: α : Type u
β : Type v
e✝ : α ≃ β
R : Type u_1
inst✝² : CommSemiring R
e : α ≃ β
inst✝¹ : Semiring β
inst✝ : Algebra R β
r : R
⊢ let semiring := e.semiring;
  let algebra := Equiv.algebra R e;
  (algebraMap R α) r = e.symm ((algebraMap R β) r)
state_after: α : Type u
β : Type v
e✝ : α ≃ β
R : Type u_1
inst✝² : CommSemiring R
e : α ≃ β
inst✝¹ : Semiring β
inst✝ : Algebra R β
r : R
semiring✝ : Semiring α := e.semiring
algebra✝ : Algebra R α := Equiv.algebra R e
⊢ (algebraMap R α) r = e.symm ((algebraMap R β) r)

tactic: simp only [Algebra.algebraMap_eq_smul_one]
state_before: α : Type u
β : Type v
e✝ : α ≃ β
R : Type u_1
inst✝² : CommSemiring R
e : α ≃ β
inst✝¹ : Semiring β
inst✝ : Algebra R β
r : R
semiring✝ : Semiring α := e.semiring
algebra✝ : Algebra R α := Equiv.algebra R e
⊢ (algebraMap R α) r = e.symm ((algebraMap R β) r)
state_after: α : Type u
β : Type v
e✝ : α ≃ β
R : Type u_1
inst✝² : CommSemiring R
e : α ≃ β
inst✝¹ : Semiring β
inst✝ : Algebra R β
r : R
semiring✝ : Semiring α := e.semiring
algebra✝ : Algebra R α := Equiv.algebra R e
⊢ r • 1 = e.symm (r • 1)

tactic: show e.symm (r • e 1) = e.symm (r • 1)
state_before: α : Type u
β : Type v
e✝ : α ≃ β
R : Type u_1
inst✝² : CommSemiring R
e : α ≃ β
inst✝¹ : Semiring β
inst✝ : Algebra R β
r : R
semiring✝ : Semiring α := e.semiring
algebra✝ : Algebra R α := Equiv.algebra R e
⊢ r • 1 = e.symm (r • 1)
state_after: α : Type u
β : Type v
e✝ : α ≃ β
R : Type u_1
inst✝² : CommSemiring R
e : α ≃ β
inst✝¹ : Semiring β
inst✝ : Algebra R β
r : R
semiring✝ : Semiring α := e.semiring
algebra✝ : Algebra R α := Equiv.algebra R e
⊢ e.symm (r • e 1) = e.symm (r • 1)

tactic: simp only [Equiv.one_def, apply_symm_apply]
state_before: α : Type u
β : Type v
e✝ : α ≃ β
R : Type u_1
inst✝² : CommSemiring R
e : α ≃ β
inst✝¹ : Semiring β
inst✝ : Algebra R β
r : R
semiring✝ : Semiring α := e.semiring
algebra✝ : Algebra R α := Equiv.algebra R e
⊢ e.symm (r • e 1) = e.symm (r • 1)
state_after: no goals
Theorem: contDiffOn_of_continuousOn_differentiableOn_deriv
File: Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean

tactic: apply contDiffOn_of_continuousOn_differentiableOn
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 : ℕ∞
Hcont : ∀ (m : ℕ), ↑m ≤ n → ContinuousOn (fun x => iteratedDerivWithin m f s x) s
Hdiff : ∀ (m : ℕ), ↑m < n → DifferentiableOn 𝕜 (fun x => iteratedDerivWithin m f s x) s
⊢ ContDiffOn 𝕜 n f s
state_after: case Hcont
𝕜 : 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 : ℕ∞
Hcont : ∀ (m : ℕ), ↑m ≤ n → ContinuousOn (fun x => iteratedDerivWithin m f s x) s
Hdiff : ∀ (m : ℕ), ↑m < n → DifferentiableOn 𝕜 (fun x => iteratedDerivWithin m f s x) s
⊢ ∀ (m : ℕ), ↑m ≤ n → ContinuousOn (fun x => iteratedFDerivWithin 𝕜 m f s x) s

case Hdiff
𝕜 : 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 : ℕ∞
Hcont : ∀ (m : ℕ), ↑m ≤ n → ContinuousOn (fun x => iteratedDerivWithin m f s x) s
Hdiff : ∀ (m : ℕ), ↑m < n → DifferentiableOn 𝕜 (fun x => iteratedDerivWithin m f s x) s
⊢ ∀ (m : ℕ), ↑m < n → DifferentiableOn 𝕜 (fun x => iteratedFDerivWithin 𝕜 m f s x) s

tactic: simpa only [iteratedFDerivWithin_eq_equiv_comp, LinearIsometryEquiv.comp_continuousOn_iff]
state_before: case Hcont
𝕜 : 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 : ℕ∞
Hcont : ∀ (m : ℕ), ↑m ≤ n → ContinuousOn (fun x => iteratedDerivWithin m f s x) s
Hdiff : ∀ (m : ℕ), ↑m < n → DifferentiableOn 𝕜 (fun x => iteratedDerivWithin m f s x) s
⊢ ∀ (m : ℕ), ↑m ≤ n → ContinuousOn (fun x => iteratedFDerivWithin 𝕜 m f s x) s
state_after: no goals

tactic: simpa only [iteratedFDerivWithin_eq_equiv_comp, LinearIsometryEquiv.comp_differentiableOn_iff]
state_before: case Hdiff
𝕜 : 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 : ℕ∞
Hcont : ∀ (m : ℕ), ↑m ≤ n → ContinuousOn (fun x => iteratedDerivWithin m f s x) s
Hdiff : ∀ (m : ℕ), ↑m < n → DifferentiableOn 𝕜 (fun x => iteratedDerivWithin m f s x) s
⊢ ∀ (m : ℕ), ↑m < n → DifferentiableOn 𝕜 (fun x => iteratedFDerivWithin 𝕜 m f s x) s
state_after: no goals
Theorem: Filter.tendsto_atTop_embedding
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: rw [← comap_embedding_atTop hm hu, tendsto_comap_iff]
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α → β
e : β → γ
l : Filter α
hm : ∀ (b₁ b₂ : β), e b₁ ≤ e b₂ ↔ b₁ ≤ b₂
hu : ∀ (c : γ), ∃ b, c ≤ e b
⊢ Tendsto (e ∘ f) l atTop ↔ Tendsto f l atTop
state_after: no goals
Theorem: StrictConvex.mem_smul_of_zero_mem
File: Mathlib/Analysis/Convex/Strict.lean

tactic: rw [mem_smul_set_iff_inv_smul_mem₀ (zero_lt_one.trans ht).ne']
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
F : Type u_4
β : Type u_5
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : TopologicalSpace E
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s : Set E
x : E
hs : StrictConvex 𝕜 s
zero_mem : 0 ∈ s
hx : x ∈ s
hx₀ : x ≠ 0
t : 𝕜
ht : 1 < t
⊢ x ∈ t • interior s
state_after: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
F : Type u_4
β : Type u_5
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : TopologicalSpace E
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s : Set E
x : E
hs : StrictConvex 𝕜 s
zero_mem : 0 ∈ s
hx : x ∈ s
hx₀ : x ≠ 0
t : 𝕜
ht : 1 < t
⊢ t⁻¹ • x ∈ interior s

tactic: exact hs.smul_mem_of_zero_mem zero_mem hx hx₀ (inv_pos.2 <| zero_lt_one.trans ht) (inv_lt_one ht)
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
F : Type u_4
β : Type u_5
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : TopologicalSpace E
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s : Set E
x : E
hs : StrictConvex 𝕜 s
zero_mem : 0 ∈ s
hx : x ∈ s
hx₀ : x ≠ 0
t : 𝕜
ht : 1 < t
⊢ t⁻¹ • x ∈ interior s
state_after: no goals
Theorem: MeasureTheory.FiniteMeasure.apply_mono
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

tactic: change ((μ : Measure Ω) s₁).toNNReal ≤ ((μ : Measure Ω) s₂).toNNReal
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
s₁ s₂ : Set Ω
h : s₁ ⊆ s₂
⊢ μ s₁ ≤ μ s₂
state_after: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
s₁ s₂ : Set Ω
h : s₁ ⊆ s₂
⊢ (↑μ s₁).toNNReal ≤ (↑μ s₂).toNNReal

tactic: have key : (μ : Measure Ω) s₁ ≤ (μ : Measure Ω) s₂ := (μ : Measure Ω).mono h
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
s₁ s₂ : Set Ω
h : s₁ ⊆ s₂
⊢ (↑μ s₁).toNNReal ≤ (↑μ s₂).toNNReal
state_after: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
s₁ s₂ : Set Ω
h : s₁ ⊆ s₂
key : ↑μ s₁ ≤ ↑μ s₂
⊢ (↑μ s₁).toNNReal ≤ (↑μ s₂).toNNReal

tactic: apply (ENNReal.toNNReal_le_toNNReal (measure_ne_top _ s₁) (measure_ne_top _ s₂)).mpr key
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
s₁ s₂ : Set Ω
h : s₁ ⊆ s₂
key : ↑μ s₁ ≤ ↑μ s₂
⊢ (↑μ s₁).toNNReal ≤ (↑μ s₂).toNNReal
state_after: no goals
Theorem: Directed.disjoint_iSup_left
File: Mathlib/Order/CompactlyGenerated/Basic.lean

tactic: simp_rw [disjoint_iff, h.iSup_inf_eq, iSup_eq_bot]
state_before: ι : Sort u_1
α : Type u_2
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
a b : α
s : Set α
h : Directed (fun x x_1 => x ≤ x_1) f
⊢ Disjoint (⨆ i, f i) a ↔ ∀ (i : ι), Disjoint (f i) a
state_after: no goals
Theorem: ENNReal.top_rpow_of_pos
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: simp [top_rpow_def, h]
state_before: y : ℝ
h : 0 < y
⊢ ⊤ ^ y = ⊤
state_after: no goals
Theorem: Filter.isOpen_setOf_mem
File: Mathlib/Topology/Filter.lean

tactic: simpa only [Iic_principal] using isOpen_Iic_principal
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
s : Set α
⊢ IsOpen {l | s ∈ l}
state_after: no goals
Theorem: SimplexCategory.mono_iff_injective
File: Mathlib/AlgebraicTopology/SimplexCategory.lean

tactic: rw [← Functor.mono_map_iff_mono skeletalEquivalence.functor]
state_before: n m : SimplexCategory
f : n ⟶ m
⊢ Mono f ↔ Function.Injective ⇑(Hom.toOrderHom f)
state_after: n m : SimplexCategory
f : n ⟶ m
⊢ Mono (skeletalEquivalence.functor.map f) ↔ Function.Injective ⇑(Hom.toOrderHom f)

tactic: dsimp only [skeletalEquivalence, Functor.asEquivalence_functor]
state_before: n m : SimplexCategory
f : n ⟶ m
⊢ Mono (skeletalEquivalence.functor.map f) ↔ Function.Injective ⇑(Hom.toOrderHom f)
state_after: n m : SimplexCategory
f : n ⟶ m
⊢ Mono (skeletalFunctor.map f) ↔ Function.Injective ⇑(Hom.toOrderHom f)

tactic: simp only [skeletalFunctor_obj, skeletalFunctor_map,
  NonemptyFinLinOrd.mono_iff_injective, NonemptyFinLinOrd.coe_of]
state_before: n m : SimplexCategory
f : n ⟶ m
⊢ Mono (skeletalFunctor.map f) ↔ Function.Injective ⇑(Hom.toOrderHom f)
state_after: no goals
Theorem: Complex.continuous_circleTransformDeriv
File: Mathlib/MeasureTheory/Integral/CircleTransform.lean

tactic: rw [circleTransformDeriv_eq]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w✝ : ℂ
R : ℝ
hR : 0 < R
f : ℂ → E
z w : ℂ
hf : ContinuousOn f (sphere z R)
hw : w ∈ ball z R
⊢ Continuous (circleTransformDeriv R z w f)
state_after: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w✝ : ℂ
R : ℝ
hR : 0 < R
f : ℂ → E
z w : ℂ
hf : ContinuousOn f (sphere z R)
hw : w ∈ ball z R
⊢ Continuous fun θ => (circleMap z R θ - w)⁻¹ • circleTransform R z w f θ

tactic: exact (continuous_circleMap_inv hw).smul (continuous_circleTransform hR hf hw)
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w✝ : ℂ
R : ℝ
hR : 0 < R
f : ℂ → E
z w : ℂ
hf : ContinuousOn f (sphere z R)
hw : w ∈ ball z R
⊢ Continuous fun θ => (circleMap z R θ - w)⁻¹ • circleTransform R z w f θ
state_after: no goals
Theorem: Basis.det_reindex_symm
File: Mathlib/LinearAlgebra/Determinant.lean

tactic: rw [Basis.det_reindex, Function.comp.assoc, e.self_comp_symm, Function.comp_id]
state_before: R : Type u_1
inst✝¹⁰ : CommRing R
M : Type u_2
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type u_3
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type u_4
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e✝ : Basis ι R M
A : Type u_5
inst✝³ : CommRing A
inst✝² : Module A M
ι' : Type u_6
inst✝¹ : Fintype ι'
inst✝ : DecidableEq ι'
b : Basis ι R M
v : ι → M
e : ι' ≃ ι
⊢ (b.reindex e.symm).det (v ∘ ⇑e) = b.det v
state_after: no goals
Theorem: NonarchAddGroupSeminorm.smul_sup
File: Mathlib/Analysis/Normed/Group/Seminorm.lean

tactic: simpa only [← smul_eq_mul, ← NNReal.smul_def, smul_one_smul ℝ≥0 r (_ : ℝ)] using
  mul_max_of_nonneg x y (r • (1 : ℝ≥0) : ℝ≥0).coe_nonneg
state_before: ι : Type u_1
R : Type u_2
R' : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
inst✝⁴ : FunLike F E ℝ
inst✝³ : AddGroup E
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
r : R
p q : NonarchAddGroupSeminorm E
x y : ℝ
⊢ r • max x y = max (r • x) (r • y)
state_after: no goals
Theorem: Real.rpow_pos_of_pos
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [rpow_def_of_pos hx]
state_before: x✝ y✝ z x : ℝ
hx : 0 < x
y : ℝ
⊢ 0 < x ^ y
state_after: x✝ y✝ z x : ℝ
hx : 0 < x
y : ℝ
⊢ 0 < rexp (log x * y)

tactic: apply exp_pos
state_before: x✝ y✝ z x : ℝ
hx : 0 < x
y : ℝ
⊢ 0 < rexp (log x * y)
state_after: no goals
Theorem: AdicCompletion.component_sumInv
File: Mathlib/RingTheory/AdicCompletion/Functoriality.lean

tactic: apply induction_on I _ x (fun x ↦ ?_)
state_before: R : Type u_1
inst✝¹² : CommRing R
I : Ideal R
M✝ : Type u_2
inst✝¹¹ : AddCommGroup M✝
inst✝¹⁰ : Module R M✝
N : Type u_3
inst✝⁹ : AddCommGroup N
inst✝⁸ : Module R N
P : Type u_4
inst✝⁷ : AddCommGroup P
inst✝⁶ : Module R P
T : Type u_5
inst✝⁵ : AddCommGroup T
inst✝⁴ : Module (AdicCompletion I R) T
ι : Type u_6
inst✝³ : DecidableEq ι
M : ι → Type u_7
inst✝² : (i : ι) → AddCommGroup (M i)
inst✝¹ : (i : ι) → Module R (M i)
inst✝ : Fintype ι
x : AdicCompletion I (⨁ (j : ι), M j)
j : ι
⊢ (component (AdicCompletion I R) ι (fun i => AdicCompletion I (M i)) j) ((sumInv I M) x) =
    (map I (component R ι M j)) x
state_after: R : Type u_1
inst✝¹² : CommRing R
I : Ideal R
M✝ : Type u_2
inst✝¹¹ : AddCommGroup M✝
inst✝¹⁰ : Module R M✝
N : Type u_3
inst✝⁹ : AddCommGroup N
inst✝⁸ : Module R N
P : Type u_4
inst✝⁷ : AddCommGroup P
inst✝⁶ : Module R P
T : Type u_5
inst✝⁵ : AddCommGroup T
inst✝⁴ : Module (AdicCompletion I R) T
ι : Type u_6
inst✝³ : DecidableEq ι
M : ι → Type u_7
inst✝² : (i : ι) → AddCommGroup (M i)
inst✝¹ : (i : ι) → Module R (M i)
inst✝ : Fintype ι
x✝ : AdicCompletion I (⨁ (j : ι), M j)
j : ι
x : AdicCauchySequence I (⨁ (j : ι), M j)
⊢ (component (AdicCompletion I R) ι (fun i => AdicCompletion I (M i)) j) ((sumInv I M) ((mk I (⨁ (j : ι), M j)) x)) =
    (map I (component R ι M j)) ((mk I (⨁ (j : ι), M j)) x)

tactic: rfl
state_before: R : Type u_1
inst✝¹² : CommRing R
I : Ideal R
M✝ : Type u_2
inst✝¹¹ : AddCommGroup M✝
inst✝¹⁰ : Module R M✝
N : Type u_3
inst✝⁹ : AddCommGroup N
inst✝⁸ : Module R N
P : Type u_4
inst✝⁷ : AddCommGroup P
inst✝⁶ : Module R P
T : Type u_5
inst✝⁵ : AddCommGroup T
inst✝⁴ : Module (AdicCompletion I R) T
ι : Type u_6
inst✝³ : DecidableEq ι
M : ι → Type u_7
inst✝² : (i : ι) → AddCommGroup (M i)
inst✝¹ : (i : ι) → Module R (M i)
inst✝ : Fintype ι
x✝ : AdicCompletion I (⨁ (j : ι), M j)
j : ι
x : AdicCauchySequence I (⨁ (j : ι), M j)
⊢ (component (AdicCompletion I R) ι (fun i => AdicCompletion I (M i)) j) ((sumInv I M) ((mk I (⨁ (j : ι), M j)) x)) =
    (map I (component R ι M j)) ((mk I (⨁ (j : ι), M j)) x)
state_after: no goals
Theorem: PNat.Coprime.pow
File: Mathlib/Data/PNat/Prime.lean

tactic: rw [← coprime_coe] at *
state_before: m n : ℕ+
k l : ℕ
h : m.Coprime n
⊢ (↑m ^ k).Coprime (↑n ^ l)
state_after: m n : ℕ+
k l : ℕ
h : (↑m).Coprime ↑n
⊢ (↑m ^ k).Coprime (↑n ^ l)

tactic: apply Nat.Coprime.pow
state_before: m n : ℕ+
k l : ℕ
h : (↑m).Coprime ↑n
⊢ (↑m ^ k).Coprime (↑n ^ l)
state_after: case H1
m n : ℕ+
k l : ℕ
h : (↑m).Coprime ↑n
⊢ (↑m).Coprime ↑n

tactic: apply h
state_before: case H1
m n : ℕ+
k l : ℕ
h : (↑m).Coprime ↑n
⊢ (↑m).Coprime ↑n
state_after: no goals
Theorem: LinearMap.toMatrix_basis_equiv
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

tactic: ext i j
state_before: R : Type u_1
inst✝⁹ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁸ : Fintype n
inst✝⁷ : Finite m
inst✝⁶ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝⁵ : AddCommMonoid M₁
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M₁
inst✝² : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
inst✝¹ : Fintype l
inst✝ : DecidableEq l
b : Basis l R M₁
b' : Basis l R M₂
⊢ (toMatrix b' b) ↑(b'.equiv b (Equiv.refl l)) = 1
state_after: case a
R : Type u_1
inst✝⁹ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁸ : Fintype n
inst✝⁷ : Finite m
inst✝⁶ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝⁵ : AddCommMonoid M₁
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M₁
inst✝² : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
inst✝¹ : Fintype l
inst✝ : DecidableEq l
b : Basis l R M₁
b' : Basis l R M₂
i j : l
⊢ (toMatrix b' b) (↑(b'.equiv b (Equiv.refl l))) i j = 1 i j

tactic: simp [LinearMap.toMatrix_apply, Matrix.one_apply, Finsupp.single_apply, eq_comm]
state_before: case a
R : Type u_1
inst✝⁹ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁸ : Fintype n
inst✝⁷ : Finite m
inst✝⁶ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝⁵ : AddCommMonoid M₁
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M₁
inst✝² : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
inst✝¹ : Fintype l
inst✝ : DecidableEq l
b : Basis l R M₁
b' : Basis l R M₂
i j : l
⊢ (toMatrix b' b) (↑(b'.equiv b (Equiv.refl l))) i j = 1 i j
state_after: no goals
Theorem: Filter.tendsto_Iio_atBot
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: rw [atBot_Iio_eq, tendsto_comap_iff, Function.comp_def]
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : SemilatticeInf α
a : α
f : β → ↑(Iio a)
l : Filter β
⊢ Tendsto f l atBot ↔ Tendsto (fun x => ↑(f x)) l atBot
state_after: no goals
Theorem: Set.Iic_diff_right
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: simp [lt_iff_le_and_ne]
state_before: α : Type u_1
β : Type u_2
inst✝ : PartialOrder α
a b c x : α
⊢ x ∈ Iic a \ {a} ↔ x ∈ Iio a
state_after: no goals
Theorem: LieAlgebra.IsKilling.coroot_zero
File: Mathlib/Algebra/Lie/Weights/Killing.lean

tactic: simp [Weight.isZero_zero]
state_before: R : Type u_1
K : Type u_2
L : Type u_3
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : Field K
inst✝⁶ : LieAlgebra K L
inst✝⁵ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝⁴ : H.IsCartanSubalgebra
inst✝³ : IsTriangularizable K (↥H) L
inst✝² : IsKilling K L
inst✝¹ : CharZero K
inst✝ : Nontrivial L
⊢ coroot 0 = 0
state_after: no goals
Theorem: ClosureOperator.eq_ofPred_closed
File: Mathlib/Order/Closure.lean

tactic: ext
state_before: α : Type u_1
ι : Sort u_2
κ : ι → Sort u_3
inst✝¹ inst✝ : PartialOrder α
c✝ : ClosureOperator α
x y : α
c : ClosureOperator α
⊢ c = ofPred (⇑c) c.IsClosed ⋯ ⋯ ⋯
state_after: case a
α : Type u_1
ι : Sort u_2
κ : ι → Sort u_3
inst✝¹ inst✝ : PartialOrder α
c✝ : ClosureOperator α
x y : α
c : ClosureOperator α
x✝ : α
⊢ c x✝ = (ofPred (⇑c) c.IsClosed ⋯ ⋯ ⋯) x✝

tactic: rfl
state_before: case a
α : Type u_1
ι : Sort u_2
κ : ι → Sort u_3
inst✝¹ inst✝ : PartialOrder α
c✝ : ClosureOperator α
x y : α
c : ClosureOperator α
x✝ : α
⊢ c x✝ = (ofPred (⇑c) c.IsClosed ⋯ ⋯ ⋯) x✝
state_after: no goals
Theorem: EuclideanDomain.div_add_mod'
File: Mathlib/Algebra/EuclideanDomain/Defs.lean

tactic: rw [mul_comm]
state_before: R : Type u
inst✝ : EuclideanDomain R
m k : R
⊢ m / k * k + m % k = m
state_after: R : Type u
inst✝ : EuclideanDomain R
m k : R
⊢ k * (m / k) + m % k = m

tactic: exact div_add_mod _ _
state_before: R : Type u
inst✝ : EuclideanDomain R
m k : R
⊢ k * (m / k) + m % k = m
state_after: no goals
Theorem: MeasureTheory.Measure.integral_comp_inv_smul_of_nonneg
File: Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean

tactic: rw [integral_comp_inv_smul μ f R, abs_of_nonneg (pow_nonneg hR _)]
state_before: E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : MeasurableSpace E
inst✝⁴ : BorelSpace E
inst✝³ : FiniteDimensional ℝ E
μ : Measure E
inst✝² : μ.IsAddHaarMeasure
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
f : E → F
R : ℝ
hR : 0 ≤ R
⊢ ∫ (x : E), f (R⁻¹ • x) ∂μ = R ^ finrank ℝ E • ∫ (x : E), f x ∂μ
state_after: no goals
Theorem: Subtype.preimage_coe_eq_preimage_coe_iff
File: Mathlib/Data/Set/Image.lean

tactic: rw [← image_preimage_coe, ← image_preimage_coe, coe_injective.image_injective.eq_iff]
state_before: α : Type u_1
s t u : Set α
⊢ val ⁻¹' t = val ⁻¹' u ↔ s ∩ t = s ∩ u
state_after: no goals
Theorem: ComplexShape.Embedding.rel_iff
File: Mathlib/Algebra/Homology/Embedding/Basic.lean

tactic: constructor
state_before: ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
e : c.Embedding c'
inst✝ : e.IsRelIff
i₁ i₂ : ι
⊢ c'.Rel (e.f i₁) (e.f i₂) ↔ c.Rel i₁ i₂
state_after: case mp
ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
e : c.Embedding c'
inst✝ : e.IsRelIff
i₁ i₂ : ι
⊢ c'.Rel (e.f i₁) (e.f i₂) → c.Rel i₁ i₂

case mpr
ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
e : c.Embedding c'
inst✝ : e.IsRelIff
i₁ i₂ : ι
⊢ c.Rel i₁ i₂ → c'.Rel (e.f i₁) (e.f i₂)

tactic: apply IsRelIff.rel'
state_before: case mp
ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
e : c.Embedding c'
inst✝ : e.IsRelIff
i₁ i₂ : ι
⊢ c'.Rel (e.f i₁) (e.f i₂) → c.Rel i₁ i₂
state_after: no goals

tactic: exact e.rel
state_before: case mpr
ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
e : c.Embedding c'
inst✝ : e.IsRelIff
i₁ i₂ : ι
⊢ c.Rel i₁ i₂ → c'.Rel (e.f i₁) (e.f i₂)
state_after: no goals
Theorem: div_le_comm₀
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [div_le_iff hb, div_le_iff' hc]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
hb : 0 < b
hc : 0 < c
⊢ a / b ≤ c ↔ a / c ≤ b
state_after: no goals
Theorem: List.pairwise_middle
File: .lake/packages/batteries/Batteries/Data/List/Pairwise.lean

tactic: show Pairwise R (l₁ ++ ([a] ++ l₂)) ↔ Pairwise R ([a] ++ l₁ ++ l₂)
state_before: α : Type u_1
R : α → α → Prop
s : ∀ {x y : α}, R x y → R y x
a : α
l₁ l₂ : List α
⊢ Pairwise R (l₁ ++ a :: l₂) ↔ Pairwise R (a :: (l₁ ++ l₂))
state_after: α : Type u_1
R : α → α → Prop
s : ∀ {x y : α}, R x y → R y x
a : α
l₁ l₂ : List α
⊢ Pairwise R (l₁ ++ ([a] ++ l₂)) ↔ Pairwise R ([a] ++ l₁ ++ l₂)

tactic: rw [← append_assoc, pairwise_append, @pairwise_append _ _ ([a] ++ l₁), pairwise_append_comm s]
state_before: α : Type u_1
R : α → α → Prop
s : ∀ {x y : α}, R x y → R y x
a : α
l₁ l₂ : List α
⊢ Pairwise R (l₁ ++ ([a] ++ l₂)) ↔ Pairwise R ([a] ++ l₁ ++ l₂)
state_after: α : Type u_1
R : α → α → Prop
s : ∀ {x y : α}, R x y → R y x
a : α
l₁ l₂ : List α
⊢ (Pairwise (fun {x y} => R x y) ([a] ++ l₁) ∧
      Pairwise R l₂ ∧ ∀ (a_1 : α), a_1 ∈ l₁ ++ [a] → ∀ (b : α), b ∈ l₂ → R a_1 b) ↔
    Pairwise R ([a] ++ l₁) ∧ Pairwise R l₂ ∧ ∀ (a_1 : α), a_1 ∈ [a] ++ l₁ → ∀ (b : α), b ∈ l₂ → R a_1 b

tactic: simp only [mem_append, or_comm]
state_before: α : Type u_1
R : α → α → Prop
s : ∀ {x y : α}, R x y → R y x
a : α
l₁ l₂ : List α
⊢ (Pairwise (fun {x y} => R x y) ([a] ++ l₁) ∧
      Pairwise R l₂ ∧ ∀ (a_1 : α), a_1 ∈ l₁ ++ [a] → ∀ (b : α), b ∈ l₂ → R a_1 b) ↔
    Pairwise R ([a] ++ l₁) ∧ Pairwise R l₂ ∧ ∀ (a_1 : α), a_1 ∈ [a] ++ l₁ → ∀ (b : α), b ∈ l₂ → R a_1 b
state_after: no goals
Theorem: Ordinal.nmul_nadd_le₃
File: Mathlib/SetTheory/Ordinal/NaturalOps.lean

tactic: simpa only [nadd_nmul, ← nadd_assoc] using nmul_nadd_le (nmul_nadd_le ha hb) hc
state_before: a b c d a' b' c' : Ordinal.{u}
ha : a' ≤ a
hb : b' ≤ b
hc : c' ≤ c
⊢ a' ⨳ b ⨳ c ♯ a ⨳ b' ⨳ c ♯ a ⨳ b ⨳ c' ♯ a' ⨳ b' ⨳ c' ≤ a ⨳ b ⨳ c ♯ a' ⨳ b' ⨳ c ♯ a' ⨳ b ⨳ c' ♯ a ⨳ b' ⨳ c'
state_after: no goals
Theorem: Quiver.eq_nil_of_length_zero
File: Mathlib/Combinatorics/Quiver/Cast.lean

tactic: cases p
state_before: U : Type u_1
inst✝ : Quiver U
u v : U
p : Path u v
hzero : p.length = 0
⊢ Path.cast ⋯ ⋯ p = nil
state_after: case nil
U : Type u_1
inst✝ : Quiver U
u : U
hzero : nil.length = 0
⊢ Path.cast ⋯ ⋯ nil = nil

case cons
U : Type u_1
inst✝ : Quiver U
u v b✝ : U
a✝¹ : Path u b✝
a✝ : b✝ ⟶ v
hzero : (a✝¹.cons a✝).length = 0
⊢ Path.cast ⋯ ⋯ (a✝¹.cons a✝) = nil

tactic: rfl
state_before: case nil
U : Type u_1
inst✝ : Quiver U
u : U
hzero : nil.length = 0
⊢ Path.cast ⋯ ⋯ nil = nil
state_after: no goals

tactic: simp only [Nat.succ_ne_zero, length_cons] at hzero
state_before: case cons
U : Type u_1
inst✝ : Quiver U
u v b✝ : U
a✝¹ : Path u b✝
a✝ : b✝ ⟶ v
hzero : (a✝¹.cons a✝).length = 0
⊢ Path.cast ⋯ ⋯ (a✝¹.cons a✝) = nil
state_after: no goals