1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: stdSimplex_fin_two
File: Mathlib/Analysis/Convex/Basic.lean

tactic: refine Subset.antisymm ?_ (segment_single_subset_stdSimplex 𝕜 (0 : Fin 2) 1)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝² : OrderedSemiring 𝕜
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
⊢ stdSimplex 𝕜 (Fin 2) = [Pi.single 0 1-[𝕜]Pi.single 1 1]
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝² : OrderedSemiring 𝕜
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
⊢ stdSimplex 𝕜 (Fin 2) ⊆ [Pi.single 0 1-[𝕜]Pi.single 1 1]

tactic: rintro f ⟨hf₀, hf₁⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝² : OrderedSemiring 𝕜
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
⊢ stdSimplex 𝕜 (Fin 2) ⊆ [Pi.single 0 1-[𝕜]Pi.single 1 1]
state_after: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝² : OrderedSemiring 𝕜
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
f : Fin 2 → 𝕜
hf₀ : ∀ (x : Fin 2), 0 ≤ f x
hf₁ : ∑ x : Fin 2, f x = 1
⊢ f ∈ [Pi.single 0 1-[𝕜]Pi.single 1 1]

tactic: rw [Fin.sum_univ_two] at hf₁
state_before: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝² : OrderedSemiring 𝕜
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
f : Fin 2 → 𝕜
hf₀ : ∀ (x : Fin 2), 0 ≤ f x
hf₁ : ∑ x : Fin 2, f x = 1
⊢ f ∈ [Pi.single 0 1-[𝕜]Pi.single 1 1]
state_after: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝² : OrderedSemiring 𝕜
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
f : Fin 2 → 𝕜
hf₀ : ∀ (x : Fin 2), 0 ≤ f x
hf₁ : f 0 + f 1 = 1
⊢ f ∈ [Pi.single 0 1-[𝕜]Pi.single 1 1]

tactic: refine ⟨f 0, f 1, hf₀ 0, hf₀ 1, hf₁, funext <| Fin.forall_fin_two.2 ?_⟩
state_before: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝² : OrderedSemiring 𝕜
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
f : Fin 2 → 𝕜
hf₀ : ∀ (x : Fin 2), 0 ≤ f x
hf₁ : f 0 + f 1 = 1
⊢ f ∈ [Pi.single 0 1-[𝕜]Pi.single 1 1]
state_after: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝² : OrderedSemiring 𝕜
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
f : Fin 2 → 𝕜
hf₀ : ∀ (x : Fin 2), 0 ≤ f x
hf₁ : f 0 + f 1 = 1
⊢ (f 0 • Pi.single 0 1 + f 1 • Pi.single 1 1) 0 = f 0 ∧ (f 0 • Pi.single 0 1 + f 1 • Pi.single 1 1) 1 = f 1

tactic: simp
state_before: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝² : OrderedSemiring 𝕜
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
f : Fin 2 → 𝕜
hf₀ : ∀ (x : Fin 2), 0 ≤ f x
hf₁ : f 0 + f 1 = 1
⊢ (f 0 • Pi.single 0 1 + f 1 • Pi.single 1 1) 0 = f 0 ∧ (f 0 • Pi.single 0 1 + f 1 • Pi.single 1 1) 1 = f 1
state_after: no goals
Theorem: round_nat_add
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [add_comm, round_add_nat, add_comm]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
x : α
y : ℕ
⊢ round (↑y + x) = ↑y + round x
state_after: no goals
Theorem: add_halves
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [div_add_div_same, ← two_mul, mul_div_cancel_left₀ a two_ne_zero]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a✝ b c d e : α
m n : ℤ
a : α
⊢ a / 2 + a / 2 = a
state_after: no goals
Theorem: HomologicalComplex.to_single_hom_ext
File: Mathlib/Algebra/Homology/Single.lean

