1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Multiset.replicate_inter
File: Mathlib/Data/Multiset/Basic.lean

tactic: ext y
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
n : ℕ
x : α
s : Multiset α
⊢ replicate n x ∩ s = replicate (min n (count x s)) x
state_after: case a
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
n : ℕ
x : α
s : Multiset α
y : α
⊢ count y (replicate n x ∩ s) = count y (replicate (min n (count x s)) x)

tactic: rw [count_inter, count_replicate, count_replicate]
state_before: case a
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
n : ℕ
x : α
s : Multiset α
y : α
⊢ count y (replicate n x ∩ s) = count y (replicate (min n (count x s)) x)
state_after: case a
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
n : ℕ
x : α
s : Multiset α
y : α
⊢ min (if y = x then n else 0) (count y s) = if y = x then min n (count x s) else 0

tactic: by_cases h : y = x
state_before: case a
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
n : ℕ
x : α
s : Multiset α
y : α
⊢ min (if y = x then n else 0) (count y s) = if y = x then min n (count x s) else 0
state_after: case pos
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
n : ℕ
x : α
s : Multiset α
y : α
h : y = x
⊢ min (if y = x then n else 0) (count y s) = if y = x then min n (count x s) else 0

case neg
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
n : ℕ
x : α
s : Multiset α
y : α
h : ¬y = x
⊢ min (if y = x then n else 0) (count y s) = if y = x then min n (count x s) else 0

tactic: simp only [h, if_true]
state_before: case pos
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
n : ℕ
x : α
s : Multiset α
y : α
h : y = x
⊢ min (if y = x then n else 0) (count y s) = if y = x then min n (count x s) else 0
state_after: no goals

tactic: simp only [h, if_false, Nat.zero_min]
state_before: case neg
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
n : ℕ
x : α
s : Multiset α
y : α
h : ¬y = x
⊢ min (if y = x then n else 0) (count y s) = if y = x then min n (count x s) else 0
state_after: no goals
Theorem: CategoryTheory.Equivalence.cancel_counitInv_right_assoc'
File: Mathlib/CategoryTheory/Equivalence.lean

tactic: simp only [← Category.assoc, cancel_mono]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
e : C ≌ D
W X X' Y Y' Z : D
f : W ⟶ X
g : X ⟶ Y
h : Y ⟶ Z
f' : W ⟶ X'
g' : X' ⟶ Y'
h' : Y' ⟶ Z
⊢ f ≫ g ≫ h ≫ e.counitInv.app Z = f' ≫ g' ≫ h' ≫ e.counitInv.app Z ↔ f ≫ g ≫ h = f' ≫ g' ≫ h'
state_after: no goals
Theorem: CategoryTheory.NatIso.naturality_1'
File: Mathlib/CategoryTheory/NatIso.lean

tactic: simp
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F G : C ⥤ D
X Y : C
α : F ⟶ G
f : X ⟶ Y
x✝ : IsIso (α.app X)
⊢ inv (α.app X) ≫ F.map f ≫ α.app Y = G.map f
state_after: no goals
Theorem: Matrix.fromBlocks_submatrix_sum_swap_right
File: Mathlib/Data/Matrix/Block.lean

tactic: ext i j
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
f : p → n ⊕ o
⊢ (fromBlocks A B C D).submatrix f Sum.swap = (fromBlocks B A D C).submatrix f id
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
f : p → n ⊕ o
i : p
j : m ⊕ l
⊢ (fromBlocks A B C D).submatrix f Sum.swap i j = (fromBlocks B A D C).submatrix f id i j

tactic: cases j <;> dsimp <;> cases f i <;> rfl
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
f : p → n ⊕ o
i : p
j : m ⊕ l
⊢ (fromBlocks A B C D).submatrix f Sum.swap i j = (fromBlocks B A D C).submatrix f id i j
state_after: no goals
Theorem: CategoryTheory.Limits.Types.isLimit_iff_bijective_sectionOfCone
File: Mathlib/CategoryTheory/Limits/Types.lean

