1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.Measure.singularPart_eq_self
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: have h_dec := haveLebesgueDecomposition_add μ ν
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
⊢ μ.singularPart ν = μ ↔ μ ⟂ₘ ν
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
h_dec : μ = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)
⊢ μ.singularPart ν = μ ↔ μ ⟂ₘ ν

tactic: refine ⟨fun h ↦ ?_, fun  h ↦ ?_⟩
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
h_dec : μ = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)
⊢ μ.singularPart ν = μ ↔ μ ⟂ₘ ν
state_after: case refine_1
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
h_dec : μ = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)
h : μ.singularPart ν = μ
⊢ μ ⟂ₘ ν

case refine_2
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
h_dec : μ = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)
h : μ ⟂ₘ ν
⊢ μ.singularPart ν = μ

tactic: rw [← h]
state_before: case refine_1
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
h_dec : μ = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)
h : μ.singularPart ν = μ
⊢ μ ⟂ₘ ν
state_after: case refine_1
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
h_dec : μ = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)
h : μ.singularPart ν = μ
⊢ μ.singularPart ν ⟂ₘ ν

tactic: exact mutuallySingular_singularPart _ _
state_before: case refine_1
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
h_dec : μ = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)
h : μ.singularPart ν = μ
⊢ μ.singularPart ν ⟂ₘ ν
state_after: no goals

tactic: conv_rhs => rw [h_dec]
state_before: case refine_2
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
h_dec : μ = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)
h : μ ⟂ₘ ν
⊢ μ.singularPart ν = μ
state_after: case refine_2
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
h_dec : μ = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)
h : μ ⟂ₘ ν
⊢ μ.singularPart ν = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)

tactic: rw [(withDensity_rnDeriv_eq_zero _ _).mpr h, add_zero]
state_before: case refine_2
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
h_dec : μ = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)
h : μ ⟂ₘ ν
⊢ μ.singularPart ν = μ.singularPart ν + ν.withDensity (μ.rnDeriv ν)
state_after: no goals
Theorem: Cardinal.mk_option
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [(Equiv.optionEquivSumPUnit.{u, u} α).cardinal_eq, mk_sum, mk_eq_one PUnit, lift_id, lift_id]
state_before: α✝ β α : Type u
⊢ #(Option α) = #α + 1
state_after: no goals
Theorem: EuclideanGeometry.cos_oangle_left_of_oangle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean

tactic: have hs : (∡ p₃ p₁ p₂).sign = 1 := by rw [← oangle_rotate_sign, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ (∡ p₃ p₁ p₂).cos = dist p₁ p₂ / dist p₁ p₃
state_after: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
hs : (∡ p₃ p₁ p₂).sign = 1
⊢ (∡ p₃ p₁ p₂).cos = dist p₁ p₂ / dist p₁ p₃

tactic: rw [oangle_eq_angle_of_sign_eq_one hs, angle_comm, Real.Angle.cos_coe,
  cos_angle_of_angle_eq_pi_div_two (angle_rev_eq_pi_div_two_of_oangle_eq_pi_div_two h),
  dist_comm p₁ p₃]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
hs : (∡ p₃ p₁ p₂).sign = 1
⊢ (∡ p₃ p₁ p₂).cos = dist p₁ p₂ / dist p₁ p₃
state_after: no goals

tactic: rw [← oangle_rotate_sign, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ (∡ p₃ p₁ p₂).sign = 1
state_after: no goals
Theorem: Set.infsep_pair_eq_toReal
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: by_cases hxy : x = y
state_before: α : Type u_1
β : Type u_2
inst✝ : PseudoEMetricSpace α
x y : α
s : Set α
⊢ {x, y}.infsep = (edist x y).toReal
state_after: case pos
α : Type u_1
β : Type u_2
inst✝ : PseudoEMetricSpace α
x y : α
s : Set α
hxy : x = y
⊢ {x, y}.infsep = (edist x y).toReal

case neg
α : Type u_1
β : Type u_2
inst✝ : PseudoEMetricSpace α
x y : α
s : Set α
hxy : ¬x = y
⊢ {x, y}.infsep = (edist x y).toReal

tactic: rw [hxy]
state_before: case pos
α : Type u_1
β : Type u_2
inst✝ : PseudoEMetricSpace α
x y : α
s : Set α
hxy : x = y
⊢ {x, y}.infsep = (edist x y).toReal
state_after: case pos
α : Type u_1
β : Type u_2
inst✝ : PseudoEMetricSpace α
x y : α
s : Set α
hxy : x = y
⊢ {y, y}.infsep = (edist y y).toReal

tactic: simp only [infsep_singleton, pair_eq_singleton, edist_self, ENNReal.zero_toReal]
state_before: case pos
α : Type u_1
β : Type u_2
inst✝ : PseudoEMetricSpace α
x y : α
s : Set α
hxy : x = y
⊢ {y, y}.infsep = (edist y y).toReal
state_after: no goals

tactic: rw [infsep, einfsep_pair hxy]
state_before: case neg
α : Type u_1
β : Type u_2
inst✝ : PseudoEMetricSpace α
x y : α
s : Set α
hxy : ¬x = y
⊢ {x, y}.infsep = (edist x y).toReal
state_after: no goals
Theorem: List.infix_append'
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: rw [← List.append_assoc]
state_before: α : Type u_1
l₁ l₂ l₃ : List α
⊢ l₂ <:+: l₁ ++ (l₂ ++ l₃)
state_after: α : Type u_1
l₁ l₂ l₃ : List α
⊢ l₂ <:+: l₁ ++ l₂ ++ l₃

tactic: apply infix_append
state_before: α : Type u_1
l₁ l₂ l₃ : List α
⊢ l₂ <:+: l₁ ++ l₂ ++ l₃
state_after: no goals
Theorem: MeasurableSpace.DynkinSystem.has_union
File: Mathlib/MeasureTheory/PiSystem.lean

tactic: rw [union_eq_iUnion]
state_before: α : Type u_1
d : DynkinSystem α
s₁ s₂ : Set α
h₁ : d.Has s₁
h₂ : d.Has s₂
h : Disjoint s₁ s₂
⊢ d.Has (s₁ ∪ s₂)
state_after: α : Type u_1
d : DynkinSystem α
s₁ s₂ : Set α
h₁ : d.Has s₁
h₂ : d.Has s₂
h : Disjoint s₁ s₂
⊢ d.Has (⋃ b, bif b then s₁ else s₂)

tactic: exact d.has_iUnion (pairwise_disjoint_on_bool.2 h) (Bool.forall_bool.2 ⟨h₂, h₁⟩)
state_before: α : Type u_1
d : DynkinSystem α
s₁ s₂ : Set α
h₁ : d.Has s₁
h₂ : d.Has s₂
h : Disjoint s₁ s₂
⊢ d.Has (⋃ b, bif b then s₁ else s₂)
state_after: no goals
Theorem: IsUnit.div_eq_iff
File: Mathlib/Algebra/Group/Units.lean

tactic: rw [div_eq_mul_inv, h.mul_inv_eq_iff_eq_mul]
state_before: α : Type u
M : Type u_1
N : Type u_2
inst✝ : DivisionMonoid α
a b c : α
h : IsUnit b
⊢ a / b = c ↔ a = c * b
state_after: no goals
Theorem: MeasureTheory.tilted_neg_same'
File: Mathlib/MeasureTheory/Measure/Tilted.lean

tactic: rw [tilted_tilted hf]
state_before: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Integrable (fun x => rexp (f x)) μ
⊢ (μ.tilted f).tilted (-f) = (μ Set.univ)⁻¹ • μ
state_after: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Integrable (fun x => rexp (f x)) μ
⊢ μ.tilted (f + -f) = (μ Set.univ)⁻¹ • μ

tactic: simp
state_before: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Integrable (fun x => rexp (f x)) μ
⊢ μ.tilted (f + -f) = (μ Set.univ)⁻¹ • μ
state_after: no goals
Theorem: IsCompact.closure_eq_biUnion_closure_singleton
File: Mathlib/Topology/Separation.lean

tactic: simp only [hK.closure_eq_biUnion_inseparable, ← specializes_iff_inseparable,
  specializes_iff_mem_closure, setOf_mem_eq]
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
K : Set X
hK : IsCompact K
⊢ closure K = ⋃ x ∈ K, closure {x}
state_after: no goals
Theorem: Behrend.ceil_lt_mul
File: Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean

tactic: refine (ceil_lt_add_one <| hx.trans' <| by norm_num).trans_le ?_
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ ↑⌈x⌉₊ < 1.38 * x
state_after: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ x + 1 ≤ 1.38 * x

tactic: rw [← le_sub_iff_add_le', ← sub_one_mul]
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ x + 1 ≤ 1.38 * x
state_after: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ 1 ≤ (1.38 - 1) * x

tactic: have : (1.38 : ℝ) = 69 / 50 := by norm_num
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ 1 ≤ (1.38 - 1) * x
state_after: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
this : 1.38 = 69 / 50
⊢ 1 ≤ (1.38 - 1) * x

tactic: rwa [this, show (69 / 50 - 1 : ℝ) = (50 / 19)⁻¹ by norm_num1, ←
  div_eq_inv_mul, one_le_div]
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
this : 1.38 = 69 / 50
⊢ 1 ≤ (1.38 - 1) * x
state_after: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
this : 1.38 = 69 / 50
⊢ 0 < 50 / 19

tactic: norm_num1
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
this : 1.38 = 69 / 50
⊢ 0 < 50 / 19
state_after: no goals

tactic: norm_num
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ 0 ≤ 50 / 19
state_after: no goals

tactic: norm_num
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ 1.38 = 69 / 50
state_after: no goals

tactic: norm_num1
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
this : 1.38 = 69 / 50
⊢ 69 / 50 - 1 = (50 / 19)⁻¹
state_after: no goals
Theorem: Finset.le_sum_schlomilch
File: Mathlib/Analysis/PSeries.lean

tactic: convert add_le_add_left (le_sum_schlomilch' hf h_pos hu n) (∑ k ∈ range (u 0), f k)
state_before: M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
u : ℕ → ℕ
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
hu : Monotone u
n : ℕ
⊢ ∑ k ∈ range (u n), f k ≤ ∑ k ∈ range (u 0), f k + ∑ k ∈ range n, (u (k + 1) - u k) • f (u k)
state_after: case h.e'_3
M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
u : ℕ → ℕ
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
hu : Monotone u
n : ℕ
⊢ ∑ k ∈ range (u n), f k = ∑ k ∈ range (u 0), f k + ∑ k ∈ Ico (u 0) (u n), f k

tactic: rw [← sum_range_add_sum_Ico _ (hu n.zero_le)]
state_before: case h.e'_3
M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
u : ℕ → ℕ
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
hu : Monotone u
n : ℕ
⊢ ∑ k ∈ range (u n), f k = ∑ k ∈ range (u 0), f k + ∑ k ∈ Ico (u 0) (u n), f k
state_after: no goals
Theorem: Rat.ceil_cast
File: Mathlib/Data/Rat/Floor.lean

tactic: rw [← neg_inj, ← floor_neg, ← floor_neg, ← Rat.cast_neg, Rat.floor_cast]
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
x : ℚ
⊢ ⌈↑x⌉ = ⌈x⌉
state_after: no goals
Theorem: Homeomorph.toContinuousMap_comp_symm
File: Mathlib/Topology/ContinuousFunction/Basic.lean

tactic: rw [← coe_trans, symm_trans_self, coe_refl]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
f : α ≃ₜ β
g : β ≃ₜ γ
⊢ f.toContinuousMap.comp f.symm.toContinuousMap = ContinuousMap.id β
state_after: no goals
Theorem: Finset.inter_sdiff_self
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [mem_inter, mem_sdiff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b : α
s₁ s₂ : Finset α
⊢ ∀ (x : α), x ∉ s₁ ∩ (s₂ \ s₁)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b : α
s₁ s₂ : Finset α
⊢ ∀ (x : α), ¬(x ∈ s₁ ∧ x ∈ s₂ ∧ x ∉ s₁)

tactic: rintro x ⟨h, _, hn⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b : α
s₁ s₂ : Finset α
⊢ ∀ (x : α), ¬(x ∈ s₁ ∧ x ∈ s₂ ∧ x ∉ s₁)
state_after: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b : α
s₁ s₂ : Finset α
x : α
h : x ∈ s₁
left✝ : x ∈ s₂
hn : x ∉ s₁
⊢ False

tactic: exact hn h
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b : α
s₁ s₂ : Finset α
x : α
h : x ∈ s₁
left✝ : x ∈ s₂
hn : x ∉ s₁
⊢ False
state_after: no goals
Theorem: RCLike.neg_iff
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: simpa only [map_zero] using lt_iff_re_im (z := z) (w := 0)
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
⊢ z < 0 ↔ re z < 0 ∧ im z = 0
state_after: no goals
Theorem: FirstOrder.Language.Theory.SemanticallyEquivalent.refl
File: Mathlib/ModelTheory/Satisfiability.lean

tactic: rw [BoundedFormula.realize_iff]
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
φ : L.BoundedFormula α n
M : T.ModelType
v : α → ↑M
xs : Fin n → ↑M
⊢ (φ ⇔ φ).Realize v xs
state_after: no goals
Theorem: Matroid.basis_restrict_iff'
File: Mathlib/Data/Matroid/Restrict.lean

tactic: rw [basis_iff_basis'_subset_ground, basis'_restrict_iff, restrict_ground_eq, and_congr_left_iff,
  ← basis'_iff_basis_inter_ground]
state_before: α : Type u_1
M : Matroid α
R I J X Y : Set α
⊢ (M ↾ R).Basis I X ↔ M.Basis I (X ∩ M.E) ∧ X ⊆ R
state_after: α : Type u_1
M : Matroid α
R I J X Y : Set α
⊢ X ⊆ R → (M.Basis' I (X ∩ R) ∧ I ⊆ R ↔ M.Basis' I X)

tactic: intro hXR
state_before: α : Type u_1
M : Matroid α
R I J X Y : Set α
⊢ X ⊆ R → (M.Basis' I (X ∩ R) ∧ I ⊆ R ↔ M.Basis' I X)
state_after: α : Type u_1
M : Matroid α
R I J X Y : Set α
hXR : X ⊆ R
⊢ M.Basis' I (X ∩ R) ∧ I ⊆ R ↔ M.Basis' I X

tactic: rw [inter_eq_self_of_subset_left hXR, and_iff_left_iff_imp]
state_before: α : Type u_1
M : Matroid α
R I J X Y : Set α
hXR : X ⊆ R
⊢ M.Basis' I (X ∩ R) ∧ I ⊆ R ↔ M.Basis' I X
state_after: α : Type u_1
M : Matroid α
R I J X Y : Set α
hXR : X ⊆ R
⊢ M.Basis' I X → I ⊆ R

tactic: exact fun h ↦ h.subset.trans hXR
state_before: α : Type u_1
M : Matroid α
R I J X Y : Set α
hXR : X ⊆ R
⊢ M.Basis' I X → I ⊆ R
state_after: no goals
Theorem: Set.pairwise_pair_of_symmetric
File: Mathlib/Data/Set/Pairwise/Basic.lean

tactic: simp [pairwise_insert_of_symmetric hr]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
r p q : α → α → Prop
f g : ι → α
s t u : Set α
a b : α
hr : Symmetric r
⊢ {a, b}.Pairwise r ↔ a ≠ b → r a b
state_after: no goals
Theorem: Even.pow_nonneg
File: Mathlib/Algebra/Order/Ring/Basic.lean

tactic: obtain ⟨k, rfl⟩ := hn
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a✝ b : R
m n : ℕ
inst✝ : ExistsAddOfLE R
hn : Even n
a : R
⊢ 0 ≤ a ^ n
state_after: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a✝ b : R
m : ℕ
inst✝ : ExistsAddOfLE R
a : R
k : ℕ
⊢ 0 ≤ a ^ (k + k)

tactic: rw [pow_add]
state_before: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a✝ b : R
m : ℕ
inst✝ : ExistsAddOfLE R
a : R
k : ℕ
⊢ 0 ≤ a ^ (k + k)
state_after: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a✝ b : R
m : ℕ
inst✝ : ExistsAddOfLE R
a : R
k : ℕ
⊢ 0 ≤ a ^ k * a ^ k

tactic: exact mul_self_nonneg _
state_before: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a✝ b : R
m : ℕ
inst✝ : ExistsAddOfLE R
a : R
k : ℕ
⊢ 0 ≤ a ^ k * a ^ k
state_after: no goals
Theorem: SimpleGraph.card_cliqueFinset_le
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

tactic: rw [← card_univ, ← card_powersetCard]
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
inst✝² : Fintype α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
n : ℕ
a b c : α
s : Finset α
⊢ (G.cliqueFinset n).card ≤ (Fintype.card α).choose n
state_after: α : Type u_1
β : Type u_2
G H : SimpleGraph α
inst✝² : Fintype α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
n : ℕ
a b c : α
s : Finset α
⊢ (G.cliqueFinset n).card ≤ (powersetCard n univ).card

tactic: refine card_mono fun s => ?_
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
inst✝² : Fintype α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
n : ℕ
a b c : α
s : Finset α
⊢ (G.cliqueFinset n).card ≤ (powersetCard n univ).card
state_after: α : Type u_1
β : Type u_2
G H : SimpleGraph α
inst✝² : Fintype α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
n : ℕ
a b c : α
s✝ s : Finset α
⊢ s ∈ G.cliqueFinset n → s ∈ powersetCard n univ

tactic: simpa [mem_powersetCard_univ] using IsNClique.card_eq
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
inst✝² : Fintype α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
n : ℕ
a b c : α
s✝ s : Finset α
⊢ s ∈ G.cliqueFinset n → s ∈ powersetCard n univ
state_after: no goals
Theorem: PiLp.nnnorm_equiv
File: Mathlib/Analysis/NormedSpace/PiLp.lean

tactic: rw [nnnorm_eq_ciSup, Pi.nnnorm_def, Finset.sup_univ_eq_ciSup]
state_before: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝² : Fact (1 ≤ p)
inst✝¹ : Fintype ι
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
f : PiLp ⊤ β
⊢ ‖(WithLp.equiv ⊤ ((i : ι) → β i)) f‖₊ = ‖f‖₊
state_after: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝² : Fact (1 ≤ p)
inst✝¹ : Fintype ι
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
f : PiLp ⊤ β
⊢ ⨆ i, ‖(WithLp.equiv ⊤ ((i : ι) → β i)) f i‖₊ = ⨆ i, ‖f i‖₊

tactic: dsimp only [WithLp.equiv_pi_apply]
state_before: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝² : Fact (1 ≤ p)
inst✝¹ : Fintype ι
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
f : PiLp ⊤ β
⊢ ⨆ i, ‖(WithLp.equiv ⊤ ((i : ι) → β i)) f i‖₊ = ⨆ i, ‖f i‖₊
state_after: no goals
Theorem: CategoryTheory.Localization.functor_additive
File: Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean

tactic: apply Preadditive.map_add
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{u_4, u_2} D
inst✝² : Preadditive C
L : C ⥤ D
W : MorphismProperty C
inst✝¹ : L.IsLocalization W
inst✝ : W.HasLeftCalculusOfFractions
this : Preadditive D := preadditive L W
⊢ ∀ {X Y : C} {f g : X ⟶ Y}, L.map (f + g) = L.map f + L.map g
state_after: no goals
Theorem: ENNReal.iInf_mul
File: Mathlib/Data/ENNReal/Real.lean

tactic: by_cases h0 : x = 0
state_before: ι✝ : Sort u_1
f✝ g : ι✝ → ℝ≥0∞
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι : Sort u_2
inst✝ : Nonempty ι
f : ι → ℝ≥0∞
x : ℝ≥0∞
h : x ≠ ⊤
⊢ iInf f * x = ⨅ i, f i * x
state_after: case pos
ι✝ : Sort u_1
f✝ g : ι✝ → ℝ≥0∞
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι : Sort u_2
inst✝ : Nonempty ι
f : ι → ℝ≥0∞
x : ℝ≥0∞
h : x ≠ ⊤
h0 : x = 0
⊢ iInf f * x = ⨅ i, f i * x

case neg
ι✝ : Sort u_1
f✝ g : ι✝ → ℝ≥0∞
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι : Sort u_2
inst✝ : Nonempty ι
f : ι → ℝ≥0∞
x : ℝ≥0∞
h : x ≠ ⊤
h0 : ¬x = 0
⊢ iInf f * x = ⨅ i, f i * x

tactic: simp only [h0, mul_zero, iInf_const]
state_before: case pos
ι✝ : Sort u_1
f✝ g : ι✝ → ℝ≥0∞
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι : Sort u_2
inst✝ : Nonempty ι
f : ι → ℝ≥0∞
x : ℝ≥0∞
h : x ≠ ⊤
h0 : x = 0
⊢ iInf f * x = ⨅ i, f i * x
state_after: no goals

tactic: exact iInf_mul_of_ne h0 h
state_before: case neg
ι✝ : Sort u_1
f✝ g : ι✝ → ℝ≥0∞
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι : Sort u_2
inst✝ : Nonempty ι
f : ι → ℝ≥0∞
x : ℝ≥0∞
h : x ≠ ⊤
h0 : ¬x = 0
⊢ iInf f * x = ⨅ i, f i * x
state_after: no goals
Theorem: DFinsupp.neLocus_eq_empty
File: Mathlib/Data/DFinsupp/NeLocus.lean

tactic: simp only [neLocus, Ne, eq_self_iff_true, not_true, Finset.filter_False]
state_before: α : Type u_1
N : α → Type u_2
inst✝² : DecidableEq α
inst✝¹ : (a : α) → DecidableEq (N a)
inst✝ : (a : α) → Zero (N a)
f✝ g✝ f g : Π₀ (a : α), N a
h : f = g
⊢ f.neLocus f = ∅
state_after: no goals
Theorem: LinearMap.BilinForm.smul_left_of_tower
File: Mathlib/LinearAlgebra/BilinearForm/Basic.lean

tactic: rw [← IsScalarTower.algebraMap_smul R r, smul_left, Algebra.smul_def]
state_before: R : Type u_1
M : Type u_2
inst✝¹² : CommSemiring R
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : Module R M
S : Type u_3
inst✝⁹ : CommSemiring S
inst✝⁸ : Algebra S R
inst✝⁷ : Module S M
inst✝⁶ : IsScalarTower S R M
R₁ : Type u_4
M₁ : Type u_5
inst✝⁵ : CommRing R₁
inst✝⁴ : AddCommGroup M₁
inst✝³ : Module R₁ M₁
V : Type u_6
K : Type u_7
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
B : BilinForm R M
B₁ : BilinForm R₁ M₁
r : S
x y : M
⊢ (B (r • x)) y = r • (B x) y
state_after: no goals
Theorem: CategoryTheory.Presieve.isSheafFor_iff_preservesProduct
File: Mathlib/CategoryTheory/Sites/Preserves.lean

tactic: refine ⟨fun hF' ↦ ⟨preservesProductOfIsSheafFor _ hF hI c hc hd hF'⟩, fun hF' ↦ ?_⟩
state_before: C : Type u
inst✝³ : Category.{v, u} C
I : C
F : Cᵒᵖ ⥤ Type w
hF : IsSheafFor F (ofArrows Empty.elim fun a => instIsEmptyEmpty.elim a)
hI : IsInitial I
α : Type
X : α → C
c : Cofan X
hc : IsColimit c
inst✝² : (ofArrows X c.inj).hasPullbacks
inst✝¹ : HasInitial C
inst✝ : ∀ (i : α), Mono (c.inj i)
hd : Pairwise fun i j => IsPullback (initial.to (X i)) (initial.to (X j)) (c.inj i) (c.inj j)
⊢ IsSheafFor F (ofArrows X c.inj) ↔ Nonempty (PreservesLimit (Discrete.functor fun x => { unop := X x }) F)
state_after: C : Type u
inst✝³ : Category.{v, u} C
I : C
F : Cᵒᵖ ⥤ Type w
hF : IsSheafFor F (ofArrows Empty.elim fun a => instIsEmptyEmpty.elim a)
hI : IsInitial I
α : Type
X : α → C
c : Cofan X
hc : IsColimit c
inst✝² : (ofArrows X c.inj).hasPullbacks
inst✝¹ : HasInitial C
inst✝ : ∀ (i : α), Mono (c.inj i)
hd : Pairwise fun i j => IsPullback (initial.to (X i)) (initial.to (X j)) (c.inj i) (c.inj j)
hF' : Nonempty (PreservesLimit (Discrete.functor fun x => { unop := X x }) F)
⊢ IsSheafFor F (ofArrows X c.inj)

tactic: let _ := hF'.some
state_before: C : Type u
inst✝³ : Category.{v, u} C
I : C
F : Cᵒᵖ ⥤ Type w
hF : IsSheafFor F (ofArrows Empty.elim fun a => instIsEmptyEmpty.elim a)
hI : IsInitial I
α : Type
X : α → C
c : Cofan X
hc : IsColimit c
inst✝² : (ofArrows X c.inj).hasPullbacks
inst✝¹ : HasInitial C
inst✝ : ∀ (i : α), Mono (c.inj i)
hd : Pairwise fun i j => IsPullback (initial.to (X i)) (initial.to (X j)) (c.inj i) (c.inj j)
hF' : Nonempty (PreservesLimit (Discrete.functor fun x => { unop := X x }) F)
⊢ IsSheafFor F (ofArrows X c.inj)
state_after: C : Type u
inst✝³ : Category.{v, u} C
I : C
F : Cᵒᵖ ⥤ Type w
hF : IsSheafFor F (ofArrows Empty.elim fun a => instIsEmptyEmpty.elim a)
hI : IsInitial I
α : Type
X : α → C
c : Cofan X
hc : IsColimit c
inst✝² : (ofArrows X c.inj).hasPullbacks
inst✝¹ : HasInitial C
inst✝ : ∀ (i : α), Mono (c.inj i)
hd : Pairwise fun i j => IsPullback (initial.to (X i)) (initial.to (X j)) (c.inj i) (c.inj j)
hF' : Nonempty (PreservesLimit (Discrete.functor fun x => { unop := X x }) F)
x✝ : PreservesLimit (Discrete.functor fun x => { unop := X x }) F := hF'.some
⊢ IsSheafFor F (ofArrows X c.inj)

tactic: exact isSheafFor_of_preservesProduct F c hc
state_before: C : Type u
inst✝³ : Category.{v, u} C
I : C
F : Cᵒᵖ ⥤ Type w
hF : IsSheafFor F (ofArrows Empty.elim fun a => instIsEmptyEmpty.elim a)
hI : IsInitial I
α : Type
X : α → C
c : Cofan X
hc : IsColimit c
inst✝² : (ofArrows X c.inj).hasPullbacks
inst✝¹ : HasInitial C
inst✝ : ∀ (i : α), Mono (c.inj i)
hd : Pairwise fun i j => IsPullback (initial.to (X i)) (initial.to (X j)) (c.inj i) (c.inj j)
hF' : Nonempty (PreservesLimit (Discrete.functor fun x => { unop := X x }) F)
x✝ : PreservesLimit (Discrete.functor fun x => { unop := X x }) F := hF'.some
⊢ IsSheafFor F (ofArrows X c.inj)
state_after: no goals