tactic: ext i
state_before: V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
inst✝¹ : HasZeroObject V
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
K : HomologicalComplex V c
j : ι
A : V
f g : K ⟶ (single V c j).obj A
hfg : f.f j = g.f j
⊢ f = g
state_after: case h
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
inst✝¹ : HasZeroObject V
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
K : HomologicalComplex V c
j : ι
A : V
f g : K ⟶ (single V c j).obj A
hfg : f.f j = g.f j
i : ι
⊢ f.f i = g.f i

tactic: by_cases h : i = j
state_before: case h
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
inst✝¹ : HasZeroObject V
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
K : HomologicalComplex V c
j : ι
A : V
f g : K ⟶ (single V c j).obj A
hfg : f.f j = g.f j
i : ι
⊢ f.f i = g.f i
state_after: case pos
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
inst✝¹ : HasZeroObject V
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
K : HomologicalComplex V c
j : ι
A : V
f g : K ⟶ (single V c j).obj A
hfg : f.f j = g.f j
i : ι
h : i = j
⊢ f.f i = g.f i

case neg
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
inst✝¹ : HasZeroObject V
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
K : HomologicalComplex V c
j : ι
A : V
f g : K ⟶ (single V c j).obj A
hfg : f.f j = g.f j
i : ι
h : ¬i = j
⊢ f.f i = g.f i

tactic: subst h
state_before: case pos
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
inst✝¹ : HasZeroObject V
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
K : HomologicalComplex V c
j : ι
A : V
f g : K ⟶ (single V c j).obj A
hfg : f.f j = g.f j
i : ι
h : i = j
⊢ f.f i = g.f i
state_after: case pos
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
inst✝¹ : HasZeroObject V
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
K : HomologicalComplex V c
A : V
i : ι
f g : K ⟶ (single V c i).obj A
hfg : f.f i = g.f i
⊢ f.f i = g.f i

tactic: exact hfg
state_before: case pos
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
inst✝¹ : HasZeroObject V
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
K : HomologicalComplex V c
A : V
i : ι
f g : K ⟶ (single V c i).obj A
hfg : f.f i = g.f i
⊢ f.f i = g.f i
state_after: no goals

tactic: apply (isZero_single_obj_X c j A i h).eq_of_tgt
state_before: case neg
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
inst✝¹ : HasZeroObject V
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
K : HomologicalComplex V c
j : ι
A : V
f g : K ⟶ (single V c j).obj A
hfg : f.f j = g.f j
i : ι
h : ¬i = j
⊢ f.f i = g.f i
state_after: no goals
Theorem: Ordinal.card_eq_nat
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: simp only [le_antisymm_iff, card_le_nat, nat_le_card]
state_before: α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u_3}
n : ℕ
⊢ o.card = ↑n ↔ o = ↑n
state_after: no goals
Theorem: Topology.IsLowerSet.lowerSet_le_lower
File: Mathlib/Topology/Order/UpperLowerSetTopology.lean

tactic: rw [@isOpen_iff_isLowerSet α _ t₁]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : Preorder α
inst✝² : Preorder β
t₁ t₂ : TopologicalSpace α
inst✝¹ : Topology.IsLowerSet α
inst✝ : IsLower α
s : Set α
hs : IsOpen s
⊢ IsOpen s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : Preorder α
inst✝² : Preorder β
t₁ t₂ : TopologicalSpace α
inst✝¹ : Topology.IsLowerSet α
inst✝ : IsLower α
s : Set α
hs : IsOpen s
⊢ IsLowerSet s

tactic: exact IsLower.isLowerSet_of_isOpen hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : Preorder α
inst✝² : Preorder β
t₁ t₂ : TopologicalSpace α
inst✝¹ : Topology.IsLowerSet α
inst✝ : IsLower α
s : Set α
hs : IsOpen s
⊢ IsLowerSet s
state_after: no goals
Theorem: Subbimodule.smul_mem'
File: Mathlib/Algebra/Module/Bimodule.lean