tactic: simp_rw [isLimit_iff, Function.bijective_iff_existsUnique, Subtype.forall, F.sections_ext_iff,
  sectionOfCone]
state_before: J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Type u
c : Cone F
⊢ Nonempty (IsLimit c) ↔ Function.Bijective (sectionOfCone c)
state_after: no goals
Theorem: Matrix.det_updateColumn_add_smul_self
File: Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean

tactic: rw [← det_transpose, ← updateRow_transpose, ← det_transpose A]
state_before: m : Type u_1
n : Type u_2
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
A : Matrix n n R
i j : n
hij : i ≠ j
c : R
⊢ (A.updateColumn i fun k => A k i + c • A k j).det = A.det
state_after: m : Type u_1
n : Type u_2
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
A : Matrix n n R
i j : n
hij : i ≠ j
c : R
⊢ (Aᵀ.updateRow i fun k => A k i + c • A k j).det = Aᵀ.det

tactic: exact det_updateRow_add_smul_self Aᵀ hij c
state_before: m : Type u_1
n : Type u_2
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
A : Matrix n n R
i j : n
hij : i ≠ j
c : R
⊢ (Aᵀ.updateRow i fun k => A k i + c • A k j).det = Aᵀ.det
state_after: no goals
Theorem: star_mul_star
File: Mathlib/Algebra/Star/Basic.lean

tactic: rw [star_mul, star_star]
state_before: R : Type u
inst✝¹ : Mul R
inst✝ : StarMul R
x y : R
⊢ star (x * star y) = y * star x
state_after: no goals
Theorem: derivWithin.comp_of_eq
File: Mathlib/Analysis/Calculus/Deriv/Comp.lean

tactic: rw [hy] at hh₂
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
y : 𝕜'
hh₂ : DifferentiableWithinAt 𝕜' h₂ s' y
hh : DifferentiableWithinAt 𝕜 h s x
hs : MapsTo h s s'
hxs : UniqueDiffWithinAt 𝕜 s x
hy : y = h x
⊢ derivWithin (h₂ ∘ h) s x = derivWithin h₂ s' (h x) * derivWithin h s x
state_after: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
y : 𝕜'
hh₂ : DifferentiableWithinAt 𝕜' h₂ s' (h x)
hh : DifferentiableWithinAt 𝕜 h s x
hs : MapsTo h s s'
hxs : UniqueDiffWithinAt 𝕜 s x
hy : y = h x
⊢ derivWithin (h₂ ∘ h) s x = derivWithin h₂ s' (h x) * derivWithin h s x

tactic: exact derivWithin.comp x hh₂ hh hs hxs
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
y : 𝕜'
hh₂ : DifferentiableWithinAt 𝕜' h₂ s' (h x)
hh : DifferentiableWithinAt 𝕜 h s x
hs : MapsTo h s s'
hxs : UniqueDiffWithinAt 𝕜 s x
hy : y = h x
⊢ derivWithin (h₂ ∘ h) s x = derivWithin h₂ s' (h x) * derivWithin h s x
state_after: no goals
Theorem: Real.arcsin_neg
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: rcases le_total x (-1) with hx₁ | hx₁
state_before: x✝ y x : ℝ
⊢ arcsin (-x) = -arcsin x
state_after: case inl
x✝ y x : ℝ
hx₁ : x ≤ -1
⊢ arcsin (-x) = -arcsin x

case inr
x✝ y x : ℝ
hx₁ : -1 ≤ x
⊢ arcsin (-x) = -arcsin x

tactic: rcases le_total 1 x with hx₂ | hx₂
state_before: case inr
x✝ y x : ℝ
hx₁ : -1 ≤ x
⊢ arcsin (-x) = -arcsin x
state_after: case inr.inl
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : 1 ≤ x
⊢ arcsin (-x) = -arcsin x

case inr.inr
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ arcsin (-x) = -arcsin x

tactic: refine arcsin_eq_of_sin_eq ?_ ?_
state_before: case inr.inr
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ arcsin (-x) = -arcsin x
state_after: case inr.inr.refine_1
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ sin (-arcsin x) = -x

