1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: List.map_dlookup_eq_find
File: Mathlib/Data/List/Sigma.lean

tactic: by_cases h : a = a'
state_before: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a a' : α
b' : β a'
l : List (Sigma β)
⊢ Option.map (Sigma.mk a) (dlookup a (⟨a', b'⟩ :: l)) = find? (fun s => decide (a = s.fst)) (⟨a', b'⟩ :: l)
state_after: case pos
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a a' : α
b' : β a'
l : List (Sigma β)
h : a = a'
⊢ Option.map (Sigma.mk a) (dlookup a (⟨a', b'⟩ :: l)) = find? (fun s => decide (a = s.fst)) (⟨a', b'⟩ :: l)

case neg
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a a' : α
b' : β a'
l : List (Sigma β)
h : ¬a = a'
⊢ Option.map (Sigma.mk a) (dlookup a (⟨a', b'⟩ :: l)) = find? (fun s => decide (a = s.fst)) (⟨a', b'⟩ :: l)

tactic: subst a'
state_before: case pos
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a a' : α
b' : β a'
l : List (Sigma β)
h : a = a'
⊢ Option.map (Sigma.mk a) (dlookup a (⟨a', b'⟩ :: l)) = find? (fun s => decide (a = s.fst)) (⟨a', b'⟩ :: l)
state_after: case pos
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
l : List (Sigma β)
b' : β a
⊢ Option.map (Sigma.mk a) (dlookup a (⟨a, b'⟩ :: l)) = find? (fun s => decide (a = s.fst)) (⟨a, b'⟩ :: l)

tactic: simp
state_before: case pos
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
l : List (Sigma β)
b' : β a
⊢ Option.map (Sigma.mk a) (dlookup a (⟨a, b'⟩ :: l)) = find? (fun s => decide (a = s.fst)) (⟨a, b'⟩ :: l)
state_after: no goals

tactic: simpa [h] using map_dlookup_eq_find a l
state_before: case neg
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a a' : α
b' : β a'
l : List (Sigma β)
h : ¬a = a'
⊢ Option.map (Sigma.mk a) (dlookup a (⟨a', b'⟩ :: l)) = find? (fun s => decide (a = s.fst)) (⟨a', b'⟩ :: l)
state_after: no goals
Theorem: Real.logb_nonpos_iff
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: rw [← not_lt, logb_pos_iff hb hx, not_lt]
state_before: b x y : ℝ
hb : 1 < b
hx : 0 < x
⊢ logb b x ≤ 0 ↔ x ≤ 1
state_after: no goals
Theorem: Nat.ord_proj_dvd
File: Mathlib/Data/Nat/Factorization/Basic.lean

tactic: if hp : p.Prime then ?_ else simp [hp]
state_before: a b m n✝ p✝ n p : ℕ
⊢ p ^ n.factorization p ∣ n
state_after: a b m n✝ p✝ n p : ℕ
hp : Prime p
⊢ p ^ n.factorization p ∣ n

tactic: rw [← factors_count_eq]
state_before: a b m n✝ p✝ n p : ℕ
hp : Prime p
⊢ p ^ n.factorization p ∣ n
state_after: a b m n✝ p✝ n p : ℕ
hp : Prime p
⊢ p ^ count p n.factors ∣ n

tactic: apply dvd_of_factors_subperm (pow_ne_zero _ hp.ne_zero)
state_before: a b m n✝ p✝ n p : ℕ
hp : Prime p
⊢ p ^ count p n.factors ∣ n
state_after: a b m n✝ p✝ n p : ℕ
hp : Prime p
⊢ (p ^ count p n.factors).factors <+~ n.factors

tactic: rw [hp.factors_pow, List.subperm_ext_iff]
state_before: a b m n✝ p✝ n p : ℕ
hp : Prime p
⊢ (p ^ count p n.factors).factors <+~ n.factors
state_after: a b m n✝ p✝ n p : ℕ
hp : Prime p
⊢ ∀ x ∈ replicate (count p n.factors) p, count x (replicate (count p n.factors) p) ≤ count x n.factors

tactic: intro q hq
state_before: a b m n✝ p✝ n p : ℕ
hp : Prime p
⊢ ∀ x ∈ replicate (count p n.factors) p, count x (replicate (count p n.factors) p) ≤ count x n.factors
state_after: a b m n✝ p✝ n p : ℕ
hp : Prime p
q : ℕ
hq : q ∈ replicate (count p n.factors) p
⊢ count q (replicate (count p n.factors) p) ≤ count q n.factors

tactic: simp [List.eq_of_mem_replicate hq]
state_before: a b m n✝ p✝ n p : ℕ
hp : Prime p
q : ℕ
hq : q ∈ replicate (count p n.factors) p
⊢ count q (replicate (count p n.factors) p) ≤ count q n.factors
state_after: no goals

tactic: simp [hp]
state_before: a b m n✝ p✝ n p : ℕ
hp : ¬Prime p
⊢ p ^ n.factorization p ∣ n
state_after: no goals
Theorem: Finset.norm_prod_le
File: Mathlib/Analysis/Normed/Field/Basic.lean

tactic: rcases s with ⟨⟨l⟩, hl⟩
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝² : SeminormedRing α✝
α : Type u_5
inst✝¹ : NormedCommRing α
inst✝ : NormOneClass α
s : Finset ι
f : ι → α
⊢ ‖∏ i ∈ s, f i‖ ≤ ∏ i ∈ s, ‖f i‖
state_after: case mk.mk
α✝ : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝² : SeminormedRing α✝
α : Type u_5
inst✝¹ : NormedCommRing α
inst✝ : NormOneClass α
f : ι → α
val✝ : Multiset ι
l : List ι
hl : Multiset.Nodup (Quot.mk Setoid.r l)
⊢ ‖∏ i ∈ { val := Quot.mk Setoid.r l, nodup := hl }, f i‖ ≤ ∏ i ∈ { val := Quot.mk Setoid.r l, nodup := hl }, ‖f i‖

tactic: simpa using (l.map f).norm_prod_le
state_before: case mk.mk
α✝ : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝² : SeminormedRing α✝
α : Type u_5
inst✝¹ : NormedCommRing α
inst✝ : NormOneClass α
f : ι → α
val✝ : Multiset ι
l : List ι
hl : Multiset.Nodup (Quot.mk Setoid.r l)
⊢ ‖∏ i ∈ { val := Quot.mk Setoid.r l, nodup := hl }, f i‖ ≤ ∏ i ∈ { val := Quot.mk Setoid.r l, nodup := hl }, ‖f i‖
state_after: no goals
Theorem: AddChar.mulShift_one
File: Mathlib/Algebra/Group/AddChar.lean

tactic: ext
state_before: R : Type u_1
M : Type u_2
inst✝¹ : Ring R
inst✝ : CommMonoid M
ψ : AddChar R M
⊢ ψ.mulShift 1 = ψ
state_after: case h
R : Type u_1
M : Type u_2
inst✝¹ : Ring R
inst✝ : CommMonoid M
ψ : AddChar R M
x✝ : R
⊢ (ψ.mulShift 1) x✝ = ψ x✝

tactic: rw [mulShift_apply, one_mul]
state_before: case h
R : Type u_1
M : Type u_2
inst✝¹ : Ring R
inst✝ : CommMonoid M
ψ : AddChar R M
x✝ : R
⊢ (ψ.mulShift 1) x✝ = ψ x✝
state_after: no goals
Theorem: MulAction.stabilizer_coe_finset
File: Mathlib/Algebra/Pointwise/Stabilizer.lean

tactic: ext
state_before: G : Type u_1
H : Type u_2
α : Type u_3
inst✝³ : Group G
inst✝² : Group H
inst✝¹ : MulAction G α
a : G
inst✝ : DecidableEq α
s : Finset α
⊢ stabilizer G ↑s = stabilizer G s
state_after: case h
G : Type u_1
H : Type u_2
α : Type u_3
inst✝³ : Group G
inst✝² : Group H
inst✝¹ : MulAction G α
a : G
inst✝ : DecidableEq α
s : Finset α
x✝ : G
⊢ x✝ ∈ stabilizer G ↑s ↔ x✝ ∈ stabilizer G s

tactic: simp [← Finset.coe_inj]
state_before: case h
G : Type u_1
H : Type u_2
α : Type u_3
inst✝³ : Group G
inst✝² : Group H
inst✝¹ : MulAction G α
a : G
inst✝ : DecidableEq α
s : Finset α
x✝ : G
⊢ x✝ ∈ stabilizer G ↑s ↔ x✝ ∈ stabilizer G s
state_after: no goals
Theorem: Bundle.Trivial.trivialization.coordChangeL
File: Mathlib/Topology/VectorBundle/Constructions.lean

tactic: ext v
state_before: 𝕜 : Type u_1
B : Type u_2
F : Type u_3
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : TopologicalSpace B
b : B
⊢ Trivialization.coordChangeL 𝕜 (trivialization B F) (trivialization B F) b = ContinuousLinearEquiv.refl 𝕜 F
state_after: case h.h
𝕜 : Type u_1
B : Type u_2
F : Type u_3
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : TopologicalSpace B
b : B
v : F
⊢ (Trivialization.coordChangeL 𝕜 (trivialization B F) (trivialization B F) b) v = (ContinuousLinearEquiv.refl 𝕜 F) v

tactic: rw [Trivialization.coordChangeL_apply']
state_before: case h.h
𝕜 : Type u_1
B : Type u_2
F : Type u_3
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : TopologicalSpace B
b : B
v : F
⊢ (Trivialization.coordChangeL 𝕜 (trivialization B F) (trivialization B F) b) v = (ContinuousLinearEquiv.refl 𝕜 F) v
state_after: case h.h
𝕜 : Type u_1
B : Type u_2
F : Type u_3
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : TopologicalSpace B
b : B
v : F
⊢ (↑(trivialization B F) (↑(trivialization B F).symm (b, v))).2 = (ContinuousLinearEquiv.refl 𝕜 F) v

case h.h.hb
𝕜 : Type u_1
B : Type u_2
F : Type u_3
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : TopologicalSpace B
b : B
v : F
⊢ b ∈ (trivialization B F).baseSet ∩ (trivialization B F).baseSet

tactic: exacts [rfl, ⟨mem_univ _, mem_univ _⟩]
state_before: case h.h
𝕜 : Type u_1
B : Type u_2
F : Type u_3
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : TopologicalSpace B
b : B
v : F
⊢ (↑(trivialization B F) (↑(trivialization B F).symm (b, v))).2 = (ContinuousLinearEquiv.refl 𝕜 F) v

case h.h.hb
𝕜 : Type u_1
B : Type u_2
F : Type u_3
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : TopologicalSpace B
b : B
v : F
⊢ b ∈ (trivialization B F).baseSet ∩ (trivialization B F).baseSet
state_after: no goals
Theorem: PartitionOfUnity.eventually_fintsupport_subset
File: Mathlib/Topology/PartitionOfUnity.lean

tactic: apply (ρ.locallyFinite.closure.eventually_subset (fun _ ↦ isClosed_closure) x₀).mono
state_before: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ : X
⊢ ∀ᶠ (y : X) in 𝓝 x₀, ρ.fintsupport y ⊆ ρ.fintsupport x₀
state_after: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ : X
⊢ ∀ (x : X),
    {i | x ∈ closure (support ⇑(ρ i))} ⊆ {i | x₀ ∈ closure (support ⇑(ρ i))} → ρ.fintsupport x ⊆ ρ.fintsupport x₀

tactic: intro y hy z hz
state_before: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ : X
⊢ ∀ (x : X),
    {i | x ∈ closure (support ⇑(ρ i))} ⊆ {i | x₀ ∈ closure (support ⇑(ρ i))} → ρ.fintsupport x ⊆ ρ.fintsupport x₀
state_after: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ y : X
hy : {i | y ∈ closure (support ⇑(ρ i))} ⊆ {i | x₀ ∈ closure (support ⇑(ρ i))}
z : ι
hz : z ∈ ρ.fintsupport y
⊢ z ∈ ρ.fintsupport x₀

tactic: rw [PartitionOfUnity.mem_fintsupport_iff] at *
state_before: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ y : X
hy : {i | y ∈ closure (support ⇑(ρ i))} ⊆ {i | x₀ ∈ closure (support ⇑(ρ i))}
z : ι
hz : z ∈ ρ.fintsupport y
⊢ z ∈ ρ.fintsupport x₀
state_after: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ y : X
hy : {i | y ∈ closure (support ⇑(ρ i))} ⊆ {i | x₀ ∈ closure (support ⇑(ρ i))}
z : ι
hz : y ∈ tsupport ⇑(ρ z)
⊢ x₀ ∈ tsupport ⇑(ρ z)

tactic: exact hy hz
state_before: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ y : X
hy : {i | y ∈ closure (support ⇑(ρ i))} ⊆ {i | x₀ ∈ closure (support ⇑(ρ i))}
z : ι
hz : y ∈ tsupport ⇑(ρ z)
⊢ x₀ ∈ tsupport ⇑(ρ z)
state_after: no goals
Theorem: RingEquiv.symm_toNonUnitalRingHom_comp_toNonUnitalRingHom
File: Mathlib/Algebra/Ring/Equiv.lean

tactic: ext
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
S : Type u_5
S' : Type u_6
inst✝² : NonUnitalNonAssocSemiring R
inst✝¹ : NonUnitalNonAssocSemiring S
inst✝ : NonUnitalNonAssocSemiring S'
e : R ≃+* S
⊢ e.symm.toNonUnitalRingHom.comp e.toNonUnitalRingHom = NonUnitalRingHom.id R
state_after: case a
F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
S : Type u_5
S' : Type u_6
inst✝² : NonUnitalNonAssocSemiring R
inst✝¹ : NonUnitalNonAssocSemiring S
inst✝ : NonUnitalNonAssocSemiring S'
e : R ≃+* S
x✝ : R
⊢ (e.symm.toNonUnitalRingHom.comp e.toNonUnitalRingHom) x✝ = (NonUnitalRingHom.id R) x✝

tactic: simp
state_before: case a
F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
S : Type u_5
S' : Type u_6
inst✝² : NonUnitalNonAssocSemiring R
inst✝¹ : NonUnitalNonAssocSemiring S
inst✝ : NonUnitalNonAssocSemiring S'
e : R ≃+* S
x✝ : R
⊢ (e.symm.toNonUnitalRingHom.comp e.toNonUnitalRingHom) x✝ = (NonUnitalRingHom.id R) x✝
state_after: no goals
Theorem: AdicCompletion.map_zero
File: Mathlib/RingTheory/AdicCompletion/Functoriality.lean

tactic: ext
state_before: R : Type u_1
inst✝⁸ : CommRing R
I : Ideal R
M : Type u_2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
N : Type u_3
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R N
P : Type u_4
inst✝³ : AddCommGroup P
inst✝² : Module R P
T : Type u_5
inst✝¹ : AddCommGroup T
inst✝ : Module (AdicCompletion I R) T
⊢ map I 0 = 0
state_after: case h.h
R : Type u_1
inst✝⁸ : CommRing R
I : Ideal R
M : Type u_2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
N : Type u_3
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R N
P : Type u_4
inst✝³ : AddCommGroup P
inst✝² : Module R P
T : Type u_5
inst✝¹ : AddCommGroup T
inst✝ : Module (AdicCompletion I R) T
a✝ : AdicCauchySequence I M
n✝ : ℕ
⊢ ↑((map I 0) ((mk I M) a✝)) n✝ = ↑(0 ((mk I M) a✝)) n✝

tactic: simp
state_before: case h.h
R : Type u_1
inst✝⁸ : CommRing R
I : Ideal R
M : Type u_2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
N : Type u_3
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R N
P : Type u_4
inst✝³ : AddCommGroup P
inst✝² : Module R P
T : Type u_5
inst✝¹ : AddCommGroup T
inst✝ : Module (AdicCompletion I R) T
a✝ : AdicCauchySequence I M
n✝ : ℕ
⊢ ↑((map I 0) ((mk I M) a✝)) n✝ = ↑(0 ((mk I M) a✝)) n✝
state_after: no goals
Theorem: PMF.binomial_apply_last
File: Mathlib/Probability/ProbabilityMassFunction/Binomial.lean

tactic: simp [binomial_apply]
state_before: p : ℝ≥0∞
h : p ≤ 1
n : ℕ
⊢ (binomial p h n) (Fin.last n) = p ^ n
state_after: no goals
Theorem: CategoryTheory.BraidedCategory.yang_baxter
File: Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean

tactic: rw [← braiding_tensor_right_assoc X Y Z, ← cancel_mono (α_ Z Y X).inv]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X Y Z : C
⊢ (α_ X Y Z).inv ≫
      (β_ X Y).hom ▷ Z ≫ (α_ Y X Z).hom ≫ Y ◁ (β_ X Z).hom ≫ (α_ Y Z X).inv ≫ (β_ Y Z).hom ▷ X ≫ (α_ Z Y X).hom =
    X ◁ (β_ Y Z).hom ≫ (α_ X Z Y).inv ≫ (β_ X Z).hom ▷ Y ≫ (α_ Z X Y).hom ≫ Z ◁ (β_ X Y).hom
state_after: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X Y Z : C
⊢ ((β_ X (Y ⊗ Z)).hom ≫ (β_ Y Z).hom ▷ X ≫ (α_ Z Y X).hom) ≫ (α_ Z Y X).inv =
    (X ◁ (β_ Y Z).hom ≫ (α_ X Z Y).inv ≫ (β_ X Z).hom ▷ Y ≫ (α_ Z X Y).hom ≫ Z ◁ (β_ X Y).hom) ≫ (α_ Z Y X).inv

tactic: repeat rw [assoc]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X Y Z : C
⊢ ((β_ X (Y ⊗ Z)).hom ≫ (β_ Y Z).hom ▷ X ≫ (α_ Z Y X).hom) ≫ (α_ Z Y X).inv =
    (X ◁ (β_ Y Z).hom ≫ (α_ X Z Y).inv ≫ (β_ X Z).hom ▷ Y ≫ (α_ Z X Y).hom ≫ Z ◁ (β_ X Y).hom) ≫ (α_ Z Y X).inv
state_after: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X Y Z : C
⊢ (β_ X (Y ⊗ Z)).hom ≫ (β_ Y Z).hom ▷ X ≫ (α_ Z Y X).hom ≫ (α_ Z Y X).inv =
    X ◁ (β_ Y Z).hom ≫ (α_ X Z Y).inv ≫ (β_ X Z).hom ▷ Y ≫ (α_ Z X Y).hom ≫ Z ◁ (β_ X Y).hom ≫ (α_ Z Y X).inv

tactic: rw [Iso.hom_inv_id, comp_id, ← braiding_naturality_right, braiding_tensor_right]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X Y Z : C
⊢ (β_ X (Y ⊗ Z)).hom ≫ (β_ Y Z).hom ▷ X ≫ (α_ Z Y X).hom ≫ (α_ Z Y X).inv =
    X ◁ (β_ Y Z).hom ≫ (α_ X Z Y).inv ≫ (β_ X Z).hom ▷ Y ≫ (α_ Z X Y).hom ≫ Z ◁ (β_ X Y).hom ≫ (α_ Z Y X).inv
state_after: no goals

tactic: rw [assoc]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X Y Z : C
⊢ (β_ X (Y ⊗ Z)).hom ≫ (β_ Y Z).hom ▷ X ≫ (α_ Z Y X).hom ≫ (α_ Z Y X).inv =
    X ◁ (β_ Y Z).hom ≫ (α_ X Z Y).inv ≫ (β_ X Z).hom ▷ Y ≫ ((α_ Z X Y).hom ≫ Z ◁ (β_ X Y).hom) ≫ (α_ Z Y X).inv
state_after: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X Y Z : C
⊢ (β_ X (Y ⊗ Z)).hom ≫ (β_ Y Z).hom ▷ X ≫ (α_ Z Y X).hom ≫ (α_ Z Y X).inv =
    X ◁ (β_ Y Z).hom ≫ (α_ X Z Y).inv ≫ (β_ X Z).hom ▷ Y ≫ (α_ Z X Y).hom ≫ Z ◁ (β_ X Y).hom ≫ (α_ Z Y X).inv
Theorem: convexJoin_empty_right
File: Mathlib/Analysis/Convex/Join.lean

tactic: simp [convexJoin]
state_before: ι : Sort u_1
𝕜 : Type u_2
E : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s✝ t s₁ s₂ t₁ t₂ u : Set E
x y : E
s : Set E
⊢ convexJoin 𝕜 s ∅ = ∅
state_after: no goals
Theorem: ENNReal.lt_top_of_tsum_ne_top
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: contrapose! tsum_ne_top with h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g a : α → ℝ≥0∞
tsum_ne_top : ∑' (i : α), a i ≠ ⊤
j : α
⊢ a j < ⊤
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g a : α → ℝ≥0∞
j : α
h : ⊤ ≤ a j
⊢ ∑' (i : α), a i = ⊤

tactic: exact ENNReal.tsum_eq_top_of_eq_top ⟨j, top_unique h⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g a : α → ℝ≥0∞
j : α
h : ⊤ ≤ a j
⊢ ∑' (i : α), a i = ⊤
state_after: no goals
Theorem: Real.inv_logb
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: simp_rw [logb, inv_div]
state_before: b✝ x y a b : ℝ
⊢ (logb a b)⁻¹ = logb b a
state_after: no goals
Theorem: Part.append_get_eq
File: Mathlib/Data/Part.lean

tactic: simp [append_def]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Append α
a b : Part α
hab : (a ++ b).Dom
⊢ (a ++ b).get hab = a.get ⋯ ++ b.get ⋯
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Append α
a b : Part α
hab : (a ++ b).Dom
⊢ (a.bind fun y => map (fun x => y ++ x) b).get ⋯ = a.get ⋯ ++ b.get ⋯

tactic: aesop
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Append α
a b : Part α
hab : (a ++ b).Dom
⊢ (a.bind fun y => map (fun x => y ++ x) b).get ⋯ = a.get ⋯ ++ b.get ⋯
state_after: no goals
Theorem: FormalMultilinearSeries.changeOriginSeries_summable_aux₃
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: refine NNReal.summable_of_le
  (fun n => ?_) (NNReal.summable_sigma.1 <| p.changeOriginSeries_summable_aux₂ hr k).2
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
p : FormalMultilinearSeries 𝕜 E F
x y : E
r✝ R r : ℝ≥0
hr : ↑r < p.radius
k : ℕ
⊢ Summable fun l => ‖p.changeOriginSeries k l‖₊ * r ^ l
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
p : FormalMultilinearSeries 𝕜 E F
x y : E
r✝ R r : ℝ≥0
hr : ↑r < p.radius
k n : ℕ
⊢ ‖p.changeOriginSeries k n‖₊ * r ^ n ≤ ∑' (y : { s // s.card = n }), ‖p (k + ⟨n, y⟩.fst)‖₊ * r ^ ⟨n, y⟩.fst

tactic: simp only [NNReal.tsum_mul_right]
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
p : FormalMultilinearSeries 𝕜 E F
x y : E
r✝ R r : ℝ≥0
hr : ↑r < p.radius
k n : ℕ
⊢ ‖p.changeOriginSeries k n‖₊ * r ^ n ≤ ∑' (y : { s // s.card = n }), ‖p (k + ⟨n, y⟩.fst)‖₊ * r ^ ⟨n, y⟩.fst
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
p : FormalMultilinearSeries 𝕜 E F
x y : E
r✝ R r : ℝ≥0
hr : ↑r < p.radius
k n : ℕ
⊢ ‖p.changeOriginSeries k n‖₊ * r ^ n ≤ (∑' (x : { s // s.card = n }), ‖p (k + n)‖₊) * r ^ n

tactic: exact mul_le_mul' (p.nnnorm_changeOriginSeries_le_tsum _ _) le_rfl
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
p : FormalMultilinearSeries 𝕜 E F
x y : E
r✝ R r : ℝ≥0
hr : ↑r < p.radius
k n : ℕ
⊢ ‖p.changeOriginSeries k n‖₊ * r ^ n ≤ (∑' (x : { s // s.card = n }), ‖p (k + n)‖₊) * r ^ n
state_after: no goals
Theorem: Nat.lt_add_of_zero_lt_left
File: Mathlib/Init/Meta/WellFoundedTactics.lean

tactic: apply Nat.add_lt_add_left
state_before: a b : Nat
h : 0 < b
⊢ a + 0 < a + b
state_after: case h
a b : Nat
h : 0 < b
⊢ 0 < b

tactic: assumption
state_before: case h
a b : Nat
h : 0 < b
⊢ 0 < b
state_after: no goals
Theorem: EuclideanGeometry.oangle_self_left
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean

tactic: simp [oangle]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ : P
⊢ ∡ p₁ p₁ p₂ = 0
state_after: no goals
Theorem: Int.preimage_Icc
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✝ a b : α
⊢ Int.cast ⁻¹' Icc a b = Icc ⌈a⌉ ⌊b⌋
state_after: case h
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
x✝ : ℤ
⊢ x✝ ∈ Int.cast ⁻¹' Icc a b ↔ x✝ ∈ Icc ⌈a⌉ ⌊b⌋

tactic: simp [ceil_le, le_floor]
state_before: case h
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
x✝ : ℤ
⊢ x✝ ∈ Int.cast ⁻¹' Icc a b ↔ x✝ ∈ Icc ⌈a⌉ ⌊b⌋
state_after: no goals
Theorem: Filter.tendstoIxxClass_inf
File: Mathlib/Order/Filter/Interval.lean

tactic: simpa only [prod_inf_prod, smallSets_inf] using h.1.inf h'.1
state_before: α : Type u_1
β : Type u_2
inst✝ : Preorder α
l₁ l₁' l₂ l₂' : Filter α
Ixx : α → α → Set α
h : TendstoIxxClass Ixx l₁ l₂
h' : TendstoIxxClass Ixx l₁' l₂'
⊢ Tendsto (fun p => Ixx p.1 p.2) ((l₁ ⊓ l₁') ×ˢ (l₁ ⊓ l₁')) (l₂ ⊓ l₂').smallSets
state_after: no goals
Theorem: Filter.HasBasis.biInter_biUnion_ball
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: ext x
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
p : ι → Prop
U : ι → Set (α × α)
h : (𝓤 α).HasBasis p U
s : Set α
⊢ ⋂ i, ⋂ (_ : p i), ⋃ x ∈ s, ball x (U i) = closure s
state_after: case h
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
p : ι → Prop
U : ι → Set (α × α)
h : (𝓤 α).HasBasis p U
s : Set α
x : α
⊢ x ∈ ⋂ i, ⋂ (_ : p i), ⋃ x ∈ s, ball x (U i) ↔ x ∈ closure s

tactic: simp [mem_closure_iff_nhds_basis (nhds_basis_uniformity h), ball]
state_before: case h
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
p : ι → Prop
U : ι → Set (α × α)
h : (𝓤 α).HasBasis p U
s : Set α
x : α
⊢ x ∈ ⋂ i, ⋂ (_ : p i), ⋃ x ∈ s, ball x (U i) ↔ x ∈ closure s
state_after: no goals