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

tactic: rw [typein_le_typein]
state_before: α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u_3}
x x' : (Quotient.out o).α
⊢ typein (fun x x_1 => x < x_1) x ≤ typein (fun x x_1 => x < x_1) x' ↔ x ≤ x'
state_after: α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u_3}
x x' : (Quotient.out o).α
⊢ ¬x' < x ↔ x ≤ x'

tactic: exact not_lt
state_before: α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u_3}
x x' : (Quotient.out o).α
⊢ ¬x' < x ↔ x ≤ x'
state_after: no goals
Theorem: MeasureTheory.restrict_withDensity'
File: Mathlib/MeasureTheory/Measure/WithDensity.lean

tactic: ext1 t ht
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
f : α → ℝ≥0∞
⊢ (μ.withDensity f).restrict s = (μ.restrict s).withDensity f
state_after: case h
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
f : α → ℝ≥0∞
t : Set α
ht : MeasurableSet t
⊢ ((μ.withDensity f).restrict s) t = ((μ.restrict s).withDensity f) t

tactic: rw [restrict_apply ht, withDensity_apply _ ht, withDensity_apply' _ (t ∩ s),
  restrict_restrict ht]
state_before: case h
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
f : α → ℝ≥0∞
t : Set α
ht : MeasurableSet t
⊢ ((μ.withDensity f).restrict s) t = ((μ.restrict s).withDensity f) t
state_after: no goals
Theorem: Fintype.total_apply_single
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: simp_rw [Fintype.total_apply, Pi.single_apply, ite_smul, zero_smul]
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝⁷ : Fintype α
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
S : Type u_4
inst✝³ : Semiring S
inst✝² : Module S M
inst✝¹ : SMulCommClass R S M
v : α → M
inst✝ : DecidableEq α
i : α
r : R
⊢ ((Fintype.total R S) v) (Pi.single i r) = r • v i
state_after: α : Type u_1
M : Type u_2
R : Type u_3
inst✝⁷ : Fintype α
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
S : Type u_4
inst✝³ : Semiring S
inst✝² : Module S M
inst✝¹ : SMulCommClass R S M
v : α → M
inst✝ : DecidableEq α
i : α
r : R
⊢ (∑ x : α, if x = i then r • v x else 0) = r • v i

