1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Irrational.int_add
File: Mathlib/Data/Real/Irrational.lean

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

tactic: exact h.rat_add m
state_before: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
⊢ Irrational (↑↑m + x)
state_after: no goals
Theorem: ChartedSpace.isOpen_iff
File: Mathlib/Geometry/Manifold/ChartedSpace.lean

tactic: rw [isOpen_iff_of_cover (fun i ↦ (chartAt H i).open_source) (iUnion_source_chartAt H M)]
state_before: H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝² : TopologicalSpace H
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
s : Set M
⊢ IsOpen s ↔ ∀ (x : M), IsOpen (↑(chartAt H x) '' ((chartAt H x).source ∩ s))
state_after: H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝² : TopologicalSpace H
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
s : Set M
⊢ (∀ (i : M), IsOpen ((chartAt H i).source ∩ s)) ↔ ∀ (x : M), IsOpen (↑(chartAt H x) '' ((chartAt H x).source ∩ s))

tactic: simp only [(chartAt H _).isOpen_image_iff_of_subset_source inter_subset_left]
state_before: H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝² : TopologicalSpace H
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
s : Set M
⊢ (∀ (i : M), IsOpen ((chartAt H i).source ∩ s)) ↔ ∀ (x : M), IsOpen (↑(chartAt H x) '' ((chartAt H x).source ∩ s))
state_after: no goals
Theorem: IsNilpotent.of_pow
File: Mathlib/RingTheory/Nilpotent/Defs.lean

tactic: obtain ⟨n, h⟩ := h
state_before: R : Type u_1
S : Type u_2
x✝ y : R
inst✝ : MonoidWithZero R
x : R
m : ℕ
h : IsNilpotent (x ^ m)
⊢ IsNilpotent x
state_after: case intro
R : Type u_1
S : Type u_2
x✝ y : R
inst✝ : MonoidWithZero R
x : R
m n : ℕ
h : (x ^ m) ^ n = 0
⊢ IsNilpotent x

tactic: use m*n
state_before: case intro
R : Type u_1
S : Type u_2
x✝ y : R
inst✝ : MonoidWithZero R
x : R
m n : ℕ
h : (x ^ m) ^ n = 0
⊢ IsNilpotent x
state_after: case h
R : Type u_1
S : Type u_2
x✝ y : R
inst✝ : MonoidWithZero R
x : R
m n : ℕ
h : (x ^ m) ^ n = 0
⊢ x ^ (m * n) = 0

tactic: rw [← h, pow_mul x m n]
state_before: case h
R : Type u_1
S : Type u_2
x✝ y : R
inst✝ : MonoidWithZero R
x : R
m n : ℕ
h : (x ^ m) ^ n = 0
⊢ x ^ (m * n) = 0
state_after: no goals
Theorem: Set.ncard_eq_toFinset_card'
File: Mathlib/Data/Set/Card.lean

tactic: simp [← Nat.card_coe_set_eq, Nat.card_eq_fintype_card]
state_before: α : Type u_1
β : Type u_2
s✝ t s : Set α
inst✝ : Fintype ↑s
⊢ s.ncard = s.toFinset.card
state_after: no goals
Theorem: Int.preimage_Iio
File: Mathlib/Algebra/Order/Floor.lean

tactic: ext
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
⊢ Int.cast ⁻¹' Iio a = Iio ⌈a⌉
state_after: case h
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
x✝ : ℤ
⊢ x✝ ∈ Int.cast ⁻¹' Iio a ↔ x✝ ∈ Iio ⌈a⌉

tactic: simp [lt_ceil]
state_before: case h
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
x✝ : ℤ
⊢ x✝ ∈ Int.cast ⁻¹' Iio a ↔ x✝ ∈ Iio ⌈a⌉
state_after: no goals
Theorem: Seminorm.iSup_apply
File: Mathlib/Analysis/Seminorm.lean