case inr.inr.refine_2
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ -arcsin x ∈ Icc (-(π / 2)) (π / 2)

tactic: rw [arcsin_of_le_neg_one hx₁, neg_neg, arcsin_of_one_le (le_neg.2 hx₁)]
state_before: case inl
x✝ y x : ℝ
hx₁ : x ≤ -1
⊢ arcsin (-x) = -arcsin x
state_after: no goals

tactic: rw [arcsin_of_one_le hx₂, arcsin_of_le_neg_one (neg_le_neg hx₂)]
state_before: case inr.inl
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : 1 ≤ x
⊢ arcsin (-x) = -arcsin x
state_after: no goals

tactic: rw [sin_neg, sin_arcsin hx₁ hx₂]
state_before: case inr.inr.refine_1
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ sin (-arcsin x) = -x
state_after: no goals

tactic: exact ⟨neg_le_neg (arcsin_le_pi_div_two _), neg_le.2 (neg_pi_div_two_le_arcsin _)⟩
state_before: case inr.inr.refine_2
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ -arcsin x ∈ Icc (-(π / 2)) (π / 2)
state_after: no goals
Theorem: Function.IsPeriodicPt.add
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: rw [IsPeriodicPt, iterate_add]
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hn : IsPeriodicPt f n x
hm : IsPeriodicPt f m x
⊢ IsPeriodicPt f (n + m) x
state_after: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hn : IsPeriodicPt f n x
hm : IsPeriodicPt f m x
⊢ IsFixedPt (f^[n] ∘ f^[m]) x

tactic: exact hn.comp hm
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hn : IsPeriodicPt f n x
hm : IsPeriodicPt f m x
⊢ IsFixedPt (f^[n] ∘ f^[m]) x
state_after: no goals
Theorem: Polynomial.coeff_X_pow_mul'
File: Mathlib/Algebra/Polynomial/Coeff.lean