tactic: rw [Finset.sum_ite_eq', if_pos (Finset.mem_univ _)]
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝⁷ : Fintype α
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
S : Type u_4
inst✝³ : Semiring S
inst✝² : Module S M
inst✝¹ : SMulCommClass R S M
v : α → M
inst✝ : DecidableEq α
i : α
r : R
⊢ (∑ x : α, if x = i then r • v x else 0) = r • v i
state_after: no goals
Theorem: Ultrafilter.le_of_inf_neBot'
File: Mathlib/Order/Filter/Ultrafilter.lean

tactic: rwa [inf_comm]
state_before: α : Type u
β : Type v
γ : Type u_1
f✝ g✝ : Ultrafilter α
s t : Set α
p q : α → Prop
f : Ultrafilter α
g : Filter α
hg : (g ⊓ ↑f).NeBot
⊢ (↑f ⊓ g).NeBot
state_after: no goals
Theorem: iUnion_Icc_intCast
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simpa only [zero_add] using iUnion_Icc_add_intCast (0 : α)
state_before: α : Type u_1
inst✝¹ : LinearOrderedRing α
inst✝ : Archimedean α
a : α
⊢ ⋃ n, Icc (↑n) (↑n + 1) = univ
state_after: no goals
Theorem: CategoryTheory.shiftFunctorAdd'_assoc_inv_app
File: Mathlib/CategoryTheory/Shift/Basic.lean

tactic: rw [← h₁₂, h₁₂₃]
state_before: C : Type u
A : Type u_1
inst✝² : Category.{v, u} C
inst✝¹ : AddMonoid A
inst✝ : HasShift C A
a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A
h₁₂ : a₁ + a₂ = a₁₂
h₂₃ : a₂ + a₃ = a₂₃
h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃
X : C
⊢ a₁₂ + a₃ = a₁₂₃
state_after: no goals

tactic: rw [← h₂₃, ← add_assoc, h₁₂₃]
state_before: C : Type u
A : Type u_1
inst✝² : Category.{v, u} C
inst✝¹ : AddMonoid A
inst✝ : HasShift C A
a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A
h₁₂ : a₁ + a₂ = a₁₂
h₂₃ : a₂ + a₃ = a₂₃
h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃
X : C
⊢ a₁ + a₂₃ = a₁₂₃
state_after: no goals

tactic: simpa using NatTrans.congr_app (congr_arg Iso.inv
  (shiftFunctorAdd'_assoc C _ _ _ _ _ _ h₁₂ h₂₃ h₁₂₃)) X
state_before: C : Type u
A : Type u_1
inst✝² : Category.{v, u} C
inst✝¹ : AddMonoid A
inst✝ : HasShift C A
a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A
h₁₂ : a₁ + a₂ = a₁₂
h₂₃ : a₂ + a₃ = a₂₃
h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃
X : C
⊢ (shiftFunctor C a₃).map ((shiftFunctorAdd' C a₁ a₂ a₁₂ h₁₂).inv.app X) ≫
      (shiftFunctorAdd' C a₁₂ a₃ a₁₂₃ ⋯).inv.app X =
    (shiftFunctorAdd' C a₂ a₃ a₂₃ h₂₃).inv.app ((shiftFunctor C a₁).obj X) ≫
      (shiftFunctorAdd' C a₁ a₂₃ a₁₂₃ ⋯).inv.app X
state_after: no goals
Theorem: stronglyMeasurable_derivWithin_Ioi
File: Mathlib/Analysis/Calculus/FDeriv/Measurable.lean

tactic: simpa [derivWithin_Ioi_eq_Ici] using stronglyMeasurable_derivWithin_Ici f
state_before: F : Type u_1
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
f : ℝ → F
K : Set F
inst✝ : CompleteSpace F
⊢ StronglyMeasurable fun x => derivWithin f (Ioi x) x
state_after: no goals
Theorem: LipschitzWith.dist_le_mul_of_le
File: Mathlib/Topology/MetricSpace/Lipschitz.lean

tactic: gcongr
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝² : PseudoMetricSpace α
inst✝¹ : PseudoMetricSpace β
inst✝ : PseudoMetricSpace γ
K : ℝ≥0
f : α → β
x y : α
r : ℝ
hf : LipschitzWith K f
hr : dist x y ≤ r
⊢ ↑K * dist x y ≤ ↑K * r
state_after: no goals
Theorem: FilterBasis.generate
File: Mathlib/Order/Filter/Bases.lean

tactic: apply le_antisymm
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
⊢ generate B.sets = B.filter
state_after: case a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
⊢ generate B.sets ≤ B.filter

case a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
⊢ B.filter ≤ generate B.sets

tactic: intro U U_in
state_before: case a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
⊢ generate B.sets ≤ B.filter
state_after: case a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.filter
⊢ U ∈ generate B.sets

tactic: rcases B.mem_filter_iff.mp U_in with ⟨V, V_in, h⟩
state_before: case a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.filter
⊢ U ∈ generate B.sets
state_after: case a.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.filter
V : Set α
V_in : V ∈ B
h : V ⊆ U
⊢ U ∈ generate B.sets

tactic: exact GenerateSets.superset (GenerateSets.basic V_in) h
state_before: case a.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.filter
V : Set α
V_in : V ∈ B
h : V ⊆ U
⊢ U ∈ generate B.sets
state_after: no goals

tactic: rw [le_generate_iff]
state_before: case a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
⊢ B.filter ≤ generate B.sets
state_after: case a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
⊢ B.sets ⊆ B.filter.sets

tactic: apply mem_filter_of_mem
state_before: case a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
⊢ B.sets ⊆ B.filter.sets
state_after: no goals
Theorem: IntermediateField.rank_bot'
File: Mathlib/FieldTheory/Adjoin.lean

tactic: rw [← rank_mul_rank F (⊥ : IntermediateField F E) E, IntermediateField.rank_bot, one_mul]
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
α : E
S : Set E
K L : IntermediateField F E
⊢ Module.rank (↥⊥) E = Module.rank F E
state_after: no goals
Theorem: PMF.toMeasure_pure
File: Mathlib/Probability/ProbabilityMassFunction/Monad.lean

tactic: rw [toMeasure_pure_apply a s hs, Measure.dirac_apply' a hs]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a a' : α
s✝ : Set α
inst✝ : MeasurableSpace α
s : Set α
hs : MeasurableSet s
⊢ (pure a).toMeasure s = (Measure.dirac a) s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a a' : α
s✝ : Set α
inst✝ : MeasurableSpace α
s : Set α
hs : MeasurableSet s
⊢ (if a ∈ s then 1 else 0) = s.indicator 1 a

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a a' : α
s✝ : Set α
inst✝ : MeasurableSpace α
s : Set α
hs : MeasurableSet s
⊢ (if a ∈ s then 1 else 0) = s.indicator 1 a
state_after: no goals
Theorem: IsScalarTower.algebraMap_smul
File: Mathlib/Algebra/Algebra/Tower.lean

tactic: rw [Algebra.algebraMap_eq_smul_one, smul_assoc, one_smul]
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁵ : CommSemiring R
inst✝⁴ : Semiring A
inst✝³ : Algebra R A
inst✝² : MulAction A M
inst✝¹ : SMul R M
inst✝ : IsScalarTower R A M
r : R
x : M
⊢ (algebraMap R A) r • x = r • x
state_after: no goals
Theorem: IntermediateField.iInf_toSubfield
File: Mathlib/FieldTheory/Adjoin.lean

tactic: simp [iInf]
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
ι : Sort u_3
S : ι → IntermediateField F E
⊢ ↑(iInf S).toSubfield = ↑(⨅ i, (S i).toSubfield)
state_after: no goals
Theorem: Multiset.dvd_sum
File: Mathlib/Algebra/BigOperators/Ring/Multiset.lean

tactic: rw [sum_cons]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : NonUnitalSemiring α
s✝ : Multiset α
a x : α
s : Multiset α
ih : (∀ x ∈ s, a ∣ x) → a ∣ s.sum
h : ∀ x_1 ∈ x ::ₘ s, a ∣ x_1
⊢ a ∣ (x ::ₘ s).sum
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : NonUnitalSemiring α
s✝ : Multiset α
a x : α
s : Multiset α
ih : (∀ x ∈ s, a ∣ x) → a ∣ s.sum
h : ∀ x_1 ∈ x ::ₘ s, a ∣ x_1
⊢ a ∣ x + s.sum

tactic: exact dvd_add (h _ (mem_cons_self _ _)) (ih fun y hy ↦ h _ <| mem_cons.2 <| Or.inr hy)
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : NonUnitalSemiring α
s✝ : Multiset α
a x : α
s : Multiset α
ih : (∀ x ∈ s, a ∣ x) → a ∣ s.sum
h : ∀ x_1 ∈ x ::ₘ s, a ∣ x_1
⊢ a ∣ x + s.sum
state_after: no goals
Theorem: Irrational.div_int
File: Mathlib/Data/Real/Irrational.lean

tactic: rw [← cast_intCast]
state_before: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ Irrational (x / ↑m)
state_after: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ Irrational (x / ↑↑m)

tactic: refine h.div_rat ?_
state_before: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ Irrational (x / ↑↑m)
state_after: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ ↑m ≠ 0

tactic: rwa [Int.cast_ne_zero]
state_before: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ ↑m ≠ 0
state_after: no goals
Theorem: Orientation.oangle_sign_add_right
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: rw [← o.oangle_sign_smul_add_right x y 1, one_smul]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y : V
⊢ (o.oangle x (x + y)).sign = (o.oangle x y).sign
state_after: no goals
Theorem: MeasureTheory.SimpleFunc.setToSimpleFunc_mono_left
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: simp_rw [setToSimpleFunc]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m✝ : MeasurableSpace α
μ : Measure α
G' : Type u_7
G'' : Type u_8
inst✝³ : NormedLatticeAddCommGroup G''
inst✝² : NormedSpace ℝ G''
inst✝¹ : NormedLatticeAddCommGroup G'
inst✝ : NormedSpace ℝ G'
m : MeasurableSpace α
T T' : Set α → F →L[ℝ] G''
hTT' : ∀ (s : Set α) (x : F), (T s) x ≤ (T' s) x
f : α →ₛ F
⊢ setToSimpleFunc T f ≤ setToSimpleFunc T' f
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m✝ : MeasurableSpace α
μ : Measure α
G' : Type u_7
G'' : Type u_8
inst✝³ : NormedLatticeAddCommGroup G''
inst✝² : NormedSpace ℝ G''
inst✝¹ : NormedLatticeAddCommGroup G'
inst✝ : NormedSpace ℝ G'
m : MeasurableSpace α
T T' : Set α → F →L[ℝ] G''
hTT' : ∀ (s : Set α) (x : F), (T s) x ≤ (T' s) x
f : α →ₛ F
⊢ ∑ x ∈ f.range, (T (↑f ⁻¹' {x})) x ≤ ∑ x ∈ f.range, (T' (↑f ⁻¹' {x})) x

tactic: exact sum_le_sum fun i _ => hTT' _ i
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m✝ : MeasurableSpace α
μ : Measure α
G' : Type u_7
G'' : Type u_8
inst✝³ : NormedLatticeAddCommGroup G''
inst✝² : NormedSpace ℝ G''
inst✝¹ : NormedLatticeAddCommGroup G'
inst✝ : NormedSpace ℝ G'
m : MeasurableSpace α
T T' : Set α → F →L[ℝ] G''
hTT' : ∀ (s : Set α) (x : F), (T s) x ≤ (T' s) x
f : α →ₛ F
⊢ ∑ x ∈ f.range, (T (↑f ⁻¹' {x})) x ≤ ∑ x ∈ f.range, (T' (↑f ⁻¹' {x})) x
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.mkMetric_nnreal_smul
File: Mathlib/MeasureTheory/Measure/Hausdorff.lean

tactic: rw [ENNReal.smul_def, ENNReal.smul_def,
  mkMetric_smul m ENNReal.coe_ne_top (ENNReal.coe_ne_zero.mpr hc)]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
m : ℝ≥0∞ → ℝ≥0∞
c : ℝ≥0
hc : c ≠ 0
⊢ mkMetric (c • m) = c • mkMetric m
state_after: no goals
Theorem: Nat.dist_pos_of_ne
File: Mathlib/Data/Nat/Dist.lean

tactic: rw [dist_eq_sub_of_le (le_of_lt h)]
state_before: i j : ℕ
hne : i ≠ j
h : i < j
⊢ 0 < i.dist j
state_after: i j : ℕ
hne : i ≠ j
h : i < j
⊢ 0 < j - i

tactic: apply tsub_pos_of_lt h
state_before: i j : ℕ
hne : i ≠ j
h : i < j
⊢ 0 < j - i
state_after: no goals

tactic: contradiction
state_before: i j : ℕ
hne : i ≠ j
h : i = j
⊢ 0 < i.dist j
state_after: no goals

tactic: rw [dist_eq_sub_of_le_right (le_of_lt h)]
state_before: i j : ℕ
hne : i ≠ j
h : i > j
⊢ 0 < i.dist j
state_after: i j : ℕ
hne : i ≠ j
h : i > j
⊢ 0 < i - j

tactic: apply tsub_pos_of_lt h
state_before: i j : ℕ
hne : i ≠ j
h : i > j
⊢ 0 < i - j
state_after: no goals
Theorem: Filter.mem_comap_iff
File: Mathlib/Order/Filter/Basic.lean

tactic: rw [← image_mem_map_iff inj, map_comap_of_mem large]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l f✝ f₁ f₂ : Filter α
g g₁ g₂ : Filter β
m✝ : α → β
m' : β → γ
s : Set α
t : Set β
f : Filter β
m : α → β
inj : Injective m
large : range m ∈ f
S : Set α
⊢ S ∈ comap m f ↔ m '' S ∈ f
state_after: no goals
Theorem: CategoryTheory.Adjunction.hasLiftingProperty_iff
File: Mathlib/CategoryTheory/LiftingProperties/Adjunction.lean

tactic: constructor <;> intro <;> constructor <;> intro f g sq
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
G : C ⥤ D
F : D ⥤ C
adj : G ⊣ F
A B : C
X Y : D
i : A ⟶ B
p : X ⟶ Y
⊢ HasLiftingProperty (G.map i) p ↔ HasLiftingProperty i (F.map p)
state_after: case mp.sq_hasLift
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
G : C ⥤ D
F : D ⥤ C
adj : G ⊣ F
A B : C
X Y : D
i : A ⟶ B
p : X ⟶ Y
a✝ : HasLiftingProperty (G.map i) p
f : A ⟶ F.obj X
g : B ⟶ F.obj Y
sq : CommSq f i (F.map p) g
⊢ sq.HasLift

case mpr.sq_hasLift
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
G : C ⥤ D
F : D ⥤ C
adj : G ⊣ F
A B : C
X Y : D
i : A ⟶ B
p : X ⟶ Y
a✝ : HasLiftingProperty i (F.map p)
f : G.obj A ⟶ X
g : G.obj B ⟶ Y
sq : CommSq f (G.map i) p g
⊢ sq.HasLift

tactic: rw [← sq.left_adjoint_hasLift_iff adj]
state_before: case mp.sq_hasLift
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
G : C ⥤ D
F : D ⥤ C
adj : G ⊣ F
A B : C
X Y : D
i : A ⟶ B
p : X ⟶ Y
a✝ : HasLiftingProperty (G.map i) p
f : A ⟶ F.obj X
g : B ⟶ F.obj Y
sq : CommSq f i (F.map p) g
⊢ sq.HasLift
state_after: case mp.sq_hasLift
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
G : C ⥤ D
F : D ⥤ C
adj : G ⊣ F
A B : C
X Y : D
i : A ⟶ B
p : X ⟶ Y
a✝ : HasLiftingProperty (G.map i) p
f : A ⟶ F.obj X
g : B ⟶ F.obj Y
sq : CommSq f i (F.map p) g
⊢ ⋯.HasLift

tactic: infer_instance
state_before: case mp.sq_hasLift
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
G : C ⥤ D
F : D ⥤ C
adj : G ⊣ F
A B : C
X Y : D
i : A ⟶ B
p : X ⟶ Y
a✝ : HasLiftingProperty (G.map i) p
f : A ⟶ F.obj X
g : B ⟶ F.obj Y
sq : CommSq f i (F.map p) g
⊢ ⋯.HasLift
state_after: no goals

tactic: rw [← sq.right_adjoint_hasLift_iff adj]
state_before: case mpr.sq_hasLift
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
G : C ⥤ D
F : D ⥤ C
adj : G ⊣ F
A B : C
X Y : D
i : A ⟶ B
p : X ⟶ Y
a✝ : HasLiftingProperty i (F.map p)
f : G.obj A ⟶ X
g : G.obj B ⟶ Y
sq : CommSq f (G.map i) p g
⊢ sq.HasLift
state_after: case mpr.sq_hasLift
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
G : C ⥤ D
F : D ⥤ C
adj : G ⊣ F
A B : C
X Y : D
i : A ⟶ B
p : X ⟶ Y
a✝ : HasLiftingProperty i (F.map p)
f : G.obj A ⟶ X
g : G.obj B ⟶ Y
sq : CommSq f (G.map i) p g
⊢ ⋯.HasLift

tactic: infer_instance
state_before: case mpr.sq_hasLift
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
G : C ⥤ D
F : D ⥤ C
adj : G ⊣ F
A B : C
X Y : D
i : A ⟶ B
p : X ⟶ Y
a✝ : HasLiftingProperty i (F.map p)
f : G.obj A ⟶ X
g : G.obj B ⟶ Y
sq : CommSq f (G.map i) p g
⊢ ⋯.HasLift
state_after: no goals
Theorem: Nat.Partrec.Code.eval_curry
File: Mathlib/Computability/PartrecCode.lean

tactic: simp! [Seq.seq]
state_before: c : Code
n x : ℕ
⊢ (c.curry n).eval x = c.eval (Nat.pair n x)
state_after: no goals
Theorem: map_nhds_induced_of_surjective
File: Mathlib/Topology/Order.lean

tactic: rw [nhds_induced, map_comap_of_surjective hf]
state_before: α : Type u
β : Type v
γ : Type u_1
f✝ : α → β
ι : Sort u_2
T : TopologicalSpace α
f : β → α
hf : Surjective f
a : β
⊢ map f (𝓝 a) = 𝓝 (f a)
state_after: no goals
Theorem: Filter.bind_smallSets_gc
File: Mathlib/Order/Filter/SmallSets.lean

tactic: intro L l
state_before: α : Type u_1
β : Type u_2
ι : Sort u_3
l l' la : Filter α
lb : Filter β
⊢ GaloisConnection (fun L => L.bind 𝓟) smallSets
state_after: α : Type u_1
β : Type u_2
ι : Sort u_3
l✝ l' la : Filter α
lb : Filter β
L : Filter (Set α)
l : Filter α
⊢ (fun L => L.bind 𝓟) L ≤ l ↔ L ≤ l.smallSets

tactic: simp_rw [smallSets_eq_generate, le_generate_iff, image_subset_iff]
state_before: α : Type u_1
β : Type u_2
ι : Sort u_3
l✝ l' la : Filter α
lb : Filter β
L : Filter (Set α)
l : Filter α
⊢ (fun L => L.bind 𝓟) L ≤ l ↔ L ≤ l.smallSets
state_after: α : Type u_1
β : Type u_2
ι : Sort u_3
l✝ l' la : Filter α
lb : Filter β
L : Filter (Set α)
l : Filter α
⊢ L.bind 𝓟 ≤ l ↔ l.sets ⊆ powerset ⁻¹' L.sets

tactic: rfl
state_before: α : Type u_1
β : Type u_2
ι : Sort u_3
l✝ l' la : Filter α
lb : Filter β
L : Filter (Set α)
l : Filter α
⊢ L.bind 𝓟 ≤ l ↔ l.sets ⊆ powerset ⁻¹' L.sets
state_after: no goals
Theorem: MeasureTheory.sum_measure_preimage_singleton
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp only [← measure_biUnion_finset (pairwiseDisjoint_fiber f s) hf,
  Finset.set_biUnion_preimage_singleton]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : Finset β
f : α → β
hf : ∀ y ∈ s, MeasurableSet (f ⁻¹' {y})
⊢ ∑ b ∈ s, μ (f ⁻¹' {b}) = μ (f ⁻¹' ↑s)
state_after: no goals
Theorem: Real.toNNReal_sum_of_nonneg
File: Mathlib/Data/NNReal/Basic.lean

tactic: rw [← coe_inj, NNReal.coe_sum, Real.coe_toNNReal _ (Finset.sum_nonneg hf)]
state_before: r r₁ r₂ : ℝ≥0
x y : ℝ
α : Type u_1
s : Finset α
f : α → ℝ
hf : ∀ a ∈ s, 0 ≤ f a
⊢ (∑ a ∈ s, f a).toNNReal = ∑ a ∈ s, (f a).toNNReal
state_after: r r₁ r₂ : ℝ≥0
x y : ℝ
α : Type u_1
s : Finset α
f : α → ℝ
hf : ∀ a ∈ s, 0 ≤ f a
⊢ ∑ i ∈ s, f i = ∑ a ∈ s, ↑(f a).toNNReal

tactic: exact Finset.sum_congr rfl fun x hxs => by rw [Real.coe_toNNReal _ (hf x hxs)]
state_before: r r₁ r₂ : ℝ≥0
x y : ℝ
α : Type u_1
s : Finset α
f : α → ℝ
hf : ∀ a ∈ s, 0 ≤ f a
⊢ ∑ i ∈ s, f i = ∑ a ∈ s, ↑(f a).toNNReal
state_after: no goals

tactic: rw [Real.coe_toNNReal _ (hf x hxs)]
state_before: r r₁ r₂ : ℝ≥0
x✝ y : ℝ
α : Type u_1
s : Finset α
f : α → ℝ
hf : ∀ a ∈ s, 0 ≤ f a
x : α
hxs : x ∈ s
⊢ f x = ↑(f x).toNNReal
state_after: no goals
Theorem: isLindelof_range
File: Mathlib/Topology/Compactness/Lindelof.lean

tactic: rw [← image_univ]
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
inst✝ : LindelofSpace X
f : X → Y
hf : Continuous f
⊢ IsLindelof (range f)
state_after: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
inst✝ : LindelofSpace X
f : X → Y
hf : Continuous f
⊢ IsLindelof (f '' univ)

tactic: exact isLindelof_univ.image hf
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
inst✝ : LindelofSpace X
f : X → Y
hf : Continuous f
⊢ IsLindelof (f '' univ)
state_after: no goals
Theorem: IsLocalization.localization_localization_map_units
File: Mathlib/RingTheory/Localization/LocalizationLocalization.lean

tactic: obtain ⟨y', z, eq⟩ := mem_localizationLocalizationSubmodule.mp y.prop
state_before: R : Type u_1
inst✝⁹ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝⁸ : CommSemiring S
inst✝⁷ : Algebra R S
P : Type u_3
inst✝⁶ : CommSemiring P
N : Submonoid S
T : Type u_4
inst✝⁵ : CommSemiring T
inst✝⁴ : Algebra R T
inst✝³ : Algebra S T
inst✝² : IsScalarTower R S T
inst✝¹ : IsLocalization M S
inst✝ : IsLocalization N T
y : ↥(localizationLocalizationSubmodule M N)
⊢ IsUnit ((algebraMap R T) ↑y)
state_after: case intro.intro
R : Type u_1
inst✝⁹ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝⁸ : CommSemiring S
inst✝⁷ : Algebra R S
P : Type u_3
inst✝⁶ : CommSemiring P
N : Submonoid S
T : Type u_4
inst✝⁵ : CommSemiring T
inst✝⁴ : Algebra R T
inst✝³ : Algebra S T
inst✝² : IsScalarTower R S T
inst✝¹ : IsLocalization M S
inst✝ : IsLocalization N T
y : ↥(localizationLocalizationSubmodule M N)
y' : ↥N
z : ↥M
eq : (algebraMap R S) ↑y = ↑y' * (algebraMap R S) ↑z
⊢ IsUnit ((algebraMap R T) ↑y)

tactic: rw [IsScalarTower.algebraMap_apply R S T, eq, RingHom.map_mul, IsUnit.mul_iff]
state_before: case intro.intro
R : Type u_1
inst✝⁹ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝⁸ : CommSemiring S
inst✝⁷ : Algebra R S
P : Type u_3
inst✝⁶ : CommSemiring P
N : Submonoid S
T : Type u_4
inst✝⁵ : CommSemiring T
inst✝⁴ : Algebra R T
inst✝³ : Algebra S T
inst✝² : IsScalarTower R S T
inst✝¹ : IsLocalization M S
inst✝ : IsLocalization N T
y : ↥(localizationLocalizationSubmodule M N)
y' : ↥N
z : ↥M
eq : (algebraMap R S) ↑y = ↑y' * (algebraMap R S) ↑z
⊢ IsUnit ((algebraMap R T) ↑y)
state_after: case intro.intro
R : Type u_1
inst✝⁹ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝⁸ : CommSemiring S
inst✝⁷ : Algebra R S
P : Type u_3
inst✝⁶ : CommSemiring P
N : Submonoid S
T : Type u_4
inst✝⁵ : CommSemiring T
inst✝⁴ : Algebra R T
inst✝³ : Algebra S T
inst✝² : IsScalarTower R S T
inst✝¹ : IsLocalization M S
inst✝ : IsLocalization N T
y : ↥(localizationLocalizationSubmodule M N)
y' : ↥N
z : ↥M
eq : (algebraMap R S) ↑y = ↑y' * (algebraMap R S) ↑z
⊢ IsUnit ((algebraMap S T) ↑y') ∧ IsUnit ((algebraMap S T) ((algebraMap R S) ↑z))

tactic: exact ⟨IsLocalization.map_units T y', (IsLocalization.map_units _ z).map (algebraMap S T)⟩
state_before: case intro.intro
R : Type u_1
inst✝⁹ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝⁸ : CommSemiring S
inst✝⁷ : Algebra R S
P : Type u_3
inst✝⁶ : CommSemiring P
N : Submonoid S
T : Type u_4
inst✝⁵ : CommSemiring T
inst✝⁴ : Algebra R T
inst✝³ : Algebra S T
inst✝² : IsScalarTower R S T
inst✝¹ : IsLocalization M S
inst✝ : IsLocalization N T
y : ↥(localizationLocalizationSubmodule M N)
y' : ↥N
z : ↥M
eq : (algebraMap R S) ↑y = ↑y' * (algebraMap R S) ↑z
⊢ IsUnit ((algebraMap S T) ↑y') ∧ IsUnit ((algebraMap S T) ((algebraMap R S) ↑z))
state_after: no goals