1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Ordinal.relIso_enum
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: convert hr using 1
state_before: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≃r s
o : Ordinal.{u}
hr : o < type r
⊢ o < type s
state_after: case h.e'_4
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≃r s
o : Ordinal.{u}
hr : o < type r
⊢ type s = type r

tactic: apply Quotient.sound
state_before: case h.e'_4
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≃r s
o : Ordinal.{u}
hr : o < type r
⊢ type s = type r
state_after: case h.e'_4.a
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≃r s
o : Ordinal.{u}
hr : o < type r
⊢ { α := β, r := s, wo := inst✝ } ≈ { α := α, r := r, wo := inst✝¹ }

tactic: exact ⟨f.symm⟩
state_before: case h.e'_4.a
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≃r s
o : Ordinal.{u}
hr : o < type r
⊢ { α := β, r := s, wo := inst✝ } ≈ { α := α, r := r, wo := inst✝¹ }
state_after: no goals
Theorem: MeasurableEmbedding.integrable_map_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 γ
f : α → δ
hf : MeasurableEmbedding f
g : δ → β
⊢ Integrable g (Measure.map f μ) ↔ Integrable (g ∘ f) μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → δ
hf : MeasurableEmbedding f
g : δ → β
⊢ Memℒp g 1 (Measure.map f μ) ↔ Memℒp (g ∘ f) 1 μ

tactic: exact hf.memℒp_map_measure_iff
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → δ
hf : MeasurableEmbedding f
g : δ → β
⊢ Memℒp g 1 (Measure.map f μ) ↔ Memℒp (g ∘ f) 1 μ
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.boundedBy_top
File: Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean

tactic: rw [eq_top_iff, le_boundedBy']
state_before: α : Type u_1
m : Set α → ℝ≥0∞
⊢ boundedBy ⊤ = ⊤
state_after: α : Type u_1
m : Set α → ℝ≥0∞
⊢ ∀ (s : Set α), s.Nonempty → ⊤ s ≤ ⊤ s

tactic: intro s hs
state_before: α : Type u_1
m : Set α → ℝ≥0∞
⊢ ∀ (s : Set α), s.Nonempty → ⊤ s ≤ ⊤ s
state_after: α : Type u_1
m : Set α → ℝ≥0∞
s : Set α
hs : s.Nonempty
⊢ ⊤ s ≤ ⊤ s

tactic: rw [top_apply hs]
state_before: α : Type u_1
m : Set α → ℝ≥0∞
s : Set α
hs : s.Nonempty
⊢ ⊤ s ≤ ⊤ s
state_after: α : Type u_1
m : Set α → ℝ≥0∞
s : Set α
hs : s.Nonempty
⊢ ⊤ ≤ ⊤ s

tactic: exact le_rfl
state_before: α : Type u_1
m : Set α → ℝ≥0∞
s : Set α
hs : s.Nonempty
⊢ ⊤ ≤ ⊤ s
state_after: no goals
Theorem: Set.insert_sigma
File: Mathlib/Data/Set/Sigma.lean

tactic: rw [insert_eq, union_sigma, singleton_sigma]
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
β✝² : ι → Type u_4
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
u : Set ((i : ι) × α i)
x : (i : ι) × α i
i j : ι
a : α i
β✝¹ : Type u_5
inst✝ : CompleteLattice β✝¹
β✝ : Type u_6
β : ι → Type u_7
⊢ (insert i s).sigma t = Sigma.mk i '' t i ∪ s.sigma t
state_after: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
β✝² : ι → Type u_4
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
u : Set ((i : ι) × α i)
x : (i : ι) × α i
i j : ι
a : α i
β✝¹ : Type u_5
inst✝ : CompleteLattice β✝¹
β✝ : Type u_6
β : ι → Type u_7
⊢ α i

tactic: exact a
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
β✝² : ι → Type u_4
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
u : Set ((i : ι) × α i)
x : (i : ι) × α i
i j : ι
a : α i
β✝¹ : Type u_5
inst✝ : CompleteLattice β✝¹
β✝ : Type u_6
β : ι → Type u_7
⊢ α i
state_after: no goals
Theorem: NNReal.IsConjExponent.symm
File: Mathlib/Data/Real/ConjExponents.lean

tactic: rw [h.conj_eq]
state_before: a b p q : ℝ≥0
h : p.IsConjExponent q
⊢ 1 < q
state_after: a b p q : ℝ≥0
h : p.IsConjExponent q
⊢ 1 < p / (p - 1)

tactic: exact (one_lt_div h.sub_one_pos).mpr (tsub_lt_self h.pos zero_lt_one)
state_before: a b p q : ℝ≥0
h : p.IsConjExponent q
⊢ 1 < p / (p - 1)
state_after: no goals

tactic: simpa [add_comm] using h.inv_add_inv_conj
state_before: a b p q : ℝ≥0
h : p.IsConjExponent q
⊢ q⁻¹ + p⁻¹ = 1
state_after: no goals
Theorem: UpperSet.mem_sInf_iff
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp only [exists_prop, SetLike.mem_coe]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : LE α
S : Set (UpperSet α)
s t : UpperSet α
a : α
⊢ (∃ i, ∃ (_ : i ∈ S), a ∈ ↑i) ↔ ∃ s ∈ S, a ∈ s
state_after: no goals
Theorem: iSup_limsup_dimH
File: Mathlib/Topology/MetricSpace/HausdorffDimension.lean

tactic: refine le_antisymm (iSup_le fun x => ?_) ?_
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
inst✝ : SecondCountableTopology X
s : Set X
⊢ ⨆ x, limsup dimH (𝓝[s] x).smallSets = dimH s
state_after: case refine_1
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
inst✝ : SecondCountableTopology X
s : Set X
x : X
⊢ limsup dimH (𝓝[s] x).smallSets ≤ dimH s

case refine_2
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
inst✝ : SecondCountableTopology X
s : Set X
⊢ dimH s ≤ ⨆ x, limsup dimH (𝓝[s] x).smallSets

tactic: refine limsup_le_of_le isCobounded_le_of_bot ?_
state_before: case refine_1
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
inst✝ : SecondCountableTopology X
s : Set X
x : X
⊢ limsup dimH (𝓝[s] x).smallSets ≤ dimH s
state_after: case refine_1
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
inst✝ : SecondCountableTopology X
s : Set X
x : X
⊢ ∀ᶠ (n : Set X) in (𝓝[s] x).smallSets, dimH n ≤ dimH s

tactic: exact eventually_smallSets.2 ⟨s, self_mem_nhdsWithin, fun t => dimH_mono⟩
state_before: case refine_1
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
inst✝ : SecondCountableTopology X
s : Set X
x : X
⊢ ∀ᶠ (n : Set X) in (𝓝[s] x).smallSets, dimH n ≤ dimH s
state_after: no goals

tactic: rw [← bsupr_limsup_dimH]
state_before: case refine_2
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
inst✝ : SecondCountableTopology X
s : Set X
⊢ dimH s ≤ ⨆ x, limsup dimH (𝓝[s] x).smallSets
state_after: case refine_2
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
inst✝ : SecondCountableTopology X
s : Set X
⊢ ⨆ x ∈ s, limsup dimH (𝓝[s] x).smallSets ≤ ⨆ x, limsup dimH (𝓝[s] x).smallSets

tactic: exact iSup₂_le_iSup _ _
state_before: case refine_2
ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
inst✝ : SecondCountableTopology X
s : Set X
⊢ ⨆ x ∈ s, limsup dimH (𝓝[s] x).smallSets ≤ ⨆ x, limsup dimH (𝓝[s] x).smallSets
state_after: no goals
Theorem: intervalIntegral.integral_div
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simpa only [div_eq_mul_inv] using integral_mul_const r⁻¹ f
state_before: ι : Type u_1
𝕜✝ : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ g : ℝ → E
μ : Measure ℝ
𝕜 : Type u_6
inst✝ : RCLike 𝕜
r : 𝕜
f : ℝ → 𝕜
⊢ ∫ (x : ℝ) in a..b, f x / r ∂μ = (∫ (x : ℝ) in a..b, f x ∂μ) / r
state_after: no goals
Theorem: Algebra.traceForm_toMatrix
File: Mathlib/RingTheory/Trace.lean

tactic: rw [BilinForm.toMatrix_apply, traceForm_apply]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : CommRing S
inst✝⁷ : CommRing T
inst✝⁶ : Algebra R S
inst✝⁵ : Algebra R T
K : Type u_4
L : Type u_5
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Algebra K L
ι κ : Type w
inst✝¹ : Fintype ι
b : Basis ι R S
inst✝ : DecidableEq ι
i j : ι
⊢ (BilinForm.toMatrix b) (traceForm R S) i j = (trace R S) (b i * b j)
state_after: no goals
Theorem: MeasureTheory.Memℒp.smul_of_top_left
File: Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean

tactic: apply hf.smul hφ
state_before: 𝕜 : Type u_1
α : Type u_2
E : Type u_3
F : Type u_4
m : MeasurableSpace α
μ : Measure α
inst✝⁶ : NormedRing 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : MulActionWithZero 𝕜 E
inst✝³ : BoundedSMul 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : MulActionWithZero 𝕜 F
inst✝ : BoundedSMul 𝕜 F
p : ℝ≥0∞
f : α → E
φ : α → 𝕜
hf : Memℒp f ⊤ μ
hφ : Memℒp φ p μ
⊢ Memℒp (φ • f) p μ
state_after: 𝕜 : Type u_1
α : Type u_2
E : Type u_3
F : Type u_4
m : MeasurableSpace α
μ : Measure α
inst✝⁶ : NormedRing 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : MulActionWithZero 𝕜 E
inst✝³ : BoundedSMul 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : MulActionWithZero 𝕜 F
inst✝ : BoundedSMul 𝕜 F
p : ℝ≥0∞
f : α → E
φ : α → 𝕜
hf : Memℒp f ⊤ μ
hφ : Memℒp φ p μ
⊢ 1 / p = 1 / p + 1 / ⊤

tactic: simp only [ENNReal.div_top, add_zero]
state_before: 𝕜 : Type u_1
α : Type u_2
E : Type u_3
F : Type u_4
m : MeasurableSpace α
μ : Measure α
inst✝⁶ : NormedRing 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : MulActionWithZero 𝕜 E
inst✝³ : BoundedSMul 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : MulActionWithZero 𝕜 F
inst✝ : BoundedSMul 𝕜 F
p : ℝ≥0∞
f : α → E
φ : α → 𝕜
hf : Memℒp f ⊤ μ
hφ : Memℒp φ p μ
⊢ 1 / p = 1 / p + 1 / ⊤
state_after: no goals
Theorem: Topology.IsLowerSet.isOpen_iff_isLowerSet
File: Mathlib/Topology/Order/UpperLowerSetTopology.lean

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : Topology.IsLowerSet α
s : Set α
⊢ IsOpen s ↔ IsLowerSet s
state_after: no goals
Theorem: IsSMulRegular.of_mul_eq_one
File: Mathlib/Algebra/Regular/SMul.lean

tactic: rw [h]
state_before: R : Type u_1
S : Type u_2
M : Type u_3
a b : R
s : S
inst✝¹ : Monoid R
inst✝ : MulAction R M
h : a * b = 1
⊢ IsSMulRegular M (?m.11856 * b)
state_after: R : Type u_1
S : Type u_2
M : Type u_3
a b : R
s : S
inst✝¹ : Monoid R
inst✝ : MulAction R M
h : a * b = 1
⊢ IsSMulRegular M 1

tactic: exact one M
state_before: R : Type u_1
S : Type u_2
M : Type u_3
a b : R
s : S
inst✝¹ : Monoid R
inst✝ : MulAction R M
h : a * b = 1
⊢ IsSMulRegular M 1
state_after: no goals
Theorem: CompleteSpace.snd_of_prod
File: Mathlib/Topology/UniformSpace/Cauchy.lean

tactic: simpa only [map_snd_prod, nhds_prod_eq] using map_mono (m := Prod.snd) hab
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : CompleteSpace (α × β)
h : Nonempty α
f✝ : Filter β
hf : Cauchy f✝
x a : α
b : β
hab : pure x ×ˢ f✝ ≤ 𝓝 (a, b)
⊢ f✝ ≤ 𝓝 b
state_after: no goals
Theorem: antivaryOn_inv
File: Mathlib/Algebra/Order/Monovary.lean

tactic: simp
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : OrderedCommGroup α
inst✝ : OrderedCommGroup β
s : Set ι
f f₁ f₂ : ι → α
g g₁ g₂ : ι → β
⊢ AntivaryOn f⁻¹ g⁻¹ s ↔ AntivaryOn f g s
state_after: no goals
Theorem: IsSelfAdjoint.sq_spectrumRestricts
File: Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean

tactic: rw [SpectrumRestricts.nnreal_iff, ← cfc_id (R := ℝ) a, ← cfc_pow .., cfc_map_spectrum ..]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a : A
ha : IsSelfAdjoint a
⊢ SpectrumRestricts (a ^ 2) ⇑ContinuousMap.realToNNReal
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a : A
ha : IsSelfAdjoint a
⊢ ∀ x ∈ (fun x => id x ^ 2) '' σ ℝ a, 0 ≤ x

tactic: rintro - ⟨x, -, rfl⟩
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a : A
ha : IsSelfAdjoint a
⊢ ∀ x ∈ (fun x => id x ^ 2) '' σ ℝ a, 0 ≤ x
state_after: case intro.intro
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a : A
ha : IsSelfAdjoint a
x : ℝ
⊢ 0 ≤ (fun x => id x ^ 2) x

tactic: exact sq_nonneg x
state_before: case intro.intro
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a : A
ha : IsSelfAdjoint a
x : ℝ
⊢ 0 ≤ (fun x => id x ^ 2) x
state_after: no goals
Theorem: CochainComplex.mappingCone.map_comp
File: Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean

tactic: rw [reassoc_of% comm, comm', assoc]
state_before: C : Type u_1
inst✝³ : Category.{?u.98128, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
K₁ L₁ K₂ L₂ K₃ L₃ : CochainComplex C ℤ
φ₁ : K₁ ⟶ L₁
φ₂ : K₂ ⟶ L₂
φ₃ : K₃ ⟶ L₃
a : K₁ ⟶ K₂
b : L₁ ⟶ L₂
comm : φ₁ ≫ b = a ≫ φ₂
a' : K₂ ⟶ K₃
b' : L₂ ⟶ L₃
comm' : φ₂ ≫ b' = a' ≫ φ₃
⊢ φ₁ ≫ b ≫ b' = (a ≫ a') ≫ φ₃
state_after: no goals

tactic: ext n
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
K₁ L₁ K₂ L₂ K₃ L₃ : CochainComplex C ℤ
φ₁ : K₁ ⟶ L₁
φ₂ : K₂ ⟶ L₂
φ₃ : K₃ ⟶ L₃
a : K₁ ⟶ K₂
b : L₁ ⟶ L₂
comm : φ₁ ≫ b = a ≫ φ₂
a' : K₂ ⟶ K₃
b' : L₂ ⟶ L₃
comm' : φ₂ ≫ b' = a' ≫ φ₃
⊢ map φ₁ φ₃ (a ≫ a') (b ≫ b') ⋯ = map φ₁ φ₂ a b comm ≫ map φ₂ φ₃ a' b' comm'
state_after: case h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
K₁ L₁ K₂ L₂ K₃ L₃ : CochainComplex C ℤ
φ₁ : K₁ ⟶ L₁
φ₂ : K₂ ⟶ L₂
φ₃ : K₃ ⟶ L₃
a : K₁ ⟶ K₂
b : L₁ ⟶ L₂
comm : φ₁ ≫ b = a ≫ φ₂
a' : K₂ ⟶ K₃
b' : L₂ ⟶ L₃
comm' : φ₂ ≫ b' = a' ≫ φ₃
n : ℤ
⊢ (map φ₁ φ₃ (a ≫ a') (b ≫ b') ⋯).f n = (map φ₁ φ₂ a b comm ≫ map φ₂ φ₃ a' b' comm').f n

tactic: simp [ext_from_iff _ (n+1) n rfl, map]
state_before: case h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
K₁ L₁ K₂ L₂ K₃ L₃ : CochainComplex C ℤ
φ₁ : K₁ ⟶ L₁
φ₂ : K₂ ⟶ L₂
φ₃ : K₃ ⟶ L₃
a : K₁ ⟶ K₂
b : L₁ ⟶ L₂
comm : φ₁ ≫ b = a ≫ φ₂
a' : K₂ ⟶ K₃
b' : L₂ ⟶ L₃
comm' : φ₂ ≫ b' = a' ≫ φ₃
n : ℤ
⊢ (map φ₁ φ₃ (a ≫ a') (b ≫ b') ⋯).f n = (map φ₁ φ₂ a b comm ≫ map φ₂ φ₃ a' b' comm').f n
state_after: no goals
Theorem: Set.image2_inter_left
File: Mathlib/Data/Set/NAry.lean

tactic: simp_rw [← image_uncurry_prod, inter_prod, image_inter hf.uncurry]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
hf : Injective2 f
⊢ image2 f (s ∩ s') t = image2 f s t ∩ image2 f s' t
state_after: no goals
Theorem: Int.clog_zpow
File: Mathlib/Data/Int/Log.lean

tactic: rw [← neg_log_inv_eq_clog, ← zpow_neg, log_zpow hb, neg_neg]
state_before: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
hb : 1 < b
z : ℤ
⊢ clog b (↑b ^ z) = z
state_after: no goals
Theorem: List.IsPrefix.eraseIdx
File: .lake/packages/batteries/Batteries/Data/List/EraseIdx.lean

tactic: rcases h with ⟨t, rfl⟩
state_before: α : Type u
β : Type v
l l' : List α
h : l <+: l'
k : Nat
⊢ l.eraseIdx k <+: l'.eraseIdx k
state_after: case intro
α : Type u
β : Type v
l : List α
k : Nat
t : List α
⊢ l.eraseIdx k <+: (l ++ t).eraseIdx k

tactic: if hkl : k < length l then
  simp [eraseIdx_append_of_lt_length hkl]
else
  rw [Nat.not_lt] at hkl
  simp [eraseIdx_append_of_length_le hkl, eraseIdx_of_length_le hkl]
state_before: case intro
α : Type u
β : Type v
l : List α
k : Nat
t : List α
⊢ l.eraseIdx k <+: (l ++ t).eraseIdx k
state_after: no goals

tactic: simp [eraseIdx_append_of_lt_length hkl]
state_before: α : Type u
β : Type v
l : List α
k : Nat
t : List α
hkl : k < l.length
⊢ l.eraseIdx k <+: (l ++ t).eraseIdx k
state_after: no goals

tactic: rw [Nat.not_lt] at hkl
state_before: α : Type u
β : Type v
l : List α
k : Nat
t : List α
hkl : ¬k < l.length
⊢ l.eraseIdx k <+: (l ++ t).eraseIdx k
state_after: α : Type u
β : Type v
l : List α
k : Nat
t : List α
hkl : l.length ≤ k
⊢ l.eraseIdx k <+: (l ++ t).eraseIdx k

tactic: simp [eraseIdx_append_of_length_le hkl, eraseIdx_of_length_le hkl]
state_before: α : Type u
β : Type v
l : List α
k : Nat
t : List α
hkl : l.length ≤ k
⊢ l.eraseIdx k <+: (l ++ t).eraseIdx k
state_after: no goals
Theorem: SeparationQuotient.continuousOn_lift
File: Mathlib/Topology/Inseparable.lean

tactic: simp only [ContinuousOn, surjective_mk.forall, continuousWithinAt_lift, mem_preimage]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s✝ : Set X
f g : X → Y
t : Set (SeparationQuotient X)
hf : ∀ (x y : X), (x ~ᵢ y) → f x = f y
s : Set (SeparationQuotient X)
⊢ ContinuousOn (lift f hf) s ↔ ContinuousOn f (mk ⁻¹' s)
state_after: no goals
Theorem: List.Palindrome.reverse_eq
File: Mathlib/Data/List/Palindrome.lean

tactic: induction p <;> try (exact rfl)
state_before: α : Type u_1
β : Type u_2
l✝ l : List α
p : l.Palindrome
⊢ l.reverse = l
state_after: case cons_concat
α : Type u_1
β : Type u_2
l✝¹ l : List α
x✝ : α
l✝ : List α
a✝ : l✝.Palindrome
a_ih✝ : l✝.reverse = l✝
⊢ (x✝ :: (l✝ ++ [x✝])).reverse = x✝ :: (l✝ ++ [x✝])

tactic: simpa
state_before: case cons_concat
α : Type u_1
β : Type u_2
l✝¹ l : List α
x✝ : α
l✝ : List α
a✝ : l✝.Palindrome
a_ih✝ : l✝.reverse = l✝
⊢ (x✝ :: (l✝ ++ [x✝])).reverse = x✝ :: (l✝ ++ [x✝])
state_after: no goals

tactic: (exact rfl)
state_before: case singleton
α : Type u_1
β : Type u_2
l✝ l : List α
x✝ : α
⊢ [x✝].reverse = [x✝]
state_after: no goals

tactic: exact rfl
state_before: case singleton
α : Type u_1
β : Type u_2
l✝ l : List α
x✝ : α
⊢ [x✝].reverse = [x✝]
state_after: no goals
Theorem: BumpCovering.continuous_toPOUFun
File: Mathlib/Topology/PartitionOfUnity.lean

tactic: refine (f i).continuous.mul <|
  continuous_finprod_cond (fun j _ => continuous_const.sub (f j).continuous) ?_
state_before: ι : Type u
X : Type v
inst✝ : TopologicalSpace X
s : Set X
f : BumpCovering ι X s
i : ι
⊢ Continuous (f.toPOUFun i)
state_after: ι : Type u
X : Type v
inst✝ : TopologicalSpace X
s : Set X
f : BumpCovering ι X s
i : ι
⊢ LocallyFinite fun i => mulSupport fun x => 1 - (f i) x

tactic: simp only [mulSupport_one_sub]
state_before: ι : Type u
X : Type v
inst✝ : TopologicalSpace X
s : Set X
f : BumpCovering ι X s
i : ι
⊢ LocallyFinite fun i => mulSupport fun x => 1 - (f i) x
state_after: ι : Type u
X : Type v
inst✝ : TopologicalSpace X
s : Set X
f : BumpCovering ι X s
i : ι
⊢ LocallyFinite fun i => support ⇑(f i)

tactic: exact f.locallyFinite
state_before: ι : Type u
X : Type v
inst✝ : TopologicalSpace X
s : Set X
f : BumpCovering ι X s
i : ι
⊢ LocallyFinite fun i => support ⇑(f i)
state_after: no goals
Theorem: iteratedFDeriv_sum
File: Mathlib/Analysis/Calculus/ContDiff/Basic.lean

tactic: simpa [iteratedFDerivWithin_univ] using
iteratedFDerivWithin_sum_apply uniqueDiffOn_univ (mem_univ x) fun j hj ↦ (h j hj).contDiffOn
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type u_2
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u✝ : Set E
f✝ f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
ι : Type u_3
f : ι → E → F
u : Finset ι
i : ℕ
h : ∀ j ∈ u, ContDiff 𝕜 (↑i) (f j)
x : E
⊢ iteratedFDeriv 𝕜 i (fun x => ∑ j ∈ u, f j x) x = (∑ j ∈ u, iteratedFDeriv 𝕜 i (f j)) x
state_after: no goals
Theorem: RatFunc.ofFractionRing_zero
File: Mathlib/FieldTheory/RatFunc/Basic.lean

tactic: simp only [Zero.zero, OfNat.ofNat, RatFunc.zero]
state_before: K : Type u
inst✝ : CommRing K
⊢ { toFractionRing := 0 } = 0
state_after: no goals
Theorem: QPF.recF_eq
File: Mathlib/Data/QPF/Univariate/Basic.lean

tactic: cases x
state_before: F : Type u → Type u
q : QPF F
α : Type u
g : F α → α
x : (P F).W
⊢ recF g x = g (abs ((P F).map (recF g) x.dest))
state_after: case mk
F : Type u → Type u
q : QPF F
α : Type u
g : F α → α
a✝ : (P F).A
f✝ : (P F).B a✝ → WType (P F).B
⊢ recF g (WType.mk a✝ f✝) = g (abs ((P F).map (recF g) (PFunctor.W.dest (WType.mk a✝ f✝))))

tactic: rfl
state_before: case mk
F : Type u → Type u
q : QPF F
α : Type u
g : F α → α
a✝ : (P F).A
f✝ : (P F).B a✝ → WType (P F).B
⊢ recF g (WType.mk a✝ f✝) = g (abs ((P F).map (recF g) (PFunctor.W.dest (WType.mk a✝ f✝))))
state_after: no goals
Theorem: Finset.strictMono_iff_forall_lt_insert
File: Mathlib/Data/Finset/Interval.lean

tactic: simp [strictMono_iff_forall_lt_cons]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder β
s t : Finset α
f : Finset α → β
inst✝ : DecidableEq α
⊢ StrictMono f ↔ ∀ (s : Finset α) ⦃a : α⦄, a ∉ s → f s < f (insert a s)
state_after: no goals
Theorem: MeasureTheory.IsFundamentalDomain.measurePreserving_quotient_mk
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: haveI : HasFundamentalDomain G α ν := ⟨𝓕, h𝓕⟩
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝⁷ : Group G
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
ν : Measure α
inst✝⁴ : Countable G
inst✝³ : MeasurableSpace G
inst✝² : SMulInvariantMeasure G α ν
inst✝¹ : MeasurableSMul G α
𝓕 : Set α
h𝓕 : IsFundamentalDomain G 𝓕 ν
μ : Measure (Quotient α_mod_G)
inst✝ : QuotientMeasureEqMeasurePreimage ν μ
⊢ Measure.map (Quotient.mk α_mod_G) (ν.restrict 𝓕) = μ
state_after: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝⁷ : Group G
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
ν : Measure α
inst✝⁴ : Countable G
inst✝³ : MeasurableSpace G
inst✝² : SMulInvariantMeasure G α ν
inst✝¹ : MeasurableSMul G α
𝓕 : Set α
h𝓕 : IsFundamentalDomain G 𝓕 ν
μ : Measure (Quotient α_mod_G)
inst✝ : QuotientMeasureEqMeasurePreimage ν μ
this : HasFundamentalDomain G α ν
⊢ Measure.map (Quotient.mk α_mod_G) (ν.restrict 𝓕) = μ

tactic: rw [h𝓕.projection_respects_measure (μ := μ)]
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝⁷ : Group G
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
ν : Measure α
inst✝⁴ : Countable G
inst✝³ : MeasurableSpace G
inst✝² : SMulInvariantMeasure G α ν
inst✝¹ : MeasurableSMul G α
𝓕 : Set α
h𝓕 : IsFundamentalDomain G 𝓕 ν
μ : Measure (Quotient α_mod_G)
inst✝ : QuotientMeasureEqMeasurePreimage ν μ
this : HasFundamentalDomain G α ν
⊢ Measure.map (Quotient.mk α_mod_G) (ν.restrict 𝓕) = μ
state_after: no goals
Theorem: AddLECancellable.tsub_add_tsub_comm
File: Mathlib/Algebra/Order/Sub/Canonical.lean

tactic: rw [hb.tsub_add_eq_add_tsub hba, ← hd.add_tsub_assoc_of_le hdc, tsub_tsub, add_comm d]
state_before: α : Type u_1
inst✝⁵ : AddCommSemigroup α
inst✝⁴ : PartialOrder α
inst✝³ : ExistsAddOfLE α
inst✝² : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hb : AddLECancellable b
hd : AddLECancellable d
hba : b ≤ a
hdc : d ≤ c
⊢ a - b + (c - d) = a + c - (b + d)
state_after: no goals