tactic: suffices b • m = (1 : A) ⊗ₜ[R] b • m by exact this.symm ▸ p.smul_mem _ hm
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Module A M
inst✝⁵ : Module B M
inst✝⁴ : Algebra R A
inst✝³ : Algebra R B
inst✝² : IsScalarTower R A M
inst✝¹ : IsScalarTower R B M
inst✝ : SMulCommClass A B M
p : Submodule (A ⊗[R] B) M
b : B
m : M
hm : m ∈ p
⊢ b • m ∈ p
state_after: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Module A M
inst✝⁵ : Module B M
inst✝⁴ : Algebra R A
inst✝³ : Algebra R B
inst✝² : IsScalarTower R A M
inst✝¹ : IsScalarTower R B M
inst✝ : SMulCommClass A B M
p : Submodule (A ⊗[R] B) M
b : B
m : M
hm : m ∈ p
⊢ b • m = 1 ⊗ₜ[R] b • m

tactic: simp [TensorProduct.Algebra.smul_def]
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Module A M
inst✝⁵ : Module B M
inst✝⁴ : Algebra R A
inst✝³ : Algebra R B
inst✝² : IsScalarTower R A M
inst✝¹ : IsScalarTower R B M
inst✝ : SMulCommClass A B M
p : Submodule (A ⊗[R] B) M
b : B
m : M
hm : m ∈ p
⊢ b • m = 1 ⊗ₜ[R] b • m
state_after: no goals

tactic: exact this.symm ▸ p.smul_mem _ hm
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Module A M
inst✝⁵ : Module B M
inst✝⁴ : Algebra R A
inst✝³ : Algebra R B
inst✝² : IsScalarTower R A M
inst✝¹ : IsScalarTower R B M
inst✝ : SMulCommClass A B M
p : Submodule (A ⊗[R] B) M
b : B
m : M
hm : m ∈ p
this : b • m = 1 ⊗ₜ[R] b • m
⊢ b • m ∈ p
state_after: no goals
Theorem: MeasureTheory.lintegral_eq_of_lmarginal_eq
File: Mathlib/MeasureTheory/Integral/Marginal.lean

tactic: rcases isEmpty_or_nonempty (∀ i, π i) with h|⟨⟨x⟩⟩
state_before: δ : Type u_1
δ' : Type u_2
π : δ → Type u_3
inst✝³ : (x : δ) → MeasurableSpace (π x)
μ : (i : δ) → Measure (π i)
inst✝² : ∀ (i : δ), SigmaFinite (μ i)
inst✝¹ : DecidableEq δ
s✝ t : Finset δ
f✝ g✝ : ((i : δ) → π i) → ℝ≥0∞
x y : (i : δ) → π i
i : δ
inst✝ : Fintype δ
s : Finset δ
f g : ((i : δ) → π i) → ℝ≥0∞
hf : Measurable f
hg : Measurable g
hfg : ∫⋯∫⁻_s, f ∂μ = ∫⋯∫⁻_s, g ∂μ
⊢ ∫⁻ (x : (i : δ) → π i), f x ∂Measure.pi μ = ∫⁻ (x : (i : δ) → π i), g x ∂Measure.pi μ
state_after: case inl
δ : Type u_1
δ' : Type u_2
π : δ → Type u_3
inst✝³ : (x : δ) → MeasurableSpace (π x)
μ : (i : δ) → Measure (π i)
inst✝² : ∀ (i : δ), SigmaFinite (μ i)
inst✝¹ : DecidableEq δ
s✝ t : Finset δ
f✝ g✝ : ((i : δ) → π i) → ℝ≥0∞
x y : (i : δ) → π i
i : δ
inst✝ : Fintype δ
s : Finset δ
f g : ((i : δ) → π i) → ℝ≥0∞
hf : Measurable f
hg : Measurable g
hfg : ∫⋯∫⁻_s, f ∂μ = ∫⋯∫⁻_s, g ∂μ
h : IsEmpty ((i : δ) → π i)
⊢ ∫⁻ (x : (i : δ) → π i), f x ∂Measure.pi μ = ∫⁻ (x : (i : δ) → π i), g x ∂Measure.pi μ

