1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: PEquiv.trans_single_of_eq_none
File: Mathlib/Data/PEquiv.lean

tactic: ext
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
b : β
c : γ
f : δ ≃. β
h : f.symm b = none
⊢ f.trans (single b c) = ⊥
state_after: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
b : β
c : γ
f : δ ≃. β
h : f.symm b = none
x✝ : δ
a✝ : γ
⊢ a✝ ∈ (f.trans (single b c)) x✝ ↔ a✝ ∈ ⊥ x✝

tactic: simp only [eq_none_iff_forall_not_mem, Option.mem_def, f.eq_some_iff] at h
state_before: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
b : β
c : γ
f : δ ≃. β
h : f.symm b = none
x✝ : δ
a✝ : γ
⊢ a✝ ∈ (f.trans (single b c)) x✝ ↔ a✝ ∈ ⊥ x✝
state_after: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
b : β
c : γ
f : δ ≃. β
x✝ : δ
a✝ : γ
h : ∀ (a : δ), ¬f a = some b
⊢ a✝ ∈ (f.trans (single b c)) x✝ ↔ a✝ ∈ ⊥ x✝

tactic: dsimp [PEquiv.trans, single]
state_before: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
b : β
c : γ
f : δ ≃. β
x✝ : δ
a✝ : γ
h : ∀ (a : δ), ¬f a = some b
⊢ a✝ ∈ (f.trans (single b c)) x✝ ↔ a✝ ∈ ⊥ x✝
state_after: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
b : β
c : γ
f : δ ≃. β
x✝ : δ
a✝ : γ
h : ∀ (a : δ), ¬f a = some b
⊢ (a✝ ∈ (f x✝).bind fun x => if x = b then some c else none) ↔ a✝ ∈ none

tactic: simp only [mem_def, bind_eq_some, iff_false, not_exists, not_and]
state_before: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
b : β
c : γ
f : δ ≃. β
x✝ : δ
a✝ : γ
h : ∀ (a : δ), ¬f a = some b
⊢ (a✝ ∈ (f x✝).bind fun x => if x = b then some c else none) ↔ a✝ ∈ none
state_after: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
b : β
c : γ
f : δ ≃. β
x✝ : δ
a✝ : γ
h : ∀ (a : δ), ¬f a = some b
⊢ ∀ (x : β), f x✝ = some x → ¬(if x = b then some c else none) = some a✝

tactic: intros
state_before: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
b : β
c : γ
f : δ ≃. β
x✝ : δ
a✝ : γ
h : ∀ (a : δ), ¬f a = some b
⊢ ∀ (x : β), f x✝ = some x → ¬(if x = b then some c else none) = some a✝
state_after: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
b : β
c : γ
f : δ ≃. β
x✝¹ : δ
a✝¹ : γ
h : ∀ (a : δ), ¬f a = some b
x✝ : β
a✝ : f x✝¹ = some x✝
⊢ ¬(if x✝ = b then some c else none) = some a✝¹

tactic: split_ifs <;> simp_all
state_before: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
b : β
c : γ
f : δ ≃. β
x✝¹ : δ
a✝¹ : γ
h : ∀ (a : δ), ¬f a = some b
x✝ : β
a✝ : f x✝¹ = some x✝
⊢ ¬(if x✝ = b then some c else none) = some a✝¹
state_after: no goals
Theorem: Finset.image₂_union_right
File: Mathlib/Data/Finset/NAry.lean