tactic: rw [Seminorm.coe_iSup_eq hp, iSup_apply]
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
ι : Sort u_13
p : ι → Seminorm 𝕜 E
hp : BddAbove (range p)
x : E
⊢ (⨆ i, p i) x = ⨆ i, (p i) x
state_after: no goals
Theorem: ENNReal.div_eq_top
File: Mathlib/Data/ENNReal/Inv.lean

tactic: simp [div_eq_mul_inv, ENNReal.mul_eq_top]
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ a / b = ⊤ ↔ a ≠ 0 ∧ b = 0 ∨ a = ⊤ ∧ b ≠ ⊤
state_after: no goals
Theorem: isMeagre_iUnion
File: Mathlib/Topology/GDelta.lean

tactic: rw [IsMeagre, compl_iUnion]
state_before: X✝ : Type u_1
Y : Type u_2
ι : Type u_3
ι' : Sort u_4
X : Type u_5
inst✝ : TopologicalSpace X
s : ℕ → Set X
hs : ∀ (n : ℕ), IsMeagre (s n)
⊢ IsMeagre (⋃ n, s n)
state_after: X✝ : Type u_1
Y : Type u_2
ι : Type u_3
ι' : Sort u_4
X : Type u_5
inst✝ : TopologicalSpace X
s : ℕ → Set X
hs : ∀ (n : ℕ), IsMeagre (s n)
⊢ ⋂ i, (s i)ᶜ ∈ residual X

tactic: exact countable_iInter_mem.mpr hs
state_before: X✝ : Type u_1
Y : Type u_2
ι : Type u_3
ι' : Sort u_4
X : Type u_5
inst✝ : TopologicalSpace X
s : ℕ → Set X
hs : ∀ (n : ℕ), IsMeagre (s n)
⊢ ⋂ i, (s i)ᶜ ∈ residual X
state_after: no goals
Theorem: HomologicalComplex.homologyMap_comp
File: Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean

tactic: dsimp [homologyMap]
state_before: C : Type u_1
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L M : HomologicalComplex C c
φ : K ⟶ L
ψ : L ⟶ M
i j k : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
⊢ homologyMap (φ ≫ ψ) i = homologyMap φ i ≫ homologyMap ψ i
state_after: C : Type u_1
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L M : HomologicalComplex C c
φ : K ⟶ L
ψ : L ⟶ M
i j k : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
⊢ ShortComplex.homologyMap ((shortComplexFunctor C c i).map (φ ≫ ψ)) =
    ShortComplex.homologyMap ((shortComplexFunctor C c i).map φ) ≫
      ShortComplex.homologyMap ((shortComplexFunctor C c i).map ψ)

tactic: rw [Functor.map_comp, ShortComplex.homologyMap_comp]
state_before: C : Type u_1
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L M : HomologicalComplex C c
φ : K ⟶ L
ψ : L ⟶ M
i j k : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
⊢ ShortComplex.homologyMap ((shortComplexFunctor C c i).map (φ ≫ ψ)) =
    ShortComplex.homologyMap ((shortComplexFunctor C c i).map φ) ≫
      ShortComplex.homologyMap ((shortComplexFunctor C c i).map ψ)
state_after: no goals
Theorem: CovBy.exists_finset_erase
File: Mathlib/Data/Finset/Grade.lean

tactic: simpa only [← coe_inj, coe_erase] using h.finset_coe.exists_set_sdiff_singleton
state_before: α : Type u_1
s t : Finset α
a : α
inst✝ : DecidableEq α
h : s ⋖ t
⊢ ∃ a ∈ t, t.erase a = s
state_after: no goals
Theorem: Polynomial.natDegree_taylor
File: Mathlib/Algebra/Polynomial/Taylor.lean