case inr.intro
δ : Type u_1
δ' : Type u_2
π : δ → Type u_3
inst✝³ : (x : δ) → MeasurableSpace (π x)
μ : (i : δ) → Measure (π i)
inst✝² : ∀ (i : δ), SigmaFinite (μ i)
inst✝¹ : DecidableEq δ
s✝ t : Finset δ
f✝ g✝ : ((i : δ) → π i) → ℝ≥0∞
x✝ y : (i : δ) → π i
i : δ
inst✝ : Fintype δ
s : Finset δ
f g : ((i : δ) → π i) → ℝ≥0∞
hf : Measurable f
hg : Measurable g
hfg : ∫⋯∫⁻_s, f ∂μ = ∫⋯∫⁻_s, g ∂μ
x : (i : δ) → π i
⊢ ∫⁻ (x : (i : δ) → π i), f x ∂Measure.pi μ = ∫⁻ (x : (i : δ) → π i), g x ∂Measure.pi μ

tactic: simp_rw [lintegral_eq_lmarginal_univ x, lmarginal_eq_of_subset (Finset.subset_univ s) hf hg hfg]
state_before: case inr.intro
δ : Type u_1
δ' : Type u_2
π : δ → Type u_3
inst✝³ : (x : δ) → MeasurableSpace (π x)
μ : (i : δ) → Measure (π i)
inst✝² : ∀ (i : δ), SigmaFinite (μ i)
inst✝¹ : DecidableEq δ
s✝ t : Finset δ
f✝ g✝ : ((i : δ) → π i) → ℝ≥0∞
x✝ y : (i : δ) → π i
i : δ
inst✝ : Fintype δ
s : Finset δ
f g : ((i : δ) → π i) → ℝ≥0∞
hf : Measurable f
hg : Measurable g
hfg : ∫⋯∫⁻_s, f ∂μ = ∫⋯∫⁻_s, g ∂μ
x : (i : δ) → π i
⊢ ∫⁻ (x : (i : δ) → π i), f x ∂Measure.pi μ = ∫⁻ (x : (i : δ) → π i), g x ∂Measure.pi μ
state_after: no goals

tactic: simp_rw [lintegral_of_isEmpty]
state_before: case inl
δ : Type u_1
δ' : Type u_2
π : δ → Type u_3
inst✝³ : (x : δ) → MeasurableSpace (π x)
μ : (i : δ) → Measure (π i)
inst✝² : ∀ (i : δ), SigmaFinite (μ i)
inst✝¹ : DecidableEq δ
s✝ t : Finset δ
f✝ g✝ : ((i : δ) → π i) → ℝ≥0∞
x y : (i : δ) → π i
i : δ
inst✝ : Fintype δ
s : Finset δ
f g : ((i : δ) → π i) → ℝ≥0∞
hf : Measurable f
hg : Measurable g
hfg : ∫⋯∫⁻_s, f ∂μ = ∫⋯∫⁻_s, g ∂μ
h : IsEmpty ((i : δ) → π i)
⊢ ∫⁻ (x : (i : δ) → π i), f x ∂Measure.pi μ = ∫⁻ (x : (i : δ) → π i), g x ∂Measure.pi μ
state_after: no goals
Theorem: AlgebraicGeometry.PresheafedSpace.ofRestrict_top_c
File: Mathlib/Geometry/RingedSpace/PresheafedSpace.lean

tactic: rw [restrict_top_presheaf, ← Presheaf.Pushforward.comp_eq]
state_before: C : Type u_1
inst✝ : Category.{?u.82830, u_1} C
X : PresheafedSpace C
⊢ X.presheaf = (X.ofRestrict ⋯).base _* (X.restrict ⋯).presheaf
state_after: C : Type u_1
inst✝ : Category.{?u.82830, u_1} C
X : PresheafedSpace C
⊢ X.presheaf = ((Opens.inclusionTopIso ↑X).inv ≫ (X.ofRestrict ⋯).base) _* X.presheaf