tactic: push_cast
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
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq β
⊢ ↑(image₂ f s (t ∪ t')) = ↑(image₂ f s t ∪ image₂ f s t')
state_after: α : 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
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq β
⊢ image2 f (↑s) (↑t ∪ ↑t') = image2 f ↑s ↑t ∪ image2 f ↑s ↑t'

tactic: exact image2_union_right
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
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq β
⊢ image2 f (↑s) (↑t ∪ ↑t') = image2 f ↑s ↑t ∪ image2 f ↑s ↑t'
state_after: no goals
Theorem: le_div_iff_mul_le
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [← mul_le_mul_iff_right b, div_eq_mul_inv, inv_mul_cancel_right]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
⊢ a ≤ c / b ↔ a * b ≤ c
state_after: no goals
Theorem: HurwitzKernelBounds.summable_f_int
File: Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean

tactic: apply Summable.of_norm
state_before: k : ℕ
a t : ℝ
ht : 0 < t
⊢ Summable (f_int k a t)
state_after: case hf
k : ℕ
a t : ℝ
ht : 0 < t
⊢ Summable fun a_1 => ‖f_int k a t a_1‖

tactic: suffices ∀ n, ‖f_int k a t n‖ = ‖(Int.rec (f_nat k a t) (f_nat k (1 - a) t) : ℤ → ℝ) n‖ from
  funext this ▸ (HasSum.int_rec (summable_f_nat k a ht).hasSum
    (summable_f_nat k (1 - a) ht).hasSum).summable.norm
state_before: case hf
k : ℕ
a t : ℝ
ht : 0 < t
⊢ Summable fun a_1 => ‖f_int k a t a_1‖
state_after: case hf
k : ℕ
a t : ℝ
ht : 0 < t
⊢ ∀ (n : ℤ), ‖f_int k a t n‖ = ‖(fun t_1 => Int.rec (f_nat k a t) (f_nat k (1 - a) t) t_1) n‖

tactic: intro n
state_before: case hf
k : ℕ
a t : ℝ
ht : 0 < t
⊢ ∀ (n : ℤ), ‖f_int k a t n‖ = ‖(fun t_1 => Int.rec (f_nat k a t) (f_nat k (1 - a) t) t_1) n‖
state_after: case hf
k : ℕ
a t : ℝ
ht : 0 < t
n : ℤ
⊢ ‖f_int k a t n‖ = ‖(fun t_1 => Int.rec (f_nat k a t) (f_nat k (1 - a) t) t_1) n‖

tactic: cases' n with m m
state_before: case hf
k : ℕ
a t : ℝ
ht : 0 < t
n : ℤ
⊢ ‖f_int k a t n‖ = ‖(fun t_1 => Int.rec (f_nat k a t) (f_nat k (1 - a) t) t_1) n‖
state_after: case hf.ofNat
k : ℕ
a t : ℝ
ht : 0 < t
m : ℕ
⊢ ‖f_int k a t (Int.ofNat m)‖ = ‖(fun t_1 => Int.rec (f_nat k a t) (f_nat k (1 - a) t) t_1) (Int.ofNat m)‖

case hf.negSucc
k : ℕ
a t : ℝ
ht : 0 < t
m : ℕ
⊢ ‖f_int k a t (Int.negSucc m)‖ = ‖(fun t_1 => Int.rec (f_nat k a t) (f_nat k (1 - a) t) t_1) (Int.negSucc m)‖

tactic: simp only [f_int, f_nat, Int.ofNat_eq_coe, Int.cast_natCast, norm_mul, norm_eq_abs, abs_pow,
  abs_abs]
state_before: case hf.ofNat
k : ℕ
a t : ℝ
ht : 0 < t
m : ℕ
⊢ ‖f_int k a t (Int.ofNat m)‖ = ‖(fun t_1 => Int.rec (f_nat k a t) (f_nat k (1 - a) t) t_1) (Int.ofNat m)‖
state_after: no goals

tactic: simp only [f_int, f_nat, Int.cast_negSucc, norm_mul, norm_eq_abs, abs_pow, abs_abs,
  (by { push_cast; ring } : -↑(m + 1) + a = -(m + (1 - a))), abs_neg, neg_sq]
state_before: case hf.negSucc
k : ℕ
a t : ℝ
ht : 0 < t
m : ℕ
⊢ ‖f_int k a t (Int.negSucc m)‖ = ‖(fun t_1 => Int.rec (f_nat k a t) (f_nat k (1 - a) t) t_1) (Int.negSucc m)‖
state_after: no goals

tactic: push_cast
state_before: k : ℕ
a t : ℝ
ht : 0 < t
m : ℕ
⊢ -↑(m + 1) + a = -(↑m + (1 - a))
state_after: k : ℕ
a t : ℝ
ht : 0 < t
m : ℕ
⊢ -(↑m + 1) + a = -(↑m + (1 - a))

tactic: ring
state_before: k : ℕ
a t : ℝ
ht : 0 < t
m : ℕ
⊢ -(↑m + 1) + a = -(↑m + (1 - a))
state_after: no goals
Theorem: Set.Finite.absorbs_biInter
File: Mathlib/Topology/Bornology/Absorbs.lean

tactic: simpa only [sInter_image, forall_mem_image] using (hI.image s).absorbs_sInter
state_before: G₀ : Type u_1
α : Type u_2
inst✝² : GroupWithZero G₀
inst✝¹ : Bornology G₀
inst✝ : MulAction G₀ α
s✝ t u : Set α
S : Set (Set α)
ι : Type u_3
I : Set ι
hI : I.Finite
s : ι → Set α
⊢ Absorbs G₀ (⋂ i ∈ I, s i) t ↔ ∀ i ∈ I, Absorbs G₀ (s i) t
state_after: no goals
Theorem: Subgroup.index_comap
File: Mathlib/GroupTheory/Index.lean

tactic: rfl
state_before: G : Type u_1
inst✝¹ : Group G
H K L : Subgroup G
G' : Type u_2
inst✝ : Group G'
f : G' →* G
⊢ comap f H = comap f.rangeRestrict (H.subgroupOf f.range)
state_after: no goals
Theorem: Module.End_algebraMap_isUnit_inv_apply_eq_iff
File: Mathlib/Algebra/Algebra/Basic.lean

tactic: apply_fun ⇑h.unit.val using ((Module.End_isUnit_iff _).mp h).injective
state_before: R : Type u
S : Type v
M : Type w
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : Module S M
inst✝² : SMulCommClass S R M
inst✝¹ : SMul R S
inst✝ : IsScalarTower R S M
x : R
h : IsUnit ((algebraMap R (End S M)) x)
m m' : M
H : m = x • m'
⊢ ↑h.unit⁻¹ (x • m') = m'
state_after: R : Type u
S : Type v
M : Type w
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : Module S M
inst✝² : SMulCommClass S R M
inst✝¹ : SMul R S
inst✝ : IsScalarTower R S M
x : R
h : IsUnit ((algebraMap R (End S M)) x)
m m' : M
H : m = x • m'
⊢ ↑h.unit (↑h.unit⁻¹ (x • m')) = ↑h.unit m'

tactic: erw [End_isUnit_apply_inv_apply_of_isUnit]
state_before: R : Type u
S : Type v
M : Type w
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : Module S M
inst✝² : SMulCommClass S R M
inst✝¹ : SMul R S
inst✝ : IsScalarTower R S M
x : R
h : IsUnit ((algebraMap R (End S M)) x)
m m' : M
H : m = x • m'
⊢ ↑h.unit (↑h.unit⁻¹ (x • m')) = ↑h.unit m'
state_after: R : Type u
S : Type v
M : Type w
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : Module S M
inst✝² : SMulCommClass S R M
inst✝¹ : SMul R S
inst✝ : IsScalarTower R S M
x : R
h : IsUnit ((algebraMap R (End S M)) x)
m m' : M
H : m = x • m'
⊢ x • m' = ↑h.unit m'

tactic: rfl
state_before: R : Type u
S : Type v
M : Type w
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : Module S M
inst✝² : SMulCommClass S R M
inst✝¹ : SMul R S
inst✝ : IsScalarTower R S M
x : R
h : IsUnit ((algebraMap R (End S M)) x)
m m' : M
H : m = x • m'
⊢ x • m' = ↑h.unit m'
state_after: no goals
Theorem: Real.sqrt_one
File: Mathlib/Data/Real/Sqrt.lean

tactic: simp [Real.sqrt]
state_before: x y : ℝ
⊢ √1 = 1
state_after: no goals
Theorem: Pell.Solution₁.sign_y_zpow_eq_sign_of_x_pos_of_y_pos
File: Mathlib/NumberTheory/Pell.lean

tactic: rcases n with ((_ | n) | n)
state_before: d : ℤ
a : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
n : ℤ
⊢ (a ^ n).y.sign = n.sign
state_after: case ofNat.zero
d : ℤ
a : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
⊢ (a ^ Int.ofNat 0).y.sign = (Int.ofNat 0).sign

case ofNat.succ
d : ℤ
a : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
n : ℕ
⊢ (a ^ Int.ofNat (n + 1)).y.sign = (Int.ofNat (n + 1)).sign

case negSucc
d : ℤ
a : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
n : ℕ
⊢ (a ^ Int.negSucc n).y.sign = (Int.negSucc n).sign

tactic: rfl
state_before: case ofNat.zero
d : ℤ
a : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
⊢ (a ^ Int.ofNat 0).y.sign = (Int.ofNat 0).sign
state_after: no goals

tactic: rw [Int.ofNat_eq_coe, zpow_natCast]
state_before: case ofNat.succ
d : ℤ
a : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
n : ℕ
⊢ (a ^ Int.ofNat (n + 1)).y.sign = (Int.ofNat (n + 1)).sign
state_after: case ofNat.succ
d : ℤ
a : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
n : ℕ
⊢ (a ^ (n + 1)).y.sign = (↑(n + 1)).sign

tactic: exact Int.sign_eq_one_of_pos (y_pow_succ_pos hax hay n)
state_before: case ofNat.succ
d : ℤ
a : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
n : ℕ
⊢ (a ^ (n + 1)).y.sign = (↑(n + 1)).sign
state_after: no goals

tactic: rw [zpow_negSucc]
state_before: case negSucc
d : ℤ
a : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
n : ℕ
⊢ (a ^ Int.negSucc n).y.sign = (Int.negSucc n).sign
state_after: case negSucc
d : ℤ
a : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
n : ℕ
⊢ (a ^ (n + 1))⁻¹.y.sign = (Int.negSucc n).sign

tactic: exact Int.sign_eq_neg_one_of_neg (neg_neg_of_pos (y_pow_succ_pos hax hay n))
state_before: case negSucc
d : ℤ
a : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
n : ℕ
⊢ (a ^ (n + 1))⁻¹.y.sign = (Int.negSucc n).sign
state_after: no goals
Theorem: isOpen_analyticAt
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: rw [isOpen_iff_mem_nhds]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
f : E → F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r : ℝ≥0∞
⊢ IsOpen {x | AnalyticAt 𝕜 f x}
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
f : E → F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r : ℝ≥0∞
⊢ ∀ x ∈ {x | AnalyticAt 𝕜 f x}, {x | AnalyticAt 𝕜 f x} ∈ 𝓝 x

tactic: rintro x ⟨p, r, hr⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
f : E → F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r : ℝ≥0∞
⊢ ∀ x ∈ {x | AnalyticAt 𝕜 f x}, {x | AnalyticAt 𝕜 f x} ∈ 𝓝 x
state_after: case intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
f : E → F
p✝ : FormalMultilinearSeries 𝕜 E F
x✝ y : E
r✝ : ℝ≥0∞
x : E
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
hr : HasFPowerSeriesOnBall f p x r
⊢ {x | AnalyticAt 𝕜 f x} ∈ 𝓝 x

tactic: exact mem_of_superset (EMetric.ball_mem_nhds _ hr.r_pos) fun y hy => hr.analyticAt_of_mem hy
state_before: case intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
f : E → F
p✝ : FormalMultilinearSeries 𝕜 E F
x✝ y : E
r✝ : ℝ≥0∞
x : E
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
hr : HasFPowerSeriesOnBall f p x r
⊢ {x | AnalyticAt 𝕜 f x} ∈ 𝓝 x
state_after: no goals
Theorem: TopologicalSpace.Opens.map_eq
File: Mathlib/Topology/Category/TopCat/Opens.lean

tactic: subst h
state_before: X Y Z : TopCat
f g : X ⟶ Y
h : f = g
⊢ map f = map g
state_after: X Y Z : TopCat
f : X ⟶ Y
⊢ map f = map f

tactic: rfl
state_before: X Y Z : TopCat
f : X ⟶ Y
⊢ map f = map f
state_after: no goals
Theorem: mul_right_eq_iff_eq_mul_invOf
File: Mathlib/Algebra/Group/Invertible/Defs.lean

tactic: rw [← mul_right_inj_of_invertible (c := ⅟c), mul_mul_invOf_self_cancel]
state_before: α : Type u
inst✝¹ : Monoid α
a b c : α
inst✝ : Invertible c
⊢ a * c = b ↔ a = b * ⅟c
state_after: no goals
Theorem: Set.toFinset_subset
File: Mathlib/Data/Fintype/Basic.lean

tactic: rw [← Finset.coe_subset, coe_toFinset]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s t✝ : Set α
inst✝ : Fintype ↑s
t : Finset α
⊢ s.toFinset ⊆ t ↔ s ⊆ ↑t
state_after: no goals
Theorem: ENNReal.lintegral_rpow_funMulInvSnorm_eq_one
File: Mathlib/MeasureTheory/Integral/MeanInequalities.lean

tactic: simp_rw [funMulInvSnorm_rpow hp0_lt]
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0_lt : 0 < p
f : α → ℝ≥0∞
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
⊢ ∫⁻ (c : α), funMulInvSnorm f p μ c ^ p ∂μ = 1
state_after: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0_lt : 0 < p
f : α → ℝ≥0∞
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
⊢ ∫⁻ (c : α), f c ^ p * (∫⁻ (c : α), f c ^ p ∂μ)⁻¹ ∂μ = 1

tactic: rw [lintegral_mul_const', ENNReal.mul_inv_cancel hf_nonzero hf_top]
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0_lt : 0 < p
f : α → ℝ≥0∞
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
⊢ ∫⁻ (c : α), f c ^ p * (∫⁻ (c : α), f c ^ p ∂μ)⁻¹ ∂μ = 1
state_after: case hr
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0_lt : 0 < p
f : α → ℝ≥0∞
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
⊢ (∫⁻ (c : α), f c ^ p ∂μ)⁻¹ ≠ ⊤

tactic: rwa [inv_ne_top]
state_before: case hr
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0_lt : 0 < p
f : α → ℝ≥0∞
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
⊢ (∫⁻ (c : α), f c ^ p ∂μ)⁻¹ ≠ ⊤
state_after: no goals
Theorem: Finsupp.filter_eq_zero_iff
File: Mathlib/Data/Finsupp/Basic.lean

tactic: simp only [DFunLike.ext_iff, filter_eq_indicator, zero_apply, Set.indicator_apply_eq_zero,
  Set.mem_setOf_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : Zero M
p : α → Prop
inst✝ : DecidablePred p
f : α →₀ M
⊢ filter p f = 0 ↔ ∀ (x : α), p x → f x = 0
state_after: no goals
Theorem: LinearPMap.mem_graph
File: Mathlib/LinearAlgebra/LinearPMap.lean

tactic: simp
state_before: R : Type u_1
inst✝⁶ : Ring R
E : Type u_2
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module R E
F : Type u_3
inst✝³ : AddCommGroup F
inst✝² : Module R F
G : Type u_4
inst✝¹ : AddCommGroup G
inst✝ : Module R G
f : E →ₗ.[R] F
x : ↥f.domain
⊢ (↑x, ↑f x) ∈ f.graph
state_after: no goals
Theorem: ZNum.div_zero
File: Mathlib/Data/Num/Lemmas.lean

tactic: cases n <;> rfl
state_before: n : ZNum
⊢ n.div 0 = 0
state_after: no goals
Theorem: CategoryTheory.ShortComplex.hasHomology_of_isIsoLeftRightHomologyComparison
File: Mathlib/Algebra/Homology/ShortComplex/Homology.lean

tactic: haveI : IsIso (leftRightHomologyComparison' S.leftHomologyData S.rightHomologyData) := h
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
inst✝¹ : S.HasLeftHomology
inst✝ : S.HasRightHomology
h : IsIso S.leftRightHomologyComparison
⊢ S.HasHomology
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
inst✝¹ : S.HasLeftHomology
inst✝ : S.HasRightHomology
h : IsIso S.leftRightHomologyComparison
this : IsIso (leftRightHomologyComparison' S.leftHomologyData S.rightHomologyData)
⊢ S.HasHomology

tactic: exact hasHomology_of_isIso_leftRightHomologyComparison' S.leftHomologyData S.rightHomologyData
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
inst✝¹ : S.HasLeftHomology
inst✝ : S.HasRightHomology
h : IsIso S.leftRightHomologyComparison
this : IsIso (leftRightHomologyComparison' S.leftHomologyData S.rightHomologyData)
⊢ S.HasHomology
state_after: no goals
Theorem: uniqueDiffOn_Ioc
File: Mathlib/Analysis/Calculus/TangentCone.lean

tactic: simp only [interior_Ioc, nonempty_Ioo, hab]
state_before: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y : E
s t : Set E
a b : ℝ
hab : a < b
⊢ (interior (Ioc a b)).Nonempty
state_after: no goals

tactic: simp only [Ioc_eq_empty hab, uniqueDiffOn_empty]
state_before: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
x y : E
s t : Set E
a b : ℝ
hab : ¬a < b
⊢ UniqueDiffOn ℝ (Ioc a b)
state_after: no goals
Theorem: MeasureTheory.SignedMeasure.toJordanDecomposition_smul
File: Mathlib/MeasureTheory/Decomposition/Jordan.lean

tactic: apply toSignedMeasure_injective
state_before: α : Type u_1
β : Type u_2
inst✝ : MeasurableSpace α
s : SignedMeasure α
r : ℝ≥0
⊢ (r • s).toJordanDecomposition = r • s.toJordanDecomposition
state_after: case a
α : Type u_1
β : Type u_2
inst✝ : MeasurableSpace α
s : SignedMeasure α
r : ℝ≥0
⊢ (r • s).toJordanDecomposition.toSignedMeasure = (r • s.toJordanDecomposition).toSignedMeasure

tactic: simp [toSignedMeasure_smul]
state_before: case a
α : Type u_1
β : Type u_2
inst✝ : MeasurableSpace α
s : SignedMeasure α
r : ℝ≥0
⊢ (r • s).toJordanDecomposition.toSignedMeasure = (r • s.toJordanDecomposition).toSignedMeasure
state_after: no goals
Theorem: Orientation.areaForm_le
File: Mathlib/Analysis/InnerProductSpace/TwoDim.lean

tactic: simpa [areaForm_to_volumeForm, Fin.prod_univ_succ] using o.volumeForm_apply_le ![x, y]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ (o.areaForm x) y ≤ ‖x‖ * ‖y‖
state_after: no goals
Theorem: Complex.real_algHom_eq_id_or_conj
File: Mathlib/Data/Complex/Module.lean

tactic: refine
    (eq_or_eq_neg_of_sq_eq_sq (f I) I <| by rw [← map_pow, I_sq, map_neg, map_one]).imp ?_ ?_ <;>
  refine fun h => algHom_ext ?_
state_before: f : ℂ →ₐ[ℝ] ℂ
⊢ f = AlgHom.id ℝ ℂ ∨ f = ↑conjAe
state_after: case refine_1
f : ℂ →ₐ[ℝ] ℂ
h : f I = I
⊢ f I = (AlgHom.id ℝ ℂ) I

case refine_2
f : ℂ →ₐ[ℝ] ℂ
h : f I = -I
⊢ f I = ↑conjAe I

tactic: exacts [h, conj_I.symm ▸ h]
state_before: case refine_1
f : ℂ →ₐ[ℝ] ℂ
h : f I = I
⊢ f I = (AlgHom.id ℝ ℂ) I

case refine_2
f : ℂ →ₐ[ℝ] ℂ
h : f I = -I
⊢ f I = ↑conjAe I
state_after: no goals

tactic: rw [← map_pow, I_sq, map_neg, map_one]
state_before: f : ℂ →ₐ[ℝ] ℂ
⊢ f I ^ 2 = I ^ 2
state_after: no goals
Theorem: NonUnitalSubring.mem_iInf
File: Mathlib/RingTheory/NonUnitalSubring/Basic.lean

tactic: simp only [iInf, mem_sInf, Set.forall_mem_range]
state_before: F : Type w
R : Type u
S✝ : Type v
T : Type u_1
inst✝⁴ : NonUnitalNonAssocRing R
inst✝³ : NonUnitalNonAssocRing S✝
inst✝² : NonUnitalNonAssocRing T
inst✝¹ : FunLike F R S✝
inst✝ : NonUnitalRingHomClass F R S✝
g : S✝ →ₙ+* T
f : R →ₙ+* S✝
ι : Sort u_2
S : ι → NonUnitalSubring R
x : R
⊢ x ∈ ⨅ i, S i ↔ ∀ (i : ι), x ∈ S i
state_after: no goals
Theorem: Ordinal.succ_nmul
File: Mathlib/SetTheory/Ordinal/NaturalOps.lean

tactic: rw [← nadd_one, nadd_one_nmul]
state_before: a b : Ordinal.{u_1}
⊢ succ a ⨳ b = a ⨳ b ♯ b
state_after: no goals
Theorem: intervalIntegral.integral_sub
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simpa only [sub_eq_add_neg] using (integral_add hf hg.neg).trans (congr_arg _ integral_neg)
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 ℝ
hf : IntervalIntegrable f μ a b
hg : IntervalIntegrable g μ a b
⊢ ∫ (x : ℝ) in a..b, f x - g x ∂μ = ∫ (x : ℝ) in a..b, f x ∂μ - ∫ (x : ℝ) in a..b, g x ∂μ
state_after: no goals