tactic: refine map_natDegree_eq_natDegree _ ?_
state_before: R : Type u_1
inst✝ : Semiring R
r✝ : R
f p : R[X]
r : R
⊢ ((taylor r) p).natDegree = p.natDegree
state_after: R : Type u_1
inst✝ : Semiring R
r✝ : R
f p : R[X]
r : R
⊢ ∀ (n : ℕ) (c : R), c ≠ 0 → ((taylor r) ((monomial n) c)).natDegree = n

tactic: nontriviality R
state_before: R : Type u_1
inst✝ : Semiring R
r✝ : R
f p : R[X]
r : R
⊢ ∀ (n : ℕ) (c : R), c ≠ 0 → ((taylor r) ((monomial n) c)).natDegree = n
state_after: R : Type u_1
inst✝ : Semiring R
r✝ : R
f p : R[X]
r : R
a✝ : Nontrivial R
⊢ ∀ (n : ℕ) (c : R), c ≠ 0 → ((taylor r) ((monomial n) c)).natDegree = n

tactic: intro n c c0
state_before: R : Type u_1
inst✝ : Semiring R
r✝ : R
f p : R[X]
r : R
a✝ : Nontrivial R
⊢ ∀ (n : ℕ) (c : R), c ≠ 0 → ((taylor r) ((monomial n) c)).natDegree = n
state_after: R : Type u_1
inst✝ : Semiring R
r✝ : R
f p : R[X]
r : R
a✝ : Nontrivial R
n : ℕ
c : R
c0 : c ≠ 0
⊢ ((taylor r) ((monomial n) c)).natDegree = n

tactic: simp [taylor_monomial, natDegree_C_mul_eq_of_mul_ne_zero, natDegree_pow_X_add_C, c0]
state_before: R : Type u_1
inst✝ : Semiring R
r✝ : R
f p : R[X]
r : R
a✝ : Nontrivial R
n : ℕ
c : R
c0 : c ≠ 0
⊢ ((taylor r) ((monomial n) c)).natDegree = n
state_after: no goals
Theorem: constant_of_has_deriv_right_zero
File: Mathlib/Analysis/Calculus/MeanValue.lean

tactic: have : ∀ x ∈ Icc a b, ‖f x - f a‖ ≤ 0 * (x - a) := fun x hx =>
  norm_image_sub_le_of_norm_deriv_right_le_segment hcont hderiv (fun _ _ => norm_zero.le) x hx
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : ℝ → E
a b : ℝ
hcont : ContinuousOn f (Icc a b)
hderiv : ∀ x ∈ Ico a b, HasDerivWithinAt f 0 (Ici x) x
⊢ ∀ x ∈ Icc a b, f x = f a
state_after: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : ℝ → E
a b : ℝ
hcont : ContinuousOn f (Icc a b)
hderiv : ∀ x ∈ Ico a b, HasDerivWithinAt f 0 (Ici x) x
this : ∀ x ∈ Icc a b, ‖f x - f a‖ ≤ 0 * (x - a)
⊢ ∀ x ∈ Icc a b, f x = f a

tactic: simpa only [zero_mul, norm_le_zero_iff, sub_eq_zero] using this
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : ℝ → E
a b : ℝ
hcont : ContinuousOn f (Icc a b)
hderiv : ∀ x ∈ Ico a b, HasDerivWithinAt f 0 (Ici x) x
this : ∀ x ∈ Icc a b, ‖f x - f a‖ ≤ 0 * (x - a)
⊢ ∀ x ∈ Icc a b, f x = f a
state_after: no goals
Theorem: deriv_comp_neg
File: Mathlib/Analysis/Calculus/Deriv/Shift.lean

tactic: by_cases h : DifferentiableAt 𝕜 f (-a)
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : 𝕜 → F
a : 𝕜
⊢ deriv (fun x => f (-x)) a = -deriv f (-a)
state_after: case pos
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : 𝕜 → F
a : 𝕜
h : DifferentiableAt 𝕜 f (-a)
⊢ deriv (fun x => f (-x)) a = -deriv f (-a)