tactic: rw [(commute_X_pow p n).eq, coeff_mul_X_pow']
state_before: R : Type u
S : Type v
a b : R
n✝ m : ℕ
inst✝ : Semiring R
p✝ q r p : R[X]
n d : ℕ
⊢ (X ^ n * p).coeff d = if n ≤ d then p.coeff (d - n) else 0
state_after: no goals
Theorem: Subtype.preimage_coe_self_inter
File: Mathlib/Data/Set/Image.lean

tactic: rw [preimage_coe_eq_preimage_coe_iff, ← inter_assoc, inter_self]
state_before: α : Type u_1
s t : Set α
⊢ val ⁻¹' (s ∩ t) = val ⁻¹' t
state_after: no goals
Theorem: Stream'.WSeq.bind_assoc
File: Mathlib/Data/Seq/WSeq.lean

tactic: simp only [bind, map_join]
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
f : α → WSeq β
g : β → WSeq γ
⊢ (s.bind f).bind g ~ʷ s.bind fun x => (f x).bind g
state_after: α : Type u
β : Type v
γ : Type w
s : WSeq α
f : α → WSeq β
g : β → WSeq γ
⊢ (map (map g) (map f s)).join.join ~ʷ (map (fun x => (map g (f x)).join) s).join

tactic: erw [← map_comp f (map g), map_comp (map g ∘ f) join]
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
f : α → WSeq β
g : β → WSeq γ
⊢ (map (map g) (map f s)).join.join ~ʷ (map (fun x => (map g (f x)).join) s).join
state_after: α : Type u
β : Type v
γ : Type w
s : WSeq α
f : α → WSeq β
g : β → WSeq γ
⊢ (map (map g ∘ f) s).join.join ~ʷ (map join (map (map g ∘ f) s)).join

tactic: apply join_join
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
f : α → WSeq β
g : β → WSeq γ
⊢ (map (map g ∘ f) s).join.join ~ʷ (map join (map (map g ∘ f) s)).join
state_after: no goals
Theorem: Rat.uniformContinuous_add
File: Mathlib/Topology/Instances/Rat.lean

tactic: exact Real.uniformContinuous_add.comp
  (Rat.uniformContinuous_coe_real.prod_map Rat.uniformContinuous_coe_real)
state_before: ⊢ UniformContinuous fun x => ↑x.1 + ↑x.2
state_after: no goals
Theorem: SimpleGraph.Subgraph.coeSubgraph_le
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: constructor
state_before: ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
H : G.Subgraph
H' : H.coe.Subgraph
⊢ Subgraph.coeSubgraph H' ≤ H
state_after: case left
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
H : G.Subgraph
H' : H.coe.Subgraph
⊢ (Subgraph.coeSubgraph H').verts ⊆ H.verts

case right
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
H : G.Subgraph
H' : H.coe.Subgraph
⊢ ∀ ⦃v w : V⦄, (Subgraph.coeSubgraph H').Adj v w → H.Adj v w

tactic: simp
state_before: case left
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
H : G.Subgraph
H' : H.coe.Subgraph
⊢ (Subgraph.coeSubgraph H').verts ⊆ H.verts
state_after: no goals

tactic: rintro v w ⟨_, _, h, rfl, rfl⟩
state_before: case right
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
H : G.Subgraph
H' : H.coe.Subgraph
⊢ ∀ ⦃v w : V⦄, (Subgraph.coeSubgraph H').Adj v w → H.Adj v w
state_after: case right.intro.intro.intro.intro
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
H : G.Subgraph
H' : H.coe.Subgraph
w✝¹ w✝ : ↑H.verts
h : H'.Adj w✝¹ w✝
⊢ H.Adj (H.hom w✝¹) (H.hom w✝)

tactic: exact H'.adj_sub h
state_before: case right.intro.intro.intro.intro
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
H : G.Subgraph
H' : H.coe.Subgraph
w✝¹ w✝ : ↑H.verts
h : H'.Adj w✝¹ w✝
⊢ H.Adj (H.hom w✝¹) (H.hom w✝)
state_after: no goals
Theorem: analyticOn_inv
File: Mathlib/Analysis/Analytic/Constructions.lean

tactic: intro z m
state_before: α : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
inst✝⁵ : NormedAddCommGroup H
inst✝⁴ : NormedSpace 𝕜 H
𝕝 : Type u_7
inst✝³ : NontriviallyNormedField 𝕝
inst✝² : NormedAlgebra 𝕜 𝕝
A : Type u_8
inst✝¹ : NormedRing A
inst✝ : NormedAlgebra 𝕜 A
⊢ AnalyticOn 𝕜 (fun z => z⁻¹) {z | z ≠ 0}
state_after: α : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
inst✝⁵ : NormedAddCommGroup H
inst✝⁴ : NormedSpace 𝕜 H
𝕝 : Type u_7
inst✝³ : NontriviallyNormedField 𝕝
inst✝² : NormedAlgebra 𝕜 𝕝
A : Type u_8
inst✝¹ : NormedRing A
inst✝ : NormedAlgebra 𝕜 A
z : 𝕝
m : z ∈ {z | z ≠ 0}
⊢ AnalyticAt 𝕜 (fun z => z⁻¹) z

tactic: exact analyticAt_inv m
state_before: α : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
inst✝⁵ : NormedAddCommGroup H
inst✝⁴ : NormedSpace 𝕜 H
𝕝 : Type u_7
inst✝³ : NontriviallyNormedField 𝕝
inst✝² : NormedAlgebra 𝕜 𝕝
A : Type u_8
inst✝¹ : NormedRing A
inst✝ : NormedAlgebra 𝕜 A
z : 𝕝
m : z ∈ {z | z ≠ 0}
⊢ AnalyticAt 𝕜 (fun z => z⁻¹) z
state_after: no goals
Theorem: LinearMap.isSymmetric_iff_isSelfAdjoint
File: Mathlib/Analysis/InnerProductSpace/Adjoint.lean

tactic: rw [isSelfAdjoint_iff', IsSymmetric, ← LinearMap.eq_adjoint_iff]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : RCLike 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : InnerProductSpace 𝕜 G
inst✝² : FiniteDimensional 𝕜 E
inst✝¹ : FiniteDimensional 𝕜 F
inst✝ : FiniteDimensional 𝕜 G
A : E →ₗ[𝕜] E
⊢ A.IsSymmetric ↔ IsSelfAdjoint A
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : RCLike 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : InnerProductSpace 𝕜 G
inst✝² : FiniteDimensional 𝕜 E
inst✝¹ : FiniteDimensional 𝕜 F
inst✝ : FiniteDimensional 𝕜 G
A : E →ₗ[𝕜] E
⊢ A = adjoint A ↔ adjoint A = A

tactic: exact eq_comm
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : RCLike 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : InnerProductSpace 𝕜 G
inst✝² : FiniteDimensional 𝕜 E
inst✝¹ : FiniteDimensional 𝕜 F
inst✝ : FiniteDimensional 𝕜 G
A : E →ₗ[𝕜] E
⊢ A = adjoint A ↔ adjoint A = A
state_after: no goals
Theorem: nhds_inv₀
File: Mathlib/Topology/Algebra/GroupWithZero.lean

tactic: refine le_antisymm (inv_le_iff_le_inv.1 ?_) (tendsto_inv₀ hx)
state_before: α : Type u_1
β : Type u_2
G₀ : Type u_3
inst✝² : GroupWithZero G₀
inst✝¹ : TopologicalSpace G₀
inst✝ : HasContinuousInv₀ G₀
x : G₀
hx : x ≠ 0
⊢ 𝓝 x⁻¹ = (𝓝 x)⁻¹
state_after: α : Type u_1
β : Type u_2
G₀ : Type u_3
inst✝² : GroupWithZero G₀
inst✝¹ : TopologicalSpace G₀
inst✝ : HasContinuousInv₀ G₀
x : G₀
hx : x ≠ 0
⊢ (𝓝 x⁻¹)⁻¹ ≤ 𝓝 x

tactic: simpa only [inv_inv] using tendsto_inv₀ (inv_ne_zero hx)
state_before: α : Type u_1
β : Type u_2
G₀ : Type u_3
inst✝² : GroupWithZero G₀
inst✝¹ : TopologicalSpace G₀
inst✝ : HasContinuousInv₀ G₀
x : G₀
hx : x ≠ 0
⊢ (𝓝 x⁻¹)⁻¹ ≤ 𝓝 x
state_after: no goals
Theorem: SimpleGraph.adjMatrix_mul_apply
File: Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean

tactic: simp [mul_apply, neighborFinset_eq_filter, sum_filter]
state_before: V : Type u_1
α : Type u_2
β : Type u_3
G : SimpleGraph V
inst✝² : DecidableRel G.Adj
inst✝¹ : Fintype V
inst✝ : NonAssocSemiring α
M : Matrix V V α
v w : V
⊢ (adjMatrix α G * M) v w = ∑ u ∈ G.neighborFinset v, M u w
state_after: no goals
Theorem: integral_sin_pow_succ_le
File: Mathlib/Analysis/SpecialFunctions/Integrals.lean

tactic: let H x h := pow_le_pow_of_le_one (sin_nonneg_of_mem_Icc h) (sin_le_one x) (n.le_add_right 1)
state_before: a b : ℝ
n : ℕ
⊢ ∫ (x : ℝ) in 0 ..π, sin x ^ (n + 1) ≤ ∫ (x : ℝ) in 0 ..π, sin x ^ n
state_after: a b : ℝ
n : ℕ
H : ∀ x ∈ Set.Icc 0 π, sin x ^ (n + 1) ≤ sin x ^ n :=
  fun x h => pow_le_pow_of_le_one (sin_nonneg_of_mem_Icc h) (sin_le_one x) (Nat.le_add_right n 1)
⊢ ∫ (x : ℝ) in 0 ..π, sin x ^ (n + 1) ≤ ∫ (x : ℝ) in 0 ..π, sin x ^ n

tactic: refine integral_mono_on pi_pos.le ?_ ?_ H <;> exact (continuous_sin.pow _).intervalIntegrable 0 π
state_before: a b : ℝ
n : ℕ
H : ∀ x ∈ Set.Icc 0 π, sin x ^ (n + 1) ≤ sin x ^ n :=
  fun x h => pow_le_pow_of_le_one (sin_nonneg_of_mem_Icc h) (sin_le_one x) (Nat.le_add_right n 1)
⊢ ∫ (x : ℝ) in 0 ..π, sin x ^ (n + 1) ≤ ∫ (x : ℝ) in 0 ..π, sin x ^ n
state_after: no goals
Theorem: Ideal.spanNorm_top
File: Mathlib/RingTheory/Ideal/Norm.lean

tactic: rw [← Ideal.span_singleton_one, spanNorm_singleton]
state_before: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
inst✝ : Algebra R S
⊢ spanNorm R ⊤ = ⊤
state_after: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
inst✝ : Algebra R S
⊢ span {(Algebra.norm R) 1} = ⊤

tactic: simp
state_before: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
inst✝ : Algebra R S
⊢ span {(Algebra.norm R) 1} = ⊤
state_after: no goals
Theorem: NNRat.lt_def
File: Mathlib/Data/NNRat/Defs.lean

tactic: rw [← NNRat.coe_lt_coe, Rat.lt_def]
state_before: p✝ q✝ : ℚ≥0
n₁ n₂ d₁ d₂ d : ℕ
p q : ℚ≥0
⊢ p < q ↔ p.num * q.den < q.num * p.den
state_after: p✝ q✝ : ℚ≥0
n₁ n₂ d₁ d₂ d : ℕ
p q : ℚ≥0
⊢ (↑p).num * ↑(↑q).den < (↑q).num * ↑(↑p).den ↔ p.num * q.den < q.num * p.den

tactic: norm_cast
state_before: p✝ q✝ : ℚ≥0
n₁ n₂ d₁ d₂ d : ℕ
p q : ℚ≥0
⊢ (↑p).num * ↑(↑q).den < (↑q).num * ↑(↑p).den ↔ p.num * q.den < q.num * p.den
state_after: no goals
Theorem: CategoryTheory.Adjunction.homEquiv_naturality_left_square_iff
File: Mathlib/CategoryTheory/Adjunction/Basic.lean

tactic: simpa only [Equiv.symm_apply_apply]
using homEquiv_naturality_right_square adj _ _ _ _ w
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X' X : C
Y Y' : D
f : X' ⟶ X
g : F.obj X ⟶ Y'
h : F.obj X' ⟶ Y
k : Y ⟶ Y'
w : f ≫ (adj.homEquiv X Y') g = (adj.homEquiv X' Y) h ≫ G.map k
⊢ F.map f ≫ g = h ≫ k
state_after: no goals
Theorem: IsExtrFilter.congr
File: Mathlib/Order/Filter/Extr.lean

tactic: rw [IsExtrFilter] at *
state_before: α✝ : Type u
β✝ : Type v
γ : Type w
δ : Type x
α : Type u_1
β : Type u_2
inst✝ : Preorder β
f g : α → β
a : α
l : Filter α
h : IsExtrFilter f l a
heq : f =ᶠ[l] g
hfga : f a = g a
⊢ IsExtrFilter g l a
state_after: α✝ : Type u
β✝ : Type v
γ : Type w
δ : Type x
α : Type u_1
β : Type u_2
inst✝ : Preorder β
f g : α → β
a : α
l : Filter α
h : IsMinFilter f l a ∨ IsMaxFilter f l a
heq : f =ᶠ[l] g
hfga : f a = g a
⊢ IsMinFilter g l a ∨ IsMaxFilter g l a

tactic: rwa [← heq.isMaxFilter_iff hfga, ← heq.isMinFilter_iff hfga]
state_before: α✝ : Type u
β✝ : Type v
γ : Type w
δ : Type x
α : Type u_1
β : Type u_2
inst✝ : Preorder β
f g : α → β
a : α
l : Filter α
h : IsMinFilter f l a ∨ IsMaxFilter f l a
heq : f =ᶠ[l] g
hfga : f a = g a
⊢ IsMinFilter g l a ∨ IsMaxFilter g l a
state_after: no goals
Theorem: CategoryTheory.ActionCategory.cases'
File: Mathlib/CategoryTheory/Action.lean

tactic: rw [ha, hg]
state_before: M : Type u_1
inst✝³ : Monoid M
X : Type u
inst✝² : MulAction M X
x : X
G : Type u_2
inst✝¹ : Group G
inst✝ : MulAction G X
a' b' : ActionCategory G X
f : a' ⟶ b'
a b : X
g : G
ha : a' = ⟨(), a⟩
hb : b' = ⟨(), b⟩
hg : a = g⁻¹ • b
⊢ a' = ⟨(), g⁻¹ • b⟩
state_after: no goals

tactic: rw [hb]
state_before: M : Type u_1
inst✝³ : Monoid M
X : Type u
inst✝² : MulAction M X
x : X
G : Type u_2
inst✝¹ : Group G
inst✝ : MulAction G X
a' b' : ActionCategory G X
f : a' ⟶ b'
a b : X
g : G
ha : a' = ⟨(), a⟩
hb : b' = ⟨(), b⟩
hg : a = g⁻¹ • b
⊢ ⟨(), b⟩ = b'
state_after: no goals

tactic: revert a' b' f
state_before: M : Type u_1
inst✝³ : Monoid M
X : Type u
inst✝² : MulAction M X
x : X
G : Type u_2
inst✝¹ : Group G
inst✝ : MulAction G X
a' b' : ActionCategory G X
f : a' ⟶ b'
⊢ ∃ a b g, ∃ (ha : a' = ⟨(), a⟩) (hb : b' = ⟨(), b⟩) (hg : a = g⁻¹ • b), f = eqToHom ⋯ ≫ homOfPair b g ≫ eqToHom ⋯
state_after: M : Type u_1
inst✝³ : Monoid M
X : Type u
inst✝² : MulAction M X
x : X
G : Type u_2
inst✝¹ : Group G
inst✝ : MulAction G X
⊢ ∀ ⦃a' b' : ActionCategory G X⦄ (f : a' ⟶ b'),
    ∃ a b g, ∃ (ha : a' = ⟨(), a⟩) (hb : b' = ⟨(), b⟩) (hg : a = g⁻¹ • b), f = eqToHom ⋯ ≫ homOfPair b g ≫ eqToHom ⋯

tactic: exact ActionCategory.cases (fun t g => ⟨g⁻¹ • t, t, g, rfl, rfl, rfl, by simp⟩)
state_before: M : Type u_1
inst✝³ : Monoid M
X : Type u
inst✝² : MulAction M X
x : X
G : Type u_2
inst✝¹ : Group G
inst✝ : MulAction G X
⊢ ∀ ⦃a' b' : ActionCategory G X⦄ (f : a' ⟶ b'),
    ∃ a b g, ∃ (ha : a' = ⟨(), a⟩) (hb : b' = ⟨(), b⟩) (hg : a = g⁻¹ • b), f = eqToHom ⋯ ≫ homOfPair b g ≫ eqToHom ⋯
state_after: no goals

tactic: simp
state_before: M : Type u_1
inst✝³ : Monoid M
X : Type u
inst✝² : MulAction M X
x : X
G : Type u_2
inst✝¹ : Group G
inst✝ : MulAction G X
t : X
g : G
⊢ homOfPair t g = eqToHom ⋯ ≫ homOfPair t g ≫ eqToHom ⋯
state_after: no goals
Theorem: Sym2.congr_right
File: Mathlib/Data/Sym/Sym2.lean

tactic: simp (config := {contextual := true})
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c : α
⊢ s(a, b) = s(a, c) ↔ b = c
state_after: no goals
Theorem: ProbabilityTheory.kernel.setIntegral_const
File: Mathlib/Probability/Kernel/Basic.lean

tactic: rw [kernel.const_apply]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α β)
E : Type u_4
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : β → E
μ : Measure β
a : α
s : Set β
⊢ ∫ (x : β) in s, f x ∂(const α μ) a = ∫ (x : β) in s, f x ∂μ
state_after: no goals