tactic: erw [Iso.inv_hom_id]
state_before: C : Type u_1
inst✝ : Category.{?u.82830, u_1} C
X : PresheafedSpace C
⊢ X.presheaf = ((Opens.inclusionTopIso ↑X).inv ≫ (X.ofRestrict ⋯).base) _* X.presheaf
state_after: C : Type u_1
inst✝ : Category.{?u.82830, u_1} C
X : PresheafedSpace C
⊢ X.presheaf = 𝟙 ↑X _* X.presheaf

tactic: rw [Presheaf.Pushforward.id_eq]
state_before: C : Type u_1
inst✝ : Category.{?u.82830, u_1} C
X : PresheafedSpace C
⊢ X.presheaf = 𝟙 ↑X _* X.presheaf
state_after: no goals

tactic: ext
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : PresheafedSpace C
⊢ (X.ofRestrict ⋯).c = eqToHom ⋯
state_after: case w
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : PresheafedSpace C
U✝ : Opens ↑↑X
⊢ (X.ofRestrict ⋯).c.app { unop := U✝ } = (eqToHom ⋯).app { unop := U✝ }

tactic: dsimp [ofRestrict]
state_before: case w
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : PresheafedSpace C
U✝ : Opens ↑↑X
⊢ (X.ofRestrict ⋯).c.app { unop := U✝ } = (eqToHom ⋯).app { unop := U✝ }
state_after: case w
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : PresheafedSpace C
U✝ : Opens ↑↑X
⊢ X.presheaf.map (⋯.adjunction.counit.app U✝).op = (eqToHom ⋯).app { unop := U✝ }

tactic: erw [eqToHom_map, eqToHom_app]
state_before: case w
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : PresheafedSpace C
U✝ : Opens ↑↑X
⊢ X.presheaf.map (⋯.adjunction.counit.app U✝).op = (eqToHom ⋯).app { unop := U✝ }
state_after: case w.p
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : PresheafedSpace C
U✝ : Opens ↑↑X
⊢ { unop := U✝ } = { unop := ⋯.functor.obj ((Opens.map ⊤.inclusion).obj U✝) }

tactic: simp
state_before: case w.p
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : PresheafedSpace C
U✝ : Opens ↑↑X
⊢ { unop := U✝ } = { unop := ⋯.functor.obj ((Opens.map ⊤.inclusion).obj U✝) }
state_after: no goals
Theorem: Odd.add_odd
File: Mathlib/Algebra/Ring/Parity.lean

tactic: rintro ⟨a, rfl⟩ ⟨b, rfl⟩
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Semiring α
inst✝ : Semiring β
a b : α
m n : ℕ
⊢ Odd a → Odd b → Even (a + b)
state_after: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Semiring α
inst✝ : Semiring β
m n : ℕ
a b : α
⊢ Even (2 * a + 1 + (2 * b + 1))

tactic: refine ⟨a + b + 1, ?_⟩
state_before: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Semiring α
inst✝ : Semiring β
m n : ℕ
a b : α
⊢ Even (2 * a + 1 + (2 * b + 1))
state_after: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Semiring α
inst✝ : Semiring β
m n : ℕ
a b : α
⊢ 2 * a + 1 + (2 * b + 1) = a + b + 1 + (a + b + 1)

tactic: rw [two_mul, two_mul]
state_before: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Semiring α
inst✝ : Semiring β
m n : ℕ
a b : α
⊢ 2 * a + 1 + (2 * b + 1) = a + b + 1 + (a + b + 1)
state_after: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Semiring α
inst✝ : Semiring β
m n : ℕ
a b : α
⊢ a + a + 1 + (b + b + 1) = a + b + 1 + (a + b + 1)

tactic: ac_rfl
state_before: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Semiring α
inst✝ : Semiring β
m n : ℕ
a b : α
⊢ a + a + 1 + (b + b + 1) = a + b + 1 + (a + b + 1)
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.boundedBy_apply
File: Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean

tactic: simp [boundedBy, ofFunction_apply]
state_before: α : Type u_1
m : Set α → ℝ≥0∞
s : Set α
⊢ (boundedBy m) s = ⨅ t, ⨅ (_ : s ⊆ iUnion t), ∑' (n : ℕ), ⨆ (_ : (t n).Nonempty), m (t n)
state_after: no goals
Theorem: List.get?_zip_with
File: Mathlib/Data/List/Zip.lean

tactic: simp [getElem?_zip_with]
state_before: α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
f : α → β → γ
l₁ : List α
l₂ : List β
i : ℕ
⊢ (zipWith f l₁ l₂).get? i = (Option.map f (l₁.get? i)).bind fun g => Option.map g (l₂.get? i)
state_after: no goals
Theorem: List.get_insertNth_of_lt
File: Mathlib/Data/List/InsertNth.lean

tactic: simp_all [getElem_insertNth_of_lt]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
x : α
n k : ℕ
hn : k < n
hk : k < l.length
hk' : optParam (k < (insertNth n x l).length) ⋯
⊢ (insertNth n x l).get ⟨k, hk'⟩ = l.get ⟨k, hk⟩
state_after: no goals
Theorem: NormedField.exists_lt_norm
File: Mathlib/Analysis/Normed/Field/Basic.lean

tactic: rwa [norm_pow]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
r : ℝ
w : α
hw : 1 < ‖w‖
n : ℕ
hn : r < ‖w‖ ^ n
⊢ r < ‖w ^ n‖
state_after: no goals
Theorem: Set.image_update_Icc_right
File: Mathlib/Order/Interval/Set/Pi.lean

tactic: simpa using image_update_Icc f i (f i) b
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → PartialOrder (α i)
f : (i : ι) → α i
i : ι
b : α i
⊢ update f i '' Icc (f i) b = Icc f (update f i b)
state_after: no goals
Theorem: List.singleton_subperm_iff
File: .lake/packages/batteries/Batteries/Data/List/Perm.lean

tactic: refine ⟨fun ⟨s, hla, h⟩ => ?_, fun h => ⟨[a], .rfl, singleton_sublist.mpr h⟩⟩
state_before: α : Type u_1
l : List α
a : α
⊢ [a] <+~ l ↔ a ∈ l
state_after: α : Type u_1
l : List α
a : α
x✝ : [a] <+~ l
s : List α
hla : s ~ [a]
h : s <+ l
⊢ a ∈ l

tactic: rwa [perm_singleton.mp hla, singleton_sublist] at h
state_before: α : Type u_1
l : List α
a : α
x✝ : [a] <+~ l
s : List α
hla : s ~ [a]
h : s <+ l
⊢ a ∈ l
state_after: no goals
Theorem: not_bddAbove_univ
File: Mathlib/Order/Bounds/Basic.lean

tactic: simp [BddAbove]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝² : Preorder α
inst✝¹ : Preorder β
s t : Set α
a b : α
inst✝ : NoMaxOrder α
⊢ ¬BddAbove univ
state_after: no goals
Theorem: riemannZeta_def_of_ne_zero
File: Mathlib/NumberTheory/LSeries/RiemannZeta.lean

tactic: rw [riemannZeta, hurwitzZetaEven, Function.update_noteq hs, completedHurwitzZetaEven_zero]
state_before: s : ℂ
hs : s ≠ 0
⊢ riemannZeta s = completedRiemannZeta s / s.Gammaℝ
state_after: no goals
Theorem: Filter.tendsto_div_const_atBot_of_neg
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: simp [div_eq_mul_inv, tendsto_mul_const_atBot_of_neg, hr]
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedField α
l : Filter β
f : β → α
r : α
hr : r < 0
⊢ Tendsto (fun x => f x / r) l atBot ↔ Tendsto f l atTop
state_after: no goals
Theorem: MeasureTheory.SimpleFunc.restrict_univ
File: Mathlib/MeasureTheory/Function/SimpleFunc.lean

