1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.setIntegral_indicatorConstLp
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: rw [setIntegral_congr_ae hs (indicatorConstLp_coeFn.mono fun x hx _ => hx)]
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : MeasurableSpace X
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f g : X → E
s t : Set X
μ ν : Measure X
l l' : Filter X
inst✝ : CompleteSpace E
p : ℝ≥0∞
hs : MeasurableSet s
ht : MeasurableSet t
hμt : μ t ≠ ⊤
e : E
⊢ ∫ (x : X) in s, ↑↑(indicatorConstLp p ht hμt e) x ∂μ = ∫ (x : X) in s, t.indicator (fun x => e) x ∂μ
state_after: no goals

tactic: rw [integral_indicator_const _ ht, Measure.restrict_apply ht]
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : MeasurableSpace X
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f g : X → E
s t : Set X
μ ν : Measure X
l l' : Filter X
inst✝ : CompleteSpace E
p : ℝ≥0∞
hs : MeasurableSet s
ht : MeasurableSet t
hμt : μ t ≠ ⊤
e : E
⊢ ∫ (x : X) in s, t.indicator (fun x => e) x ∂μ = (μ (t ∩ s)).toReal • e
state_after: no goals
Theorem: algebraMap_pos
File: Mathlib/Algebra/Order/Module/Algebra.lean

tactic: simpa using algebraMap_strictMono β ha
state_before: α : Type u_1
β : Type u_2
inst✝³ : OrderedCommSemiring α
inst✝² : StrictOrderedSemiring β
inst✝¹ : Algebra α β
inst✝ : SMulPosStrictMono α β
a a₁ a₂ : α
ha : 0 < a
⊢ 0 < (algebraMap α β) a
state_after: no goals
Theorem: WeierstrassCurve.Ψ_four
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean

tactic: erw [Ψ_ofNat, preΨ'_four, if_pos <| by decide]
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ W.Ψ 4 = C W.preΨ₄ * W.ψ₂
state_after: no goals

tactic: decide
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ Even 4
state_after: no goals
Theorem: GeneralizedContinuedFraction.zeroth_convergent_eq_h
File: Mathlib/Algebra/ContinuedFractions/Translations.lean

tactic: simp [convergent_eq_num_div_denom, num_eq_conts_a, denom_eq_conts_b, div_one]
state_before: K : Type u_1
g : GeneralizedContinuedFraction K
n : ℕ
inst✝ : DivisionRing K
⊢ g.convergents 0 = g.h
state_after: no goals
Theorem: NonUnitalAlgebra.span_eq_toSubmodule
File: Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean

tactic: simp [SetLike.ext'_iff, Submodule.coe_span_eq_self]
state_before: F : Type u_1
R : Type u
A : Type v
B : Type w
inst✝¹⁰ : CommSemiring R
inst✝⁹ : NonUnitalNonAssocSemiring A
inst✝⁸ : Module R A
inst✝⁷ : IsScalarTower R A A
inst✝⁶ : SMulCommClass R A A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : Module R B
inst✝³ : IsScalarTower R B B
inst✝² : SMulCommClass R B B
inst✝¹ : FunLike F A B
inst✝ : NonUnitalAlgHomClass F R A B
s : NonUnitalSubalgebra R A
⊢ Submodule.span R ↑s = s.toSubmodule
state_after: no goals
Theorem: lp.norm_compl_sum_single
File: Mathlib/Analysis/NormedSpace/lpSpace.lean

tactic: linarith [lp.norm_sub_norm_compl_sub_single hp f s]
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁴ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝³ : NormedRing 𝕜
inst✝² : (i : α) → Module 𝕜 (E i)
inst✝¹ : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝ : DecidableEq α
hp : 0 < p.toReal
f : ↥(lp E p)
s : Finset α
⊢ ‖f - ∑ i ∈ s, lp.single p i (↑f i)‖ ^ p.toReal = ‖f‖ ^ p.toReal - ∑ i ∈ s, ‖↑f i‖ ^ p.toReal
state_after: no goals
Theorem: TrivSqZeroExt.lift_apply_inr
File: Mathlib/Algebra/TrivSqZeroExt.lean

tactic: rw [map_zero, zero_add]
state_before: S : Type u_1
R R' : Type u
M : Type v
inst✝¹⁸ : CommSemiring S
inst✝¹⁷ : Semiring R
inst✝¹⁶ : CommSemiring R'
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : Algebra S R
inst✝¹³ : Algebra S R'
inst✝¹² : Module S M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module Rᵐᵒᵖ M
inst✝⁹ : SMulCommClass R Rᵐᵒᵖ M
inst✝⁸ : IsScalarTower S R M
inst✝⁷ : IsScalarTower S Rᵐᵒᵖ M
inst✝⁶ : Module R' M
inst✝⁵ : Module R'ᵐᵒᵖ M
inst✝⁴ : IsCentralScalar R' M
inst✝³ : IsScalarTower S R' M
A : Type u_2
inst✝² : Semiring A
inst✝¹ : Algebra S A
inst✝ : Algebra R' A
f : R →ₐ[S] A
g : M →ₗ[S] A
hg : ∀ (x y : M), g x * g y = 0
hfg : ∀ (r : R) (x : M), g (r •> x) = f r * g x
hgf : ∀ (r : R) (x : M), g (x <• r) = g x * f r
m : M
⊢ f 0 + g m = g m
state_after: no goals
Theorem: eVariationOn.sum_le_of_monotoneOn_Iic
File: Mathlib/Analysis/BoundedVariation.lean

tactic: simpa using sum_le_of_monotoneOn_Icc f (m := 0) (hu.mono Icc_subset_Iic_self) fun i hi ↦ us i hi.2
state_before: α : Type u_1
inst✝¹ : LinearOrder α
E : Type u_2
inst✝ : PseudoEMetricSpace E
f : α → E
s : Set α
n : ℕ
u : ℕ → α
hu : MonotoneOn u (Iic n)
us : ∀ i ≤ n, u i ∈ s
⊢ ∑ i ∈ Finset.range n, edist (f (u (i + 1))) (f (u i)) ≤ eVariationOn f s
state_after: no goals
Theorem: tendsto_ratCast_atTop_iff
File: Mathlib/Order/Filter/Archimedean.lean

tactic: rw [← @Rat.comap_cast_atTop R, tendsto_comap_iff]
state_before: α : Type u_1
R : Type u_2
inst✝¹ : LinearOrderedField R
inst✝ : Archimedean R
f : α → ℚ
l : Filter α
⊢ Tendsto (fun n => ↑(f n)) l atTop ↔ Tendsto f l atTop
state_after: α : Type u_1
R : Type u_2
inst✝¹ : LinearOrderedField R
inst✝ : Archimedean R
f : α → ℚ
l : Filter α
⊢ Tendsto (fun n => ↑(f n)) l atTop ↔ Tendsto (Rat.cast ∘ f) l atTop

tactic: rfl
state_before: α : Type u_1
R : Type u_2
inst✝¹ : LinearOrderedField R
inst✝ : Archimedean R
f : α → ℚ
l : Filter α
⊢ Tendsto (fun n => ↑(f n)) l atTop ↔ Tendsto (Rat.cast ∘ f) l atTop
state_after: no goals
Theorem: Vector.mem_map_succ_iff
File: Mathlib/Data/Vector/Mem.lean

tactic: rw [mem_succ_iff, head_map, tail_map, mem_map_iff, @eq_comm _ b]
state_before: α : Type u_1
β : Type u_2
n : ℕ
a a' : α
b : β
v : Vector α (n + 1)
f : α → β
⊢ b ∈ (map f v).toList ↔ f v.head = b ∨ ∃ a ∈ v.tail.toList, f a = b
state_after: no goals
Theorem: AffineMap.lineMap_mem
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [AffineMap.lineMap_apply]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
Q : AffineSubspace k P
p₀ p₁ : P
c : k
h₀ : p₀ ∈ Q
h₁ : p₁ ∈ Q
⊢ (lineMap p₀ p₁) c ∈ Q
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
Q : AffineSubspace k P
p₀ p₁ : P
c : k
h₀ : p₀ ∈ Q
h₁ : p₁ ∈ Q
⊢ c • (p₁ -ᵥ p₀) +ᵥ p₀ ∈ Q

tactic: exact Q.smul_vsub_vadd_mem c h₁ h₀ h₀
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
Q : AffineSubspace k P
p₀ p₁ : P
c : k
h₀ : p₀ ∈ Q
h₁ : p₁ ∈ Q
⊢ c • (p₁ -ᵥ p₀) +ᵥ p₀ ∈ Q
state_after: no goals
Theorem: egauge_le_one
File: Mathlib/Analysis/Convex/EGauge.lean

tactic: rw [← one_smul 𝕜 s] at h
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0∞
h : x ∈ s
⊢ egauge 𝕜 s x ≤ 1
state_after: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0∞
h : x ∈ 1 • s
⊢ egauge 𝕜 s x ≤ 1

tactic: simpa using egauge_le_of_mem_smul h
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0∞
h : x ∈ 1 • s
⊢ egauge 𝕜 s x ≤ 1
state_after: no goals
Theorem: Set.mulIndicator_preimage_of_not_mem
File: Mathlib/Algebra/Group/Indicator.lean

tactic: simp [mulIndicator_preimage, Pi.one_def, Set.preimage_const_of_not_mem ht]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : One M
inst✝ : One N
s✝ t✝ : Set α
f✝ g : α → M
a : α
s : Set α
f : α → M
t : Set M
ht : 1 ∉ t
⊢ s.mulIndicator f ⁻¹' t = f ⁻¹' t ∩ s
state_after: no goals
Theorem: Finsupp.add_eq_zero_iff
File: Mathlib/Data/Finsupp/Order.lean

tactic: simp [DFunLike.ext_iff, forall_and]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : CanonicallyOrderedAddCommMonoid α
f✝ g✝ f g : ι →₀ α
⊢ f + g = 0 ↔ f = 0 ∧ g = 0
state_after: no goals
Theorem: MeasureTheory.Integrable.re_im_iff
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp_rw [← memℒp_one_iff_integrable]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_5
inst✝ : RCLike 𝕜
f : α → 𝕜
⊢ Integrable (fun x => RCLike.re (f x)) μ ∧ Integrable (fun x => RCLike.im (f x)) μ ↔ Integrable f μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_5
inst✝ : RCLike 𝕜
f : α → 𝕜
⊢ Memℒp (fun x => RCLike.re (f x)) 1 μ ∧ Memℒp (fun x => RCLike.im (f x)) 1 μ ↔ Memℒp f 1 μ

tactic: exact memℒp_re_im_iff
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_5
inst✝ : RCLike 𝕜
f : α → 𝕜
⊢ Memℒp (fun x => RCLike.re (f x)) 1 μ ∧ Memℒp (fun x => RCLike.im (f x)) 1 μ ↔ Memℒp f 1 μ
state_after: no goals
Theorem: Real.Angle.cos_add_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: induction θ using Real.Angle.induction_on
state_before: θ : Angle
⊢ (θ + ↑(π / 2)).cos = -θ.sin
state_after: case h
x✝ : ℝ
⊢ (↑x✝ + ↑(π / 2)).cos = -(↑x✝).sin

tactic: exact Real.cos_add_pi_div_two _
state_before: case h
x✝ : ℝ
⊢ (↑x✝ + ↑(π / 2)).cos = -(↑x✝).sin
state_after: no goals
Theorem: PadicSeq.norm_equiv
File: Mathlib/NumberTheory/Padics/PadicNumbers.lean

tactic: have hg : g ≈ 0 := Setoid.trans (Setoid.symm hfg) hf
state_before: p : ℕ
hp : Fact (Nat.Prime p)
f g : PadicSeq p
hfg : f ≈ g
hf : f ≈ 0
⊢ f.norm = g.norm
state_after: p : ℕ
hp : Fact (Nat.Prime p)
f g : PadicSeq p
hfg : f ≈ g
hf : f ≈ 0
hg : g ≈ 0
⊢ f.norm = g.norm

tactic: simp [norm, hf, hg]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
f g : PadicSeq p
hfg : f ≈ g
hf : f ≈ 0
hg : g ≈ 0
⊢ f.norm = g.norm
state_after: no goals

tactic: have hg : ¬g ≈ 0 := hf ∘ Setoid.trans hfg
state_before: p : ℕ
hp : Fact (Nat.Prime p)
f g : PadicSeq p
hfg : f ≈ g
hf : ¬f ≈ 0
⊢ f.norm = g.norm
state_after: p : ℕ
hp : Fact (Nat.Prime p)
f g : PadicSeq p
hfg : f ≈ g
hf : ¬f ≈ 0
hg : ¬g ≈ 0
⊢ f.norm = g.norm

tactic: unfold norm
state_before: p : ℕ
hp : Fact (Nat.Prime p)
f g : PadicSeq p
hfg : f ≈ g
hf : ¬f ≈ 0
hg : ¬g ≈ 0
⊢ f.norm = g.norm
state_after: p : ℕ
hp : Fact (Nat.Prime p)
f g : PadicSeq p
hfg : f ≈ g
hf : ¬f ≈ 0
hg : ¬g ≈ 0
⊢ (if hf : f ≈ 0 then 0 else padicNorm p (↑f (stationaryPoint hf))) =
    if hf : g ≈ 0 then 0 else padicNorm p (↑g (stationaryPoint hf))

tactic: split_ifs
state_before: p : ℕ
hp : Fact (Nat.Prime p)
f g : PadicSeq p
hfg : f ≈ g
hf : ¬f ≈ 0
hg : ¬g ≈ 0
⊢ (if hf : f ≈ 0 then 0 else padicNorm p (↑f (stationaryPoint hf))) =
    if hf : g ≈ 0 then 0 else padicNorm p (↑g (stationaryPoint hf))
state_after: p : ℕ
hp : Fact (Nat.Prime p)
f g : PadicSeq p
hfg : f ≈ g
hf : ¬f ≈ 0
hg : ¬g ≈ 0
⊢ padicNorm p (↑f (stationaryPoint hf)) = padicNorm p (↑g (stationaryPoint hg))

tactic: exact norm_eq_of_equiv hf hg hfg
state_before: p : ℕ
hp : Fact (Nat.Prime p)
f g : PadicSeq p
hfg : f ≈ g
hf : ¬f ≈ 0
hg : ¬g ≈ 0
⊢ padicNorm p (↑f (stationaryPoint hf)) = padicNorm p (↑g (stationaryPoint hg))
state_after: no goals
Theorem: WeierstrassCurve.natDegree_preΨ_le
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean

tactic: induction n using Int.negInduction with
| nat n => exact_mod_cast W.preΨ_ofNat n ▸ W.natDegree_preΨ'_le n
| neg => simpa only [preΨ_neg, natDegree_neg, Int.natAbs_neg, even_neg]
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n : ℤ
⊢ (W.preΨ n).natDegree ≤ (n.natAbs ^ 2 - if Even n then 4 else 1) / 2
state_after: no goals

tactic: exact_mod_cast W.preΨ_ofNat n ▸ W.natDegree_preΨ'_le n
state_before: case nat
R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n : ℕ
⊢ (W.preΨ ↑n).natDegree ≤ ((↑n).natAbs ^ 2 - if Even ↑n then 4 else 1) / 2
state_after: no goals

tactic: simpa only [preΨ_neg, natDegree_neg, Int.natAbs_neg, even_neg]
state_before: case neg
R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n✝ : ℕ
a✝ : (W.preΨ ↑n✝).natDegree ≤ ((↑n✝).natAbs ^ 2 - if Even ↑n✝ then 4 else 1) / 2
⊢ (W.preΨ (-↑n✝)).natDegree ≤ ((-↑n✝).natAbs ^ 2 - if Even (-↑n✝) then 4 else 1) / 2
state_after: no goals
Theorem: AnalyticAt.div
File: Mathlib/Analysis/Analytic/Constructions.lean

tactic: simp_rw [div_eq_mul_inv]
state_before: α : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
inst✝⁵ : NormedAddCommGroup H
inst✝⁴ : NormedSpace 𝕜 H
𝕝 : Type u_7
inst✝³ : NontriviallyNormedField 𝕝
inst✝² : NormedAlgebra 𝕜 𝕝
A : Type u_8
inst✝¹ : NormedRing A
inst✝ : NormedAlgebra 𝕜 A
f g : E → 𝕝
x : E
fa : AnalyticAt 𝕜 f x
ga : AnalyticAt 𝕜 g x
g0 : g x ≠ 0
⊢ AnalyticAt 𝕜 (fun x => f x / g x) x
state_after: α : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
inst✝⁵ : NormedAddCommGroup H
inst✝⁴ : NormedSpace 𝕜 H
𝕝 : Type u_7
inst✝³ : NontriviallyNormedField 𝕝
inst✝² : NormedAlgebra 𝕜 𝕝
A : Type u_8
inst✝¹ : NormedRing A
inst✝ : NormedAlgebra 𝕜 A
f g : E → 𝕝
x : E
fa : AnalyticAt 𝕜 f x
ga : AnalyticAt 𝕜 g x
g0 : g x ≠ 0
⊢ AnalyticAt 𝕜 (fun x => f x * (g x)⁻¹) x

tactic: exact fa.mul (ga.inv g0)
state_before: α : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
inst✝⁵ : NormedAddCommGroup H
inst✝⁴ : NormedSpace 𝕜 H
𝕝 : Type u_7
inst✝³ : NontriviallyNormedField 𝕝
inst✝² : NormedAlgebra 𝕜 𝕝
A : Type u_8
inst✝¹ : NormedRing A
inst✝ : NormedAlgebra 𝕜 A
f g : E → 𝕝
x : E
fa : AnalyticAt 𝕜 f x
ga : AnalyticAt 𝕜 g x
g0 : g x ≠ 0
⊢ AnalyticAt 𝕜 (fun x => f x * (g x)⁻¹) x
state_after: no goals
Theorem: BoundedContinuousFunction.dist_lt_of_nonempty_compact
File: Mathlib/Topology/ContinuousFunction/Bounded.lean

tactic: have c : Continuous fun x => dist (f x) (g x) := by continuity
state_before: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : PseudoMetricSpace γ
f g : α →ᵇ β
x : α
C : ℝ
inst✝¹ : Nonempty α
inst✝ : CompactSpace α
w : ∀ (x : α), dist (f x) (g x) < C
⊢ dist f g < C
state_after: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : PseudoMetricSpace γ
f g : α →ᵇ β
x : α
C : ℝ
inst✝¹ : Nonempty α
inst✝ : CompactSpace α
w : ∀ (x : α), dist (f x) (g x) < C
c : Continuous fun x => dist (f x) (g x)
⊢ dist f g < C

tactic: obtain ⟨x, -, le⟩ :=
  IsCompact.exists_isMaxOn isCompact_univ Set.univ_nonempty (Continuous.continuousOn c)
state_before: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : PseudoMetricSpace γ
f g : α →ᵇ β
x : α
C : ℝ
inst✝¹ : Nonempty α
inst✝ : CompactSpace α
w : ∀ (x : α), dist (f x) (g x) < C
c : Continuous fun x => dist (f x) (g x)
⊢ dist f g < C
state_after: case intro.intro
F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : PseudoMetricSpace γ
f g : α →ᵇ β
x✝ : α
C : ℝ
inst✝¹ : Nonempty α
inst✝ : CompactSpace α
w : ∀ (x : α), dist (f x) (g x) < C
c : Continuous fun x => dist (f x) (g x)
x : α
le : IsMaxOn (fun x => dist (f x) (g x)) univ x
⊢ dist f g < C

tactic: exact lt_of_le_of_lt (dist_le_iff_of_nonempty.mpr fun y => le trivial) (w x)
state_before: case intro.intro
F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : PseudoMetricSpace γ
f g : α →ᵇ β
x✝ : α
C : ℝ
inst✝¹ : Nonempty α
inst✝ : CompactSpace α
w : ∀ (x : α), dist (f x) (g x) < C
c : Continuous fun x => dist (f x) (g x)
x : α
le : IsMaxOn (fun x => dist (f x) (g x)) univ x
⊢ dist f g < C
state_after: no goals

tactic: continuity
state_before: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : PseudoMetricSpace γ
f g : α →ᵇ β
x : α
C : ℝ
inst✝¹ : Nonempty α
inst✝ : CompactSpace α
w : ∀ (x : α), dist (f x) (g x) < C
⊢ Continuous fun x => dist (f x) (g x)
state_after: no goals
Theorem: CategoryTheory.Limits.pushoutCoconeOfRightIso_ι_app_none
File: Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean

tactic: simp
state_before: C : Type u
inst✝² : Category.{v, u} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
W X Y Z : C
f : X ⟶ Y
g : X ⟶ Z
inst✝ : IsIso g
⊢ (pushoutCoconeOfRightIso f g).ι.app none = f
state_after: no goals
Theorem: jacobiSym.prime_dvd_of_eq_neg_one
File: Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean

tactic: rw [← legendreSym.to_jacobiSym] at h
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
a : ℤ
h : J(a | p) = -1
x y : ℤ
hxy : ↑p ∣ x ^ 2 - a * y ^ 2
⊢ ↑p ∣ x ∧ ↑p ∣ y
state_after: p : ℕ
inst✝ : Fact (Nat.Prime p)
a : ℤ
h : legendreSym p a = -1
x y : ℤ
hxy : ↑p ∣ x ^ 2 - a * y ^ 2
⊢ ↑p ∣ x ∧ ↑p ∣ y

tactic: exact legendreSym.prime_dvd_of_eq_neg_one h hxy
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
a : ℤ
h : legendreSym p a = -1
x y : ℤ
hxy : ↑p ∣ x ^ 2 - a * y ^ 2
⊢ ↑p ∣ x ∧ ↑p ∣ y
state_after: no goals
Theorem: div_lt_self
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: simpa only [div_one] using div_lt_div_of_pos_left ha zero_lt_one hb
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : 0 < a
hb : 1 < b
⊢ a / b < a
state_after: no goals
Theorem: Real.cosh_add_sinh
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [← ofReal_inj]
state_before: x y : ℝ
⊢ cosh x + sinh x = rexp x
state_after: x y : ℝ
⊢ ↑(cosh x + sinh x) = ↑(rexp x)

tactic: simp
state_before: x y : ℝ
⊢ ↑(cosh x + sinh x) = ↑(rexp x)
state_after: no goals
Theorem: IsPrincipalIdealRing.of_finite_primes
File: Mathlib/RingTheory/DedekindDomain/PID.lean

tactic: obtain rfl | hI := eq_or_ne I ⊥
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDedekindDomain R
h : {I | I.IsPrime}.Finite
I : Ideal R
⊢ Submodule.IsPrincipal I
state_after: case inl
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDedekindDomain R
h : {I | I.IsPrime}.Finite
⊢ Submodule.IsPrincipal ⊥

case inr
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDedekindDomain R
h : {I | I.IsPrime}.Finite
I : Ideal R
hI : I ≠ ⊥
⊢ Submodule.IsPrincipal I

tactic: apply Ideal.IsPrincipal.of_finite_maximals_of_isUnit
state_before: case inr
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDedekindDomain R
h : {I | I.IsPrime}.Finite
I : Ideal R
hI : I ≠ ⊥
⊢ Submodule.IsPrincipal I
state_after: case inr.hf
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDedekindDomain R
h : {I | I.IsPrime}.Finite
I : Ideal R
hI : I ≠ ⊥
⊢ {I | I.IsMaximal}.Finite

case inr.hI
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDedekindDomain R
h : {I | I.IsPrime}.Finite
I : Ideal R
hI : I ≠ ⊥
⊢ IsUnit ↑I

tactic: exact bot_isPrincipal
state_before: case inl
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDedekindDomain R
h : {I | I.IsPrime}.Finite
⊢ Submodule.IsPrincipal ⊥
state_after: no goals

tactic: apply h.subset
state_before: case inr.hf
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDedekindDomain R
h : {I | I.IsPrime}.Finite
I : Ideal R
hI : I ≠ ⊥
⊢ {I | I.IsMaximal}.Finite
state_after: case inr.hf
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDedekindDomain R
h : {I | I.IsPrime}.Finite
I : Ideal R
hI : I ≠ ⊥
⊢ {I | I.IsMaximal} ⊆ {I | I.IsPrime}

tactic: exact @Ideal.IsMaximal.isPrime _ _
state_before: case inr.hf
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDedekindDomain R
h : {I | I.IsPrime}.Finite
I : Ideal R
hI : I ≠ ⊥
⊢ {I | I.IsMaximal} ⊆ {I | I.IsPrime}
state_after: no goals

tactic: exact isUnit_of_mul_eq_one _ _ (FractionalIdeal.coe_ideal_mul_inv I hI)
state_before: case inr.hI
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDedekindDomain R
h : {I | I.IsPrime}.Finite
I : Ideal R
hI : I ≠ ⊥
⊢ IsUnit ↑I
state_after: no goals
Theorem: Nat.cast_choose_eq_ascPochhammer_div
File: Mathlib/Data/Nat/Choose/Cast.lean

tactic: rw [eq_div_iff_mul_eq (cast_ne_zero.2 b.factorial_ne_zero : (b ! : K) ≠ 0), ← cast_mul,
  mul_comm, ← descFactorial_eq_factorial_mul_choose, ← cast_descFactorial]
state_before: K : Type u_1
inst✝¹ : DivisionRing K
inst✝ : CharZero K
a b : ℕ
⊢ ↑(a.choose b) = Polynomial.eval (↑(a - (b - 1))) (ascPochhammer K b) / ↑b !
state_after: no goals
Theorem: intervalIntegral.continuousOn_primitive_interval'
File: Mathlib/MeasureTheory/Integral/DominatedConvergence.lean

tactic: refine continuousWithinAt_primitive (measure_singleton _) ?_
state_before: E✝ : Type u_1
inst✝⁸ : NormedAddCommGroup E✝
inst✝⁷ : CompleteSpace E✝
inst✝⁶ : NormedSpace ℝ E✝
a b b₀ b₁ b₂ : ℝ
μ : Measure ℝ
f : ℝ → E✝
X : Type u_2
inst✝⁵ : TopologicalSpace X
inst✝⁴ : FirstCountableTopology X
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : NoAtoms μ
h_int : IntervalIntegrable f μ b₁ b₂
ha : a ∈ [[b₁, b₂]]
x✝¹ : ℝ
x✝ : x✝¹ ∈ [[b₁, b₂]]
⊢ ContinuousWithinAt (fun b => ∫ (x : ℝ) in a..b, f x ∂μ) [[b₁, b₂]] x✝¹
state_after: E✝ : Type u_1
inst✝⁸ : NormedAddCommGroup E✝
inst✝⁷ : CompleteSpace E✝
inst✝⁶ : NormedSpace ℝ E✝
a b b₀ b₁ b₂ : ℝ
μ : Measure ℝ
f : ℝ → E✝
X : Type u_2
inst✝⁵ : TopologicalSpace X
inst✝⁴ : FirstCountableTopology X
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : NoAtoms μ
h_int : IntervalIntegrable f μ b₁ b₂
ha : a ∈ [[b₁, b₂]]
x✝¹ : ℝ
x✝ : x✝¹ ∈ [[b₁, b₂]]
⊢ IntervalIntegrable f μ (min a (b₁ ⊓ b₂)) (max a (b₁ ⊔ b₂))

tactic: rw [min_eq_right ha.1, max_eq_right ha.2]
state_before: E✝ : Type u_1
inst✝⁸ : NormedAddCommGroup E✝
inst✝⁷ : CompleteSpace E✝
inst✝⁶ : NormedSpace ℝ E✝
a b b₀ b₁ b₂ : ℝ
μ : Measure ℝ
f : ℝ → E✝
X : Type u_2
inst✝⁵ : TopologicalSpace X
inst✝⁴ : FirstCountableTopology X
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : NoAtoms μ
h_int : IntervalIntegrable f μ b₁ b₂
ha : a ∈ [[b₁, b₂]]
x✝¹ : ℝ
x✝ : x✝¹ ∈ [[b₁, b₂]]
⊢ IntervalIntegrable f μ (min a (b₁ ⊓ b₂)) (max a (b₁ ⊔ b₂))
state_after: E✝ : Type u_1
inst✝⁸ : NormedAddCommGroup E✝
inst✝⁷ : CompleteSpace E✝
inst✝⁶ : NormedSpace ℝ E✝
a b b₀ b₁ b₂ : ℝ
μ : Measure ℝ
f : ℝ → E✝
X : Type u_2
inst✝⁵ : TopologicalSpace X
inst✝⁴ : FirstCountableTopology X
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : NoAtoms μ
h_int : IntervalIntegrable f μ b₁ b₂
ha : a ∈ [[b₁, b₂]]
x✝¹ : ℝ
x✝ : x✝¹ ∈ [[b₁, b₂]]
⊢ IntervalIntegrable f μ (b₁ ⊓ b₂) (b₁ ⊔ b₂)

tactic: simpa [intervalIntegrable_iff, uIoc] using h_int
state_before: E✝ : Type u_1
inst✝⁸ : NormedAddCommGroup E✝
inst✝⁷ : CompleteSpace E✝
inst✝⁶ : NormedSpace ℝ E✝
a b b₀ b₁ b₂ : ℝ
μ : Measure ℝ
f : ℝ → E✝
X : Type u_2
inst✝⁵ : TopologicalSpace X
inst✝⁴ : FirstCountableTopology X
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : NoAtoms μ
h_int : IntervalIntegrable f μ b₁ b₂
ha : a ∈ [[b₁, b₂]]
x✝¹ : ℝ
x✝ : x✝¹ ∈ [[b₁, b₂]]
⊢ IntervalIntegrable f μ (b₁ ⊓ b₂) (b₁ ⊔ b₂)
state_after: no goals
Theorem: OrderHom.coe_iInf
File: Mathlib/Order/Hom/Order.lean

tactic: funext x
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
ι : Sort u_3
inst✝ : CompleteLattice β
f : ι → α →o β
⊢ ⇑(⨅ i, f i) = ⨅ i, ⇑(f i)
state_after: case h
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
ι : Sort u_3
inst✝ : CompleteLattice β
f : ι → α →o β
x : α
⊢ (⨅ i, f i) x = (⨅ i, ⇑(f i)) x

tactic: simp [iInf_apply]
state_before: case h
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
ι : Sort u_3
inst✝ : CompleteLattice β
f : ι → α →o β
x : α
⊢ (⨅ i, f i) x = (⨅ i, ⇑(f i)) x
state_after: no goals