case neg
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : 𝕜 → F
a : 𝕜
h : ¬DifferentiableAt 𝕜 f (-a)
⊢ deriv (fun x => f (-x)) a = -deriv f (-a)

tactic: simpa only [deriv_neg, neg_one_smul] using deriv.scomp a h (differentiable_neg _)
state_before: case pos
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : 𝕜 → F
a : 𝕜
h : DifferentiableAt 𝕜 f (-a)
⊢ deriv (fun x => f (-x)) a = -deriv f (-a)
state_after: no goals

tactic: rw [deriv_zero_of_not_differentiableAt (mt differentiableAt_comp_neg_iff.mpr h),
  deriv_zero_of_not_differentiableAt h, neg_zero]
state_before: case neg
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : 𝕜 → F
a : 𝕜
h : ¬DifferentiableAt 𝕜 f (-a)
⊢ deriv (fun x => f (-x)) a = -deriv f (-a)
state_after: no goals
Theorem: Continuous.stronglyMeasurable_of_mulSupport_subset_isCompact
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: letI : PseudoMetricSpace β := pseudoMetrizableSpacePseudoMetric β
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁸ : Countable ι
f✝ g : α → β
inst✝⁷ : MeasurableSpace α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OpensMeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : BorelSpace β
inst✝ : One β
f : α → β
hf : Continuous f
k : Set α
hk : IsCompact k
h'f : mulSupport f ⊆ k
⊢ StronglyMeasurable f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁸ : Countable ι
f✝ g : α → β
inst✝⁷ : MeasurableSpace α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OpensMeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : BorelSpace β
inst✝ : One β
f : α → β
hf : Continuous f
k : Set α
hk : IsCompact k
h'f : mulSupport f ⊆ k
this : PseudoMetricSpace β := pseudoMetrizableSpacePseudoMetric β
⊢ StronglyMeasurable f

tactic: rw [stronglyMeasurable_iff_measurable_separable]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁸ : Countable ι
f✝ g : α → β
inst✝⁷ : MeasurableSpace α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OpensMeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : BorelSpace β
inst✝ : One β
f : α → β
hf : Continuous f
k : Set α
hk : IsCompact k
h'f : mulSupport f ⊆ k
this : PseudoMetricSpace β := pseudoMetrizableSpacePseudoMetric β
⊢ StronglyMeasurable f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁸ : Countable ι
f✝ g : α → β
inst✝⁷ : MeasurableSpace α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OpensMeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : BorelSpace β
inst✝ : One β
f : α → β
hf : Continuous f
k : Set α
hk : IsCompact k
h'f : mulSupport f ⊆ k
this : PseudoMetricSpace β := pseudoMetrizableSpacePseudoMetric β
⊢ Measurable f ∧ IsSeparable (range f)