tactic: simp [restrict]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : MeasurableSpace α
K : Type u_5
inst✝ : Zero β
f : α →ₛ β
⊢ f.restrict univ = f
state_after: no goals
Theorem: Nat.findGreatest_pos
File: Mathlib/Data/Nat/Defs.lean

tactic: rw [Nat.pos_iff_ne_zero, Ne, findGreatest_eq_zero_iff]
state_before: a b c d m n✝ k : ℕ
p q P Q : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
⊢ 0 < findGreatest P k ↔ ∃ n, 0 < n ∧ n ≤ k ∧ P n
state_after: a b c d m n✝ k : ℕ
p q P Q : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
⊢ (¬∀ ⦃n : ℕ⦄, 0 < n → n ≤ k → ¬P n) ↔ ∃ n, 0 < n ∧ n ≤ k ∧ P n

tactic: push_neg
state_before: a b c d m n✝ k : ℕ
p q P Q : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
⊢ (¬∀ ⦃n : ℕ⦄, 0 < n → n ≤ k → ¬P n) ↔ ∃ n, 0 < n ∧ n ≤ k ∧ P n
state_after: a b c d m n✝ k : ℕ
p q P Q : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
⊢ (Exists fun ⦃n⦄ => 0 < n ∧ n ≤ k ∧ P n) ↔ ∃ n, 0 < n ∧ n ≤ k ∧ P n

tactic: rfl
state_before: a b c d m n✝ k : ℕ
p q P Q : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
⊢ (Exists fun ⦃n⦄ => 0 < n ∧ n ≤ k ∧ P n) ↔ ∃ n, 0 < n ∧ n ≤ k ∧ P n
state_after: no goals
Theorem: Set.union_finset_finite_of_range_finite
File: Mathlib/Data/Set/Finite.lean

tactic: rw [← biUnion_range]
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
f : α → Finset β
h : (range f).Finite
⊢ (⋃ a, ↑(f a)).Finite
state_after: α : Type u
β : Type v
ι : Sort w
γ : Type x
f : α → Finset β
h : (range f).Finite
⊢ (⋃ x ∈ range f, ↑x).Finite

tactic: exact h.biUnion fun y _ => y.finite_toSet
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
f : α → Finset β
h : (range f).Finite
⊢ (⋃ x ∈ range f, ↑x).Finite
state_after: no goals
Theorem: isOpen_iff_ultrafilter
File: Mathlib/Topology/Basic.lean

tactic: simp_rw [isOpen_iff_mem_nhds, ← mem_iff_ultrafilter]
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
⊢ IsOpen s ↔ ∀ x ∈ s, ∀ (l : Ultrafilter X), ↑l ≤ 𝓝 x → s ∈ l
state_after: no goals
Theorem: AlgEquiv.arrowCongr_refl
File: Mathlib/Algebra/Algebra/Equiv.lean

tactic: ext
state_before: R : Type uR
A₁ : Type uA₁
A₂ : Type uA₂
A₃ : Type uA₃
A₁' : Type uA₁'
A₂' : Type uA₂'
A₃' : Type uA₃'
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A₁
inst✝¹⁰ : Semiring A₂
inst✝⁹ : Semiring A₃
inst✝⁸ : Semiring A₁'
inst✝⁷ : Semiring A₂'
inst✝⁶ : Semiring A₃'
inst✝⁵ : Algebra R A₁
inst✝⁴ : Algebra R A₂
inst✝³ : Algebra R A₃
inst✝² : Algebra R A₁'
inst✝¹ : Algebra R A₂'
inst✝ : Algebra R A₃'
e : A₁ ≃ₐ[R] A₂
⊢ refl.arrowCongr refl = Equiv.refl (A₁ →ₐ[R] A₂)
state_after: case H.H
R : Type uR
A₁ : Type uA₁
A₂ : Type uA₂
A₃ : Type uA₃
A₁' : Type uA₁'
A₂' : Type uA₂'
A₃' : Type uA₃'
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A₁
inst✝¹⁰ : Semiring A₂
inst✝⁹ : Semiring A₃
inst✝⁸ : Semiring A₁'
inst✝⁷ : Semiring A₂'
inst✝⁶ : Semiring A₃'
inst✝⁵ : Algebra R A₁
inst✝⁴ : Algebra R A₂
inst✝³ : Algebra R A₃
inst✝² : Algebra R A₁'
inst✝¹ : Algebra R A₂'
inst✝ : Algebra R A₃'
e : A₁ ≃ₐ[R] A₂
x✝¹ : A₁ →ₐ[R] A₂
x✝ : A₁
⊢ ((refl.arrowCongr refl) x✝¹) x✝ = ((Equiv.refl (A₁ →ₐ[R] A₂)) x✝¹) x✝

