1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Asymptotics.isBigO_neg_left
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsBigO_def]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ (fun x => -f' x) =O[l] g ↔ f' =O[l] g
state_after: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ (∃ c, IsBigOWith c l (fun x => -f' x) g) ↔ ∃ c, IsBigOWith c l f' g

tactic: exact exists_congr fun _ => isBigOWith_neg_left
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ (∃ c, IsBigOWith c l (fun x => -f' x) g) ↔ ∃ c, IsBigOWith c l f' g
state_after: no goals
Theorem: List.lookmap_id'
File: Mathlib/Data/List/Basic.lean

tactic: rw [← map_id (l.lookmap f), lookmap_map_eq, map_id]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → Option α
h : ∀ (a b : α), b ∈ f a → a = b
l : List α
⊢ lookmap f l = l
state_after: case h
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → Option α
h : ∀ (a b : α), b ∈ f a → a = b
l : List α
⊢ ∀ (a b : α), b ∈ f a → id a = id b

tactic: exact h
state_before: case h
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → Option α
h : ∀ (a b : α), b ∈ f a → a = b
l : List α
⊢ ∀ (a b : α), b ∈ f a → id a = id b
state_after: no goals
Theorem: Complex.exp_ofReal_mul_I_im
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp [exp_mul_I, sin_ofReal_re]
state_before: x✝ y : ℂ
x : ℝ
⊢ (cexp (↑x * I)).im = Real.sin x
state_after: no goals
Theorem: Submonoid.LocalizationMap.ofMulEquivOfLocalizations_id
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: ext
state_before: M : Type u_1
inst✝³ : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝² : CommMonoid N
P : Type u_3
inst✝¹ : CommMonoid P
f : S.LocalizationMap N
g : M →* P
hg : ∀ (y : ↥S), IsUnit (g ↑y)
T : Submonoid P
Q : Type u_4
inst✝ : CommMonoid Q
⊢ f.ofMulEquivOfLocalizations (MulEquiv.refl N) = f
state_after: case h
M : Type u_1
inst✝³ : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝² : CommMonoid N
P : Type u_3
inst✝¹ : CommMonoid P
f : S.LocalizationMap N
g : M →* P
hg : ∀ (y : ↥S), IsUnit (g ↑y)
T : Submonoid P
Q : Type u_4
inst✝ : CommMonoid Q
x✝ : M
⊢ (f.ofMulEquivOfLocalizations (MulEquiv.refl N)).toMap x✝ = f.toMap x✝

tactic: rfl
state_before: case h
M : Type u_1
inst✝³ : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝² : CommMonoid N
P : Type u_3
inst✝¹ : CommMonoid P
f : S.LocalizationMap N
g : M →* P
hg : ∀ (y : ↥S), IsUnit (g ↑y)
T : Submonoid P
Q : Type u_4
inst✝ : CommMonoid Q
x✝ : M
⊢ (f.ofMulEquivOfLocalizations (MulEquiv.refl N)).toMap x✝ = f.toMap x✝
state_after: no goals
Theorem: Batteries.BEqCmp.compareOfLessAndEq
File: .lake/packages/batteries/Batteries/Classes/Order.lean

tactic: simp [compareOfLessAndEq]
state_before: α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x y : α
⊢ compareOfLessAndEq x y = Ordering.eq ↔ (x == y) = true
state_after: α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x y : α
⊢ (if x < y then Ordering.lt else if x = y then Ordering.eq else Ordering.gt) = Ordering.eq ↔ x = y

tactic: split <;> [skip; split] <;> simp [*]
state_before: α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x y : α
⊢ (if x < y then Ordering.lt else if x = y then Ordering.eq else Ordering.gt) = Ordering.eq ↔ x = y
state_after: case isTrue
α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x y : α
h✝ : x < y
⊢ ¬x = y

tactic: rintro rfl
state_before: case isTrue
α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x y : α
h✝ : x < y
⊢ ¬x = y
state_after: case isTrue
α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x : α
h✝ : x < x
⊢ False

tactic: exact lt_irrefl _ ‹_›
state_before: case isTrue
α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x : α
h✝ : x < x
⊢ False
state_after: no goals
Theorem: EuclideanGeometry.dist_sq_eq_dist_sq_add_dist_sq_sub_two_mul_dist_mul_dist_mul_cos_angle
File: Mathlib/Geometry/Euclidean/Triangle.lean

tactic: rw [dist_eq_norm_vsub V p1 p3, dist_eq_norm_vsub V p1 p2, dist_eq_norm_vsub V p3 p2]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
⊢ dist p1 p3 * dist p1 p3 =
    dist p1 p2 * dist p1 p2 + dist p3 p2 * dist p3 p2 - 2 * dist p1 p2 * dist p3 p2 * Real.cos (∠ p1 p2 p3)
state_after: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
⊢ ‖p1 -ᵥ p3‖ * ‖p1 -ᵥ p3‖ =
    ‖p1 -ᵥ p2‖ * ‖p1 -ᵥ p2‖ + ‖p3 -ᵥ p2‖ * ‖p3 -ᵥ p2‖ - 2 * ‖p1 -ᵥ p2‖ * ‖p3 -ᵥ p2‖ * Real.cos (∠ p1 p2 p3)

tactic: unfold angle
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
⊢ ‖p1 -ᵥ p3‖ * ‖p1 -ᵥ p3‖ =
    ‖p1 -ᵥ p2‖ * ‖p1 -ᵥ p2‖ + ‖p3 -ᵥ p2‖ * ‖p3 -ᵥ p2‖ - 2 * ‖p1 -ᵥ p2‖ * ‖p3 -ᵥ p2‖ * Real.cos (∠ p1 p2 p3)
state_after: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
⊢ ‖p1 -ᵥ p3‖ * ‖p1 -ᵥ p3‖ =
    ‖p1 -ᵥ p2‖ * ‖p1 -ᵥ p2‖ + ‖p3 -ᵥ p2‖ * ‖p3 -ᵥ p2‖ -
      2 * ‖p1 -ᵥ p2‖ * ‖p3 -ᵥ p2‖ * Real.cos (InnerProductGeometry.angle (p1 -ᵥ p2) (p3 -ᵥ p2))

tactic: convert norm_sub_sq_eq_norm_sq_add_norm_sq_sub_two_mul_norm_mul_norm_mul_cos_angle
  (p1 -ᵥ p2 : V) (p3 -ᵥ p2 : V)
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
⊢ ‖p1 -ᵥ p3‖ * ‖p1 -ᵥ p3‖ =
    ‖p1 -ᵥ p2‖ * ‖p1 -ᵥ p2‖ + ‖p3 -ᵥ p2‖ * ‖p3 -ᵥ p2‖ -
      2 * ‖p1 -ᵥ p2‖ * ‖p3 -ᵥ p2‖ * Real.cos (InnerProductGeometry.angle (p1 -ᵥ p2) (p3 -ᵥ p2))
state_after: case h.e'_2.h.e'_5.h.e'_3
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
⊢ p1 -ᵥ p3 = p1 -ᵥ p2 - (p3 -ᵥ p2)

case h.e'_2.h.e'_6.h.e'_3
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
⊢ p1 -ᵥ p3 = p1 -ᵥ p2 - (p3 -ᵥ p2)

tactic: exact (vsub_sub_vsub_cancel_right p1 p3 p2).symm
state_before: case h.e'_2.h.e'_5.h.e'_3
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
⊢ p1 -ᵥ p3 = p1 -ᵥ p2 - (p3 -ᵥ p2)
state_after: no goals

tactic: exact (vsub_sub_vsub_cancel_right p1 p3 p2).symm
state_before: case h.e'_2.h.e'_6.h.e'_3
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
⊢ p1 -ᵥ p3 = p1 -ᵥ p2 - (p3 -ᵥ p2)
state_after: no goals
Theorem: IsCompact.measure_lt_top_of_nhdsWithin
File: Mathlib/MeasureTheory/Measure/Typeclasses.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h : IsCompact s
hμ : ∀ x ∈ s, μ.FiniteAtFilter (𝓝[s] x)
⊢ μ ∅ < ⊤
state_after: no goals
Theorem: Booleanisation.lift_lt_lift
File: Mathlib/Order/Booleanisation.lean

tactic: rintro ⟨_⟩
state_before: α : Type u_1
inst✝ : GeneralizedBooleanAlgebra α
x y : Booleanisation α
a b : α
⊢ lift a < lift b → a < b
state_after: case lift
α : Type u_1
inst✝ : GeneralizedBooleanAlgebra α
x y : Booleanisation α
a b : α
a✝ : a < b
⊢ a < b

tactic: assumption
state_before: case lift
α : Type u_1
inst✝ : GeneralizedBooleanAlgebra α
x y : Booleanisation α
a b : α
a✝ : a < b
⊢ a < b
state_after: no goals
Theorem: sigmaFinsuppEquivDFinsupp_support
File: Mathlib/Data/Finsupp/ToDFinsupp.lean

tactic: ext
state_before: ι : Type u_1
R : Type u_2
M : Type u_3
η : ι → Type u_4
N : Type u_5
inst✝³ : Semiring R
inst✝² : DecidableEq ι
inst✝¹ : Zero N
inst✝ : (i : ι) → (x : η i →₀ N) → Decidable (x ≠ 0)
f : (i : ι) × η i →₀ N
⊢ (sigmaFinsuppEquivDFinsupp f).support = f.splitSupport
state_after: case a
ι : Type u_1
R : Type u_2
M : Type u_3
η : ι → Type u_4
N : Type u_5
inst✝³ : Semiring R
inst✝² : DecidableEq ι
inst✝¹ : Zero N
inst✝ : (i : ι) → (x : η i →₀ N) → Decidable (x ≠ 0)
f : (i : ι) × η i →₀ N
a✝ : ι
⊢ a✝ ∈ (sigmaFinsuppEquivDFinsupp f).support ↔ a✝ ∈ f.splitSupport

tactic: rw [DFinsupp.mem_support_toFun]
state_before: case a
ι : Type u_1
R : Type u_2
M : Type u_3
η : ι → Type u_4
N : Type u_5
inst✝³ : Semiring R
inst✝² : DecidableEq ι
inst✝¹ : Zero N
inst✝ : (i : ι) → (x : η i →₀ N) → Decidable (x ≠ 0)
f : (i : ι) × η i →₀ N
a✝ : ι
⊢ a✝ ∈ (sigmaFinsuppEquivDFinsupp f).support ↔ a✝ ∈ f.splitSupport
state_after: case a
ι : Type u_1
R : Type u_2
M : Type u_3
η : ι → Type u_4
N : Type u_5
inst✝³ : Semiring R
inst✝² : DecidableEq ι
inst✝¹ : Zero N
inst✝ : (i : ι) → (x : η i →₀ N) → Decidable (x ≠ 0)
f : (i : ι) × η i →₀ N
a✝ : ι
⊢ (sigmaFinsuppEquivDFinsupp f) a✝ ≠ 0 ↔ a✝ ∈ f.splitSupport

tactic: exact (Finsupp.mem_splitSupport_iff_nonzero _ _).symm
state_before: case a
ι : Type u_1
R : Type u_2
M : Type u_3
η : ι → Type u_4
N : Type u_5
inst✝³ : Semiring R
inst✝² : DecidableEq ι
inst✝¹ : Zero N
inst✝ : (i : ι) → (x : η i →₀ N) → Decidable (x ≠ 0)
f : (i : ι) × η i →₀ N
a✝ : ι
⊢ (sigmaFinsuppEquivDFinsupp f) a✝ ≠ 0 ↔ a✝ ∈ f.splitSupport
state_after: no goals
Theorem: Equiv.Perm.IsCycleOn.zpow_apply_eq
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: rw [zpow_negSucc, ← inv_pow]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
s✝ t : Set α
a b x y : α
s : Finset α
hf : f.IsCycleOn ↑s
ha : a ∈ s
n : ℕ
⊢ (f ^ Int.negSucc n) a = a ↔ ↑s.card ∣ Int.negSucc n
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
s✝ t : Set α
a b x y : α
s : Finset α
hf : f.IsCycleOn ↑s
ha : a ∈ s
n : ℕ
⊢ (f⁻¹ ^ (n + 1)) a = a ↔ ↑s.card ∣ Int.negSucc n

tactic: exact (hf.inv.pow_apply_eq ha).trans (dvd_neg.trans Int.natCast_dvd_natCast).symm
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
s✝ t : Set α
a b x y : α
s : Finset α
hf : f.IsCycleOn ↑s
ha : a ∈ s
n : ℕ
⊢ (f⁻¹ ^ (n + 1)) a = a ↔ ↑s.card ∣ Int.negSucc n
state_after: no goals
Theorem: frontier_lt_subset_eq
File: Mathlib/Topology/Order/OrderClosed.lean

tactic: simpa only [← not_lt, ← compl_setOf, frontier_compl, eq_comm] using frontier_le_subset_eq hg hf
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
⊢ frontier {b | f b < g b} ⊆ {b | f b = g b}
state_after: no goals
Theorem: Nat.ModEq.cancel_left_of_coprime
File: Mathlib/Data/Nat/ModEq.lean

tactic: rcases m.eq_zero_or_pos with (rfl | hm)
state_before: m n a b c d : ℕ
hmc : m.gcd c = 1
h : c * a ≡ c * b [MOD m]
⊢ a ≡ b [MOD m]
state_after: case inl
n a b c d : ℕ
hmc : gcd 0 c = 1
h : c * a ≡ c * b [MOD 0]
⊢ a ≡ b [MOD 0]

case inr
m n a b c d : ℕ
hmc : m.gcd c = 1
h : c * a ≡ c * b [MOD m]
hm : m > 0
⊢ a ≡ b [MOD m]

tactic: simpa [hmc] using h.cancel_left_div_gcd hm
state_before: case inr
m n a b c d : ℕ
hmc : m.gcd c = 1
h : c * a ≡ c * b [MOD m]
hm : m > 0
⊢ a ≡ b [MOD m]
state_after: no goals

tactic: simp only [gcd_zero_left] at hmc
state_before: case inl
n a b c d : ℕ
hmc : gcd 0 c = 1
h : c * a ≡ c * b [MOD 0]
⊢ a ≡ b [MOD 0]
state_after: case inl
n a b c d : ℕ
h : c * a ≡ c * b [MOD 0]
hmc : c = 1
⊢ a ≡ b [MOD 0]

tactic: simp only [gcd_zero_left, hmc, one_mul, modEq_zero_iff] at h
state_before: case inl
n a b c d : ℕ
h : c * a ≡ c * b [MOD 0]
hmc : c = 1
⊢ a ≡ b [MOD 0]
state_after: case inl
n a b c d : ℕ
hmc : c = 1
h : a = b
⊢ a ≡ b [MOD 0]

tactic: subst h
state_before: case inl
n a b c d : ℕ
hmc : c = 1
h : a = b
⊢ a ≡ b [MOD 0]
state_after: case inl
n a c d : ℕ
hmc : c = 1
⊢ a ≡ a [MOD 0]

tactic: rfl
state_before: case inl
n a c d : ℕ
hmc : c = 1
⊢ a ≡ a [MOD 0]
state_after: no goals
Theorem: Set.image_const_sub_Ico
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: have := image_comp (fun x => a + x) fun x => -x
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => a - x) '' Ico b c = Ioc (a - c) (a - b)
state_after: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
this : ∀ (a_1 : Set α), ((fun x => a + x) ∘ fun x => -x) '' a_1 = (fun x => a + x) '' ((fun x => -x) '' a_1)
⊢ (fun x => a - x) '' Ico b c = Ioc (a - c) (a - b)

tactic: dsimp [Function.comp_def] at this
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
this : ∀ (a_1 : Set α), ((fun x => a + x) ∘ fun x => -x) '' a_1 = (fun x => a + x) '' ((fun x => -x) '' a_1)
⊢ (fun x => a - x) '' Ico b c = Ioc (a - c) (a - b)
state_after: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
this : ∀ (a_1 : Set α), (fun x => a + -x) '' a_1 = (fun x => a + x) '' ((fun x => -x) '' a_1)
⊢ (fun x => a - x) '' Ico b c = Ioc (a - c) (a - b)

tactic: simp [sub_eq_add_neg, this, add_comm]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
this : ∀ (a_1 : Set α), (fun x => a + -x) '' a_1 = (fun x => a + x) '' ((fun x => -x) '' a_1)
⊢ (fun x => a - x) '' Ico b c = Ioc (a - c) (a - b)
state_after: no goals
Theorem: PartialHomeomorph.isOpen_extend_target
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rw [extend_target, I.range_eq_univ, inter_univ]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
inst✝² : TopologicalSpace H'
inst✝¹ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝ : I.Boundaryless
⊢ IsOpen (f.extend I).target
state_after: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
inst✝² : TopologicalSpace H'
inst✝¹ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝ : I.Boundaryless
⊢ IsOpen (↑I.symm ⁻¹' f.target)

tactic: exact I.continuous_symm.isOpen_preimage _ f.open_target
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
inst✝² : TopologicalSpace H'
inst✝¹ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝ : I.Boundaryless
⊢ IsOpen (↑I.symm ⁻¹' f.target)
state_after: no goals
Theorem: toIcoDiv_zsmul_add
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [add_comm, toIcoDiv_add_zsmul, add_comm]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
m : ℤ
⊢ toIcoDiv hp a (m • p + b) = m + toIcoDiv hp a b
state_after: no goals
Theorem: Finset.prod_Ioc_mul_eq_prod_Icc
File: Mathlib/Algebra/BigOperators/Intervals.lean

tactic: rw [mul_comm, mul_prod_Ioc_eq_prod_Icc h]
state_before: α : Type u_1
M : Type u_2
inst✝² : PartialOrder α
inst✝¹ : CommMonoid M
f : α → M
a b : α
inst✝ : LocallyFiniteOrder α
h : a ≤ b
⊢ (∏ x ∈ Ioc a b, f x) * f a = ∏ x ∈ Icc a b, f x
state_after: no goals
Theorem: ModP.v_p_lt_val
File: Mathlib/RingTheory/Perfection.lean

tactic: rw [lt_iff_not_le, not_iff_not, ← map_natCast (algebraMap O K) p, hv.le_iff_dvd,
  Ideal.Quotient.eq_zero_iff_mem, Ideal.mem_span_singleton]
state_before: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
x : O
⊢ v ↑p < v ((algebraMap O K) x) ↔ (Ideal.Quotient.mk (Ideal.span {↑p})) x ≠ 0
state_after: no goals
Theorem: Ordinal.toPGame_leftMoves
File: Mathlib/SetTheory/Game/Ordinal.lean

tactic: rw [toPGame, LeftMoves]
state_before: o : Ordinal.{u_1}
⊢ o.toPGame.LeftMoves = (Quotient.out o).α
state_after: no goals
Theorem: Path.refl_symm
File: Mathlib/Topology/Connected/PathConnected.lean

tactic: ext
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type u_3
γ : Path x y
a : X
⊢ (refl a).symm = refl a
state_after: case a.h
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type u_3
γ : Path x y
a : X
x✝ : ↑I
⊢ (refl a).symm x✝ = (refl a) x✝

tactic: rfl
state_before: case a.h
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type u_3
γ : Path x y
a : X
x✝ : ↑I
⊢ (refl a).symm x✝ = (refl a) x✝
state_after: no goals
Theorem: volume_preimage_coe
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: rw [volume_set_coe_def,
  comap_apply₀ _ _ Subtype.coe_injective
    (fun h => MeasurableSet.nullMeasurableSet_subtype_coe hs)
    (measurable_subtype_coe ht).nullMeasurableSet,
  image_preimage_eq_inter_range, Subtype.range_coe]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝ : MeasureSpace α
s t : Set α
hs : NullMeasurableSet s volume
ht : MeasurableSet t
⊢ volume (Subtype.val ⁻¹' t) = volume (t ∩ s)
state_after: no goals
Theorem: PosNum.succ'_pred'
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [succ'_to_nat, pred'_to_nat, Nat.add_one, Nat.succ_pred_eq_of_pos (to_nat_pos _)]
state_before: α : Type u_1
n : PosNum
⊢ ↑n.pred'.succ' = ↑n
state_after: no goals
Theorem: ProbabilityTheory.abs_truncation_le_abs_self
File: Mathlib/Probability/StrongLaw.lean

tactic: simp only [truncation, indicator, Set.mem_Icc, id, Function.comp_apply]
state_before: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
A : ℝ
x : α
⊢ |truncation f A x| ≤ |f x|
state_after: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
A : ℝ
x : α
⊢ |if f x ∈ Set.Ioc (-A) A then f x else 0| ≤ |f x|

tactic: split_ifs
state_before: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
A : ℝ
x : α
⊢ |if f x ∈ Set.Ioc (-A) A then f x else 0| ≤ |f x|
state_after: case pos
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
A : ℝ
x : α
h✝ : f x ∈ Set.Ioc (-A) A
⊢ |f x| ≤ |f x|

case neg
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
A : ℝ
x : α
h✝ : f x ∉ Set.Ioc (-A) A
⊢ |0| ≤ |f x|

tactic: exact le_rfl
state_before: case pos
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
A : ℝ
x : α
h✝ : f x ∈ Set.Ioc (-A) A
⊢ |f x| ≤ |f x|
state_after: no goals

tactic: simp [abs_nonneg]
state_before: case neg
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
A : ℝ
x : α
h✝ : f x ∉ Set.Ioc (-A) A
⊢ |0| ≤ |f x|
state_after: no goals
Theorem: Ideal.quotientToQuotientRangePowQuotSuccAux_mk
File: Mathlib/NumberTheory/RamificationInertia.lean

tactic: apply Quotient.map'_mk''
state_before: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
hfp : NeZero e
i : ℕ
a : S
a_mem : a ∈ P ^ i
x : S
⊢ quotientToQuotientRangePowQuotSuccAux f p P a_mem (Submodule.Quotient.mk x) =
    Submodule.Quotient.mk ⟨(Quotient.mk (P ^ e)) (a * x), ⋯⟩
state_after: no goals
Theorem: Nat.prime_mul_iff
File: Mathlib/Data/Nat/Prime.lean

tactic: simp only [iff_self_iff, irreducible_mul_iff, ← irreducible_iff_nat_prime, Nat.isUnit_iff]
state_before: n a b : ℕ
⊢ Prime (a * b) ↔ Prime a ∧ b = 1 ∨ Prime b ∧ a = 1
state_after: no goals
Theorem: intervalIntegrable_const_iff
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simp only [intervalIntegrable_iff, integrableOn_const]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝ : NormedAddCommGroup E
f : ℝ → E
a b : ℝ
μ : Measure ℝ
c : E
⊢ IntervalIntegrable (fun x => c) μ a b ↔ c = 0 ∨ μ (Ι a b) < ⊤
state_after: no goals
Theorem: AbsoluteValue.map_units_intCast
File: Mathlib/Data/Int/AbsoluteValue.lean

tactic: rcases Int.units_eq_one_or x with (rfl | rfl) <;> simp
state_before: R : Type u_1
S : Type u_2
inst✝² : Ring R
inst✝¹ : LinearOrderedCommRing S
inst✝ : Nontrivial R
abv : AbsoluteValue R S
x : ℤˣ
⊢ abv ↑↑x = 1
state_after: no goals