tactic: exact ⟨hf.measurable, (isCompact_range_of_mulSupport_subset_isCompact hf hk h'f).isSeparable⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁸ : Countable ι
f✝ g : α → β
inst✝⁷ : MeasurableSpace α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OpensMeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : BorelSpace β
inst✝ : One β
f : α → β
hf : Continuous f
k : Set α
hk : IsCompact k
h'f : mulSupport f ⊆ k
this : PseudoMetricSpace β := pseudoMetrizableSpacePseudoMetric β
⊢ Measurable f ∧ IsSeparable (range f)
state_after: no goals
Theorem: MvPolynomial.isHomogeneous_X_pow
File: Mathlib/RingTheory/MvPolynomial/Homogeneous.lean

tactic: simpa only [one_mul] using (isHomogeneous_X _ _).pow n
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ ψ : MvPolynomial σ R
m n✝ : ℕ
i : σ
n : ℕ
⊢ (X i ^ n).IsHomogeneous n
state_after: no goals
Theorem: EMetric.disjoint_closedBall_of_lt_infEdist
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: rw [disjoint_left]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t : Set α
Φ : α → β
r : ℝ≥0∞
h : r < infEdist x s
⊢ Disjoint (closedBall x r) s
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t : Set α
Φ : α → β
r : ℝ≥0∞
h : r < infEdist x s
⊢ ∀ ⦃a : α⦄, a ∈ closedBall x r → a ∉ s

tactic: intro y hy h'y
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t : Set α
Φ : α → β
r : ℝ≥0∞
h : r < infEdist x s
⊢ ∀ ⦃a : α⦄, a ∈ closedBall x r → a ∉ s
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y✝ : α
s t : Set α
Φ : α → β
r : ℝ≥0∞
h : r < infEdist x s
y : α
hy : y ∈ closedBall x r
h'y : y ∈ s
⊢ False

tactic: apply lt_irrefl (infEdist x s)
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y✝ : α
s t : Set α
Φ : α → β
r : ℝ≥0∞
h : r < infEdist x s
y : α
hy : y ∈ closedBall x r
h'y : y ∈ s
⊢ False
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y✝ : α
s t : Set α
Φ : α → β
r : ℝ≥0∞
h : r < infEdist x s
y : α
hy : y ∈ closedBall x r
h'y : y ∈ s
⊢ infEdist x s < infEdist x s

tactic: calc
  infEdist x s ≤ edist x y := infEdist_le_edist_of_mem h'y
  _ ≤ r := by rwa [mem_closedBall, edist_comm] at hy
  _ < infEdist x s := h
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y✝ : α
s t : Set α
Φ : α → β
r : ℝ≥0∞
h : r < infEdist x s
y : α
hy : y ∈ closedBall x r
h'y : y ∈ s
⊢ infEdist x s < infEdist x s
state_after: no goals

tactic: rwa [mem_closedBall, edist_comm] at hy
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y✝ : α
s t : Set α
Φ : α → β
r : ℝ≥0∞
h : r < infEdist x s
y : α
hy : y ∈ closedBall x r
h'y : y ∈ s
⊢ edist x y ≤ r
state_after: no goals
Theorem: BddBelow.range_comp
File: Mathlib/Order/Bounds/Basic.lean

tactic: change BddBelow (range (g ∘ f))
state_before: α : Type u
β : Type v
γ✝ : Type w
ι : Sort x
γ : Type u_1
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α → β
g : β → γ
hf : BddBelow (range f)
hg : Monotone g
⊢ BddBelow (range fun x => g (f x))
state_after: α : Type u
β : Type v
γ✝ : Type w
ι : Sort x
γ : Type u_1
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α → β
g : β → γ
hf : BddBelow (range f)
hg : Monotone g
⊢ BddBelow (range (g ∘ f))

tactic: simpa only [Set.range_comp] using hg.map_bddBelow hf
state_before: α : Type u
β : Type v
γ✝ : Type w
ι : Sort x
γ : Type u_1
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α → β
g : β → γ
hf : BddBelow (range f)
hg : Monotone g
⊢ BddBelow (range (g ∘ f))
state_after: no goals
Theorem: MeasureTheory.lintegral_indicator₀
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [← lintegral_congr_ae (indicator_ae_eq_of_ae_eq_set hs.toMeasurable_ae_eq),
  lintegral_indicator _ (measurableSet_toMeasurable _ _),
  Measure.restrict_congr_set hs.toMeasurable_ae_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
s : Set α
hs : NullMeasurableSet s μ
⊢ ∫⁻ (a : α), s.indicator f a ∂μ = ∫⁻ (a : α) in s, f a ∂μ
state_after: no goals
Theorem: mul_inv_cancel_right₀
File: Mathlib/Algebra/GroupWithZero/Defs.lean

tactic: simp [h]
state_before: G₀ : Type u
M₀ : Type u_1
M₀' : Type u_2
G₀' : Type u_3
inst✝ : GroupWithZero G₀
a✝ b c g h✝ x : G₀
h : b ≠ 0
a : G₀
⊢ a * (b * b⁻¹) = a
state_after: no goals
Theorem: CategoryTheory.ComposableArrows.precomp_surjective
File: Mathlib/CategoryTheory/ComposableArrows.lean

tactic: simp
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
n m : ℕ
F✝ G : ComposableArrows C n
F : ComposableArrows C (n + 1)
⊢ F.δ₀ = (F.δ₀.precomp (F.map' 0 1 ⋯ ⋯)).δ₀
state_after: no goals

tactic: simp
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
n m : ℕ
F✝ G : ComposableArrows C n
F : ComposableArrows C (n + 1)
⊢ F.map' 0 1 ⋯ ⋯ = eqToHom ⋯ ≫ (F.δ₀.precomp (F.map' 0 1 ⋯ ⋯)).map' 0 1 ⋯ ⋯ ≫ eqToHom ⋯
state_after: no goals
Theorem: PSigma.Lex.mono
File: Mathlib/Data/Sigma/Lex.lean

tactic: obtain ⟨a, b, hij⟩ | ⟨i, hab⟩ := h
state_before: ι : Sort u_1
α : ι → Sort u_2
r r₁✝ r₂✝ : ι → ι → Prop
s s₁✝ s₂✝ : (i : ι) → α i → α i → Prop
r₁ r₂ : ι → ι → Prop
s₁ s₂ : (i : ι) → α i → α i → Prop
hr : ∀ (a b : ι), r₁ a b → r₂ a b
hs : ∀ (i : ι) (a b : α i), s₁ i a b → s₂ i a b
a b : (i : ι) ×' α i
h : Lex r₁ s₁ a b
⊢ Lex r₂ s₂ a b
state_after: case left
ι : Sort u_1
α : ι → Sort u_2
r r₁✝ r₂✝ : ι → ι → Prop
s s₁✝ s₂✝ : (i : ι) → α i → α i → Prop
r₁ r₂ : ι → ι → Prop
s₁ s₂ : (i : ι) → α i → α i → Prop
hr : ∀ (a b : ι), r₁ a b → r₂ a b
hs : ∀ (i : ι) (a b : α i), s₁ i a b → s₂ i a b
a₁✝ : ι
a : α a₁✝
a₂✝ : ι
b : α a₂✝
hij : r₁ a₁✝ a₂✝
⊢ Lex r₂ s₂ ⟨a₁✝, a⟩ ⟨a₂✝, b⟩

case right
ι : Sort u_1
α : ι → Sort u_2
r r₁✝ r₂✝ : ι → ι → Prop
s s₁✝ s₂✝ : (i : ι) → α i → α i → Prop
r₁ r₂ : ι → ι → Prop
s₁ s₂ : (i : ι) → α i → α i → Prop
hr : ∀ (a b : ι), r₁ a b → r₂ a b
hs : ∀ (i : ι) (a b : α i), s₁ i a b → s₂ i a b
i : ι
b₁✝ b₂✝ : α i
hab : s₁ i b₁✝ b₂✝
⊢ Lex r₂ s₂ ⟨i, b₁✝⟩ ⟨i, b₂✝⟩

tactic: exact Lex.left _ _ (hr _ _ hij)
state_before: case left
ι : Sort u_1
α : ι → Sort u_2
r r₁✝ r₂✝ : ι → ι → Prop
s s₁✝ s₂✝ : (i : ι) → α i → α i → Prop
r₁ r₂ : ι → ι → Prop
s₁ s₂ : (i : ι) → α i → α i → Prop
hr : ∀ (a b : ι), r₁ a b → r₂ a b
hs : ∀ (i : ι) (a b : α i), s₁ i a b → s₂ i a b
a₁✝ : ι
a : α a₁✝
a₂✝ : ι
b : α a₂✝
hij : r₁ a₁✝ a₂✝
⊢ Lex r₂ s₂ ⟨a₁✝, a⟩ ⟨a₂✝, b⟩
state_after: no goals

tactic: exact Lex.right _ (hs _ _ _ hab)
state_before: case right
ι : Sort u_1
α : ι → Sort u_2
r r₁✝ r₂✝ : ι → ι → Prop
s s₁✝ s₂✝ : (i : ι) → α i → α i → Prop
r₁ r₂ : ι → ι → Prop
s₁ s₂ : (i : ι) → α i → α i → Prop
hr : ∀ (a b : ι), r₁ a b → r₂ a b
hs : ∀ (i : ι) (a b : α i), s₁ i a b → s₂ i a b
i : ι
b₁✝ b₂✝ : α i
hab : s₁ i b₁✝ b₂✝
⊢ Lex r₂ s₂ ⟨i, b₁✝⟩ ⟨i, b₂✝⟩
state_after: no goals
Theorem: FdRep.Iso.conj_ρ
File: Mathlib/RepresentationTheory/FdRep.lean

tactic: erw [FdRep.isoToLinearEquiv, ← FGModuleCat.Iso.conj_eq_conj, Iso.conj_apply]
state_before: k G : Type u
inst✝¹ : Field k
inst✝ : Monoid G
V W : FdRep k G
i : V ≅ W
g : G
⊢ W.ρ g = (isoToLinearEquiv i).conj (V.ρ g)
state_after: k G : Type u
inst✝¹ : Field k
inst✝ : Monoid G
V W : FdRep k G
i : V ≅ W
g : G
⊢ W.ρ g =
    ((Action.forget (FGModuleCat k) (MonCat.of G)).mapIso i).inv ≫
      V.ρ g ≫ ((Action.forget (FGModuleCat k) (MonCat.of G)).mapIso i).hom

tactic: rw [Iso.eq_inv_comp ((Action.forget (FGModuleCat k) (MonCat.of G)).mapIso i)]
state_before: k G : Type u
inst✝¹ : Field k
inst✝ : Monoid G
V W : FdRep k G
i : V ≅ W
g : G
⊢ W.ρ g =
    ((Action.forget (FGModuleCat k) (MonCat.of G)).mapIso i).inv ≫
      V.ρ g ≫ ((Action.forget (FGModuleCat k) (MonCat.of G)).mapIso i).hom
state_after: k G : Type u
inst✝¹ : Field k
inst✝ : Monoid G
V W : FdRep k G
i : V ≅ W
g : G
⊢ ((Action.forget (FGModuleCat k) (MonCat.of G)).mapIso i).hom ≫ W.ρ g =
    V.ρ g ≫ ((Action.forget (FGModuleCat k) (MonCat.of G)).mapIso i).hom

tactic: exact (i.hom.comm g).symm
state_before: k G : Type u
inst✝¹ : Field k
inst✝ : Monoid G
V W : FdRep k G
i : V ≅ W
g : G
⊢ ((Action.forget (FGModuleCat k) (MonCat.of G)).mapIso i).hom ≫ W.ρ g =
    V.ρ g ≫ ((Action.forget (FGModuleCat k) (MonCat.of G)).mapIso i).hom
state_after: no goals
Theorem: PosNum.add_succ
File: Mathlib/Data/Num/Lemmas.lean

tactic: simp [one_add]
state_before: α : Type u_1
b : PosNum
⊢ 1 + b.succ = (1 + b).succ
state_after: no goals
Theorem: Polynomial.int_cyclotomic_spec
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean

tactic: by_cases hzero : n = 0
state_before: n : ℕ
⊢ map (Int.castRingHom ℂ) (cyclotomic n ℤ) = cyclotomic' n ℂ ∧
    (cyclotomic n ℤ).degree = (cyclotomic' n ℂ).degree ∧ (cyclotomic n ℤ).Monic
state_after: case pos
n : ℕ
hzero : n = 0
⊢ map (Int.castRingHom ℂ) (cyclotomic n ℤ) = cyclotomic' n ℂ ∧
    (cyclotomic n ℤ).degree = (cyclotomic' n ℂ).degree ∧ (cyclotomic n ℤ).Monic

case neg
n : ℕ
hzero : ¬n = 0
⊢ map (Int.castRingHom ℂ) (cyclotomic n ℤ) = cyclotomic' n ℂ ∧
    (cyclotomic n ℤ).degree = (cyclotomic' n ℂ).degree ∧ (cyclotomic n ℤ).Monic

tactic: rw [int_cyclotomic_rw hzero]
state_before: case neg
n : ℕ
hzero : ¬n = 0
⊢ map (Int.castRingHom ℂ) (cyclotomic n ℤ) = cyclotomic' n ℂ ∧
    (cyclotomic n ℤ).degree = (cyclotomic' n ℂ).degree ∧ (cyclotomic n ℤ).Monic
state_after: case neg
n : ℕ
hzero : ¬n = 0
⊢ map (Int.castRingHom ℂ) ⋯.choose = cyclotomic' n ℂ ∧ ⋯.choose.degree = (cyclotomic' n ℂ).degree ∧ ⋯.choose.Monic

tactic: exact (int_coeff_of_cyclotomic' (Complex.isPrimitiveRoot_exp n hzero)).choose_spec
state_before: case neg
n : ℕ
hzero : ¬n = 0
⊢ map (Int.castRingHom ℂ) ⋯.choose = cyclotomic' n ℂ ∧ ⋯.choose.degree = (cyclotomic' n ℂ).degree ∧ ⋯.choose.Monic
state_after: no goals

tactic: simp only [hzero, cyclotomic, degree_one, monic_one, cyclotomic'_zero, dif_pos,
  eq_self_iff_true, Polynomial.map_one, and_self_iff]
state_before: case pos
n : ℕ
hzero : n = 0
⊢ map (Int.castRingHom ℂ) (cyclotomic n ℤ) = cyclotomic' n ℂ ∧
    (cyclotomic n ℤ).degree = (cyclotomic' n ℂ).degree ∧ (cyclotomic n ℤ).Monic
state_after: no goals
Theorem: MeasureTheory.ProbabilityMeasure.apply_mono
File: Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean

tactic: rw [← coeFn_comp_toFiniteMeasure_eq_coeFn]
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : ProbabilityMeasure Ω
s₁ s₂ : Set Ω
h : s₁ ⊆ s₂
⊢ μ s₁ ≤ μ s₂
state_after: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : ProbabilityMeasure Ω
s₁ s₂ : Set Ω
h : s₁ ⊆ s₂
⊢ μ.toFiniteMeasure s₁ ≤ μ.toFiniteMeasure s₂

tactic: exact MeasureTheory.FiniteMeasure.apply_mono _ h
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : ProbabilityMeasure Ω
s₁ s₂ : Set Ω
h : s₁ ⊆ s₂
⊢ μ.toFiniteMeasure s₁ ≤ μ.toFiniteMeasure s₂
state_after: no goals
Theorem: Set.iUnion_unpair_prod
File: Mathlib/Data/Nat/Pairing.lean

tactic: rw [← Set.iUnion_prod]
state_before: α : Type u_1
β : Type u_2
s : ℕ → Set α
t : ℕ → Set β
⊢ ⋃ n, s (unpair n).1 ×ˢ t (unpair n).2 = (⋃ n, s n) ×ˢ ⋃ n, t n
state_after: α : Type u_1
β : Type u_2
s : ℕ → Set α
t : ℕ → Set β
⊢ ⋃ n, s (unpair n).1 ×ˢ t (unpair n).2 = ⋃ x, s x.1 ×ˢ t x.2

tactic: exact surjective_unpair.iUnion_comp (fun x => s x.fst ×ˢ t x.snd)
state_before: α : Type u_1
β : Type u_2
s : ℕ → Set α
t : ℕ → Set β
⊢ ⋃ n, s (unpair n).1 ×ˢ t (unpair n).2 = ⋃ x, s x.1 ×ˢ t x.2
state_after: no goals