tactic: rfl
state_before: case H.H
R : Type uR
A₁ : Type uA₁
A₂ : Type uA₂
A₃ : Type uA₃
A₁' : Type uA₁'
A₂' : Type uA₂'
A₃' : Type uA₃'
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A₁
inst✝¹⁰ : Semiring A₂
inst✝⁹ : Semiring A₃
inst✝⁸ : Semiring A₁'
inst✝⁷ : Semiring A₂'
inst✝⁶ : Semiring A₃'
inst✝⁵ : Algebra R A₁
inst✝⁴ : Algebra R A₂
inst✝³ : Algebra R A₃
inst✝² : Algebra R A₁'
inst✝¹ : Algebra R A₂'
inst✝ : Algebra R A₃'
e : A₁ ≃ₐ[R] A₂
x✝¹ : A₁ →ₐ[R] A₂
x✝ : A₁
⊢ ((refl.arrowCongr refl) x✝¹) x✝ = ((Equiv.refl (A₁ →ₐ[R] A₂)) x✝¹) x✝
state_after: no goals
Theorem: TopologicalSpace.Opens.adjunction_counit_map_functor
File: Mathlib/Topology/Category/TopCat/Opens.lean

tactic: dsimp
state_before: X : TopCat
U : Opens ↑X
V : Opens ↥U
⊢ (map U.inclusion ⋙ ⋯.functor).obj (⋯.functor.obj V) = (𝟭 (Opens ↑X)).obj (⋯.functor.obj V)
state_after: X : TopCat
U : Opens ↑X
V : Opens ↥U
⊢ ⋯.functor.obj ((map U.inclusion).obj (⋯.functor.obj V)) = ⋯.functor.obj V

tactic: rw [map_functor_eq V]
state_before: X : TopCat
U : Opens ↑X
V : Opens ↥U
⊢ ⋯.functor.obj ((map U.inclusion).obj (⋯.functor.obj V)) = ⋯.functor.obj V
state_after: no goals

tactic: apply Subsingleton.elim
state_before: X : TopCat
U : Opens ↑X
V : Opens ↥U
⊢ ⋯.adjunction.counit.app (⋯.functor.obj V) = eqToHom ⋯
state_after: no goals
Theorem: InnerProductSpace.Core.inner_mul_symm_re_eq_norm
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: rw [← inner_conj_symm, mul_comm]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ re (⟪x, y⟫_𝕜 * ⟪y, x⟫_𝕜) = ‖⟪x, y⟫_𝕜 * ⟪y, x⟫_𝕜‖
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ re (⟪y, x⟫_𝕜 * (starRingEnd 𝕜) ⟪y, x⟫_𝕜) = ‖⟪y, x⟫_𝕜 * (starRingEnd 𝕜) ⟪y, x⟫_𝕜‖

tactic: exact re_eq_norm_of_mul_conj (inner y x)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ re (⟪y, x⟫_𝕜 * (starRingEnd 𝕜) ⟪y, x⟫_𝕜) = ‖⟪y, x⟫_𝕜 * (starRingEnd 𝕜) ⟪y, x⟫_𝕜‖
state_after: no goals