1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: one_le_tprod
File: Mathlib/Topology/Algebra/InfiniteSum/Order.lean

tactic: by_cases hg : Multipliable g
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
h : ∀ (i : ι), 1 ≤ g i
⊢ 1 ≤ ∏' (i : ι), g i
state_after: case pos
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
h : ∀ (i : ι), 1 ≤ g i
hg : Multipliable g
⊢ 1 ≤ ∏' (i : ι), g i

case neg
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
h : ∀ (i : ι), 1 ≤ g i
hg : ¬Multipliable g
⊢ 1 ≤ ∏' (i : ι), g i

tactic: exact hg.hasProd.one_le h
state_before: case pos
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
h : ∀ (i : ι), 1 ≤ g i
hg : Multipliable g
⊢ 1 ≤ ∏' (i : ι), g i
state_after: no goals

tactic: rw [tprod_eq_one_of_not_multipliable hg]
state_before: case neg
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
h : ∀ (i : ι), 1 ≤ g i
hg : ¬Multipliable g
⊢ 1 ≤ ∏' (i : ι), g i
state_after: no goals
Theorem: ENNReal.mul_sSup
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp only [sSup_eq_iSup, mul_iSup]
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✝ s : Set ℝ≥0∞
a : ℝ≥0∞
⊢ a * sSup s = ⨆ i ∈ s, a * i
state_after: no goals
Theorem: MeasureTheory.integrable_llr_tilted_right
File: Mathlib/MeasureTheory/Measure/LogLikelihoodRatio.lean

tactic: rw [integrable_congr (llr_tilted_right hμν hfν)]
state_before: α : Type u_1
mα : MeasurableSpace α
μ ν : Measure α
f : α → ℝ
inst✝¹ : IsFiniteMeasure μ
inst✝ : SigmaFinite ν
hμν : μ ≪ ν
hfμ : Integrable f μ
h_int : Integrable (llr μ ν) μ
hfν : Integrable (fun x => rexp (f x)) ν
⊢ Integrable (llr μ (ν.tilted f)) μ
state_after: α : Type u_1
mα : MeasurableSpace α
μ ν : Measure α
f : α → ℝ
inst✝¹ : IsFiniteMeasure μ
inst✝ : SigmaFinite ν
hμν : μ ≪ ν
hfμ : Integrable f μ
h_int : Integrable (llr μ ν) μ
hfν : Integrable (fun x => rexp (f x)) ν
⊢ Integrable (fun x => -f x + log (∫ (z : α), rexp (f z) ∂ν) + llr μ ν x) μ

tactic: exact Integrable.add (hfμ.neg.add (integrable_const _)) h_int
state_before: α : Type u_1
mα : MeasurableSpace α
μ ν : Measure α
f : α → ℝ
inst✝¹ : IsFiniteMeasure μ
inst✝ : SigmaFinite ν
hμν : μ ≪ ν
hfμ : Integrable f μ
h_int : Integrable (llr μ ν) μ
hfν : Integrable (fun x => rexp (f x)) ν
⊢ Integrable (fun x => -f x + log (∫ (z : α), rexp (f z) ∂ν) + llr μ ν x) μ
state_after: no goals
Theorem: Set.pi_univ_Ioc_update_left
File: Mathlib/Order/Interval/Set/Pi.lean

tactic: have : Ioc m (y i₀) = Ioi m ∩ Ioc (x i₀) (y i₀) := by
  rw [← Ioi_inter_Iic, ← Ioi_inter_Iic, ← inter_assoc,
    inter_eq_self_of_subset_left (Ioi_subset_Ioi hm)]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : x i₀ ≤ m
⊢ (univ.pi fun i => Ioc (update x i₀ m i) (y i)) = {z | m < z i₀} ∩ univ.pi fun i => Ioc (x i) (y i)
state_after: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : x i₀ ≤ m
this : Ioc m (y i₀) = Ioi m ∩ Ioc (x i₀) (y i₀)
⊢ (univ.pi fun i => Ioc (update x i₀ m i) (y i)) = {z | m < z i₀} ∩ univ.pi fun i => Ioc (x i) (y i)

tactic: simp_rw [univ_pi_update i₀ _ _ fun i z ↦ Ioc z (y i), ← pi_inter_compl ({i₀} : Set ι),
  singleton_pi', ← inter_assoc, this]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : x i₀ ≤ m
this : Ioc m (y i₀) = Ioi m ∩ Ioc (x i₀) (y i₀)
⊢ (univ.pi fun i => Ioc (update x i₀ m i) (y i)) = {z | m < z i₀} ∩ univ.pi fun i => Ioc (x i) (y i)
state_after: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : x i₀ ≤ m
this : Ioc m (y i₀) = Ioi m ∩ Ioc (x i₀) (y i₀)
⊢ ({x_1 | x_1 i₀ ∈ Ioi m ∩ Ioc (x i₀) (y i₀)} ∩ {i₀}ᶜ.pi fun j => Ioc (x j) (y j)) =
    {z | m < z i₀} ∩ {x_1 | x_1 i₀ ∈ Ioc (x i₀) (y i₀)} ∩ {i₀}ᶜ.pi fun j => Ioc (x j) (y j)

tactic: rfl
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : x i₀ ≤ m
this : Ioc m (y i₀) = Ioi m ∩ Ioc (x i₀) (y i₀)
⊢ ({x_1 | x_1 i₀ ∈ Ioi m ∩ Ioc (x i₀) (y i₀)} ∩ {i₀}ᶜ.pi fun j => Ioc (x j) (y j)) =
    {z | m < z i₀} ∩ {x_1 | x_1 i₀ ∈ Ioc (x i₀) (y i₀)} ∩ {i₀}ᶜ.pi fun j => Ioc (x j) (y j)
state_after: no goals

tactic: rw [← Ioi_inter_Iic, ← Ioi_inter_Iic, ← inter_assoc,
  inter_eq_self_of_subset_left (Ioi_subset_Ioi hm)]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : x i₀ ≤ m
⊢ Ioc m (y i₀) = Ioi m ∩ Ioc (x i₀) (y i₀)
state_after: no goals
Theorem: ZNum.cast_add
File: Mathlib/Data/Num/Lemmas.lean

tactic: cases a <;> exact (_root_.zero_add _).symm
state_before: α : Type u_1
inst✝ : AddGroupWithOne α
a : ZNum
⊢ ↑(0 + a) = ↑0 + ↑a
state_after: no goals

tactic: cases b <;> exact (_root_.add_zero _).symm
state_before: α : Type u_1
inst✝ : AddGroupWithOne α
b : ZNum
⊢ ↑(b + 0) = ↑b + ↑0
state_after: no goals

tactic: simpa only [sub_eq_add_neg] using PosNum.cast_sub' (α := α) _ _
state_before: α : Type u_1
inst✝ : AddGroupWithOne α
a b : PosNum
⊢ ↑(pos a + neg b) = ↑(pos a) + ↑(neg b)
state_after: no goals

tactic: rw [← PosNum.cast_to_int a, ← PosNum.cast_to_int b, ← Int.cast_neg, ← Int.cast_add (-a)]
state_before: α : Type u_1
inst✝ : AddGroupWithOne α
a b : PosNum
⊢ ↑b + -↑a = -↑a + ↑b
state_after: α : Type u_1
inst✝ : AddGroupWithOne α
a b : PosNum
⊢ ↑↑b + ↑(-↑a) = ↑(-↑a + ↑b)

tactic: simp [add_comm]
state_before: α : Type u_1
inst✝ : AddGroupWithOne α
a b : PosNum
⊢ ↑↑b + ↑(-↑a) = ↑(-↑a + ↑b)
state_after: no goals

tactic: rw [PosNum.cast_add, neg_eq_iff_eq_neg, neg_add_rev, neg_neg, neg_neg,
    ← PosNum.cast_to_int a, ← PosNum.cast_to_int b, ← Int.cast_add, ← Int.cast_add, add_comm]
state_before: α : Type u_1
inst✝ : AddGroupWithOne α
a b : PosNum
⊢ -↑(a + b) = -↑a + -↑b
state_after: no goals
Theorem: LinearMap.IsAdjointPair.add
File: Mathlib/LinearAlgebra/SesquilinearForm.lean

tactic: rw [f.add_apply, g.add_apply, B'.map_add₂, (B x).map_add, h, h']
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
Mₗ₁ : Type u_9
Mₗ₁' : Type u_10
Mₗ₂ : Type u_11
Mₗ₂' : Type u_12
K : Type u_13
K₁ : Type u_14
K₂ : Type u_15
V : Type u_16
V₁ : Type u_17
V₂ : Type u_18
n : Type u_19
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid M₁
inst✝⁴ : Module R M₁
inst✝³ : AddCommMonoid M₂
inst✝² : Module R M₂
inst✝¹ : AddCommMonoid M₃
inst✝ : Module R M₃
I : R →+* R
B F : M →ₗ[R] M →ₛₗ[I] M₃
B' : M₁ →ₗ[R] M₁ →ₛₗ[I] M₃
B'' : M₂ →ₗ[R] M₂ →ₛₗ[I] M₃
f f' : M →ₗ[R] M₁
g g' : M₁ →ₗ[R] M
h : B.IsAdjointPair B' f g
h' : B.IsAdjointPair B' f' g'
x : M
x✝ : M₁
⊢ (B' ((f + f') x)) x✝ = (B x) ((g + g') x✝)
state_after: no goals
Theorem: Function.range_subset_insert_image_mulSupport
File: Mathlib/Algebra/Group/Support.lean

tactic: simpa only [range_subset_iff, mem_insert_iff, or_iff_not_imp_left] using
  fun x (hx : x ∈ mulSupport f) => mem_image_of_mem f hx
state_before: α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
⊢ range f ⊆ insert 1 (f '' mulSupport f)
state_after: no goals
Theorem: CategoryTheory.Subobject.factorThru_self
File: Mathlib/CategoryTheory/Subobject/FactorThru.lean

tactic: ext
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y Z : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X : C
P : Subobject X
h : P.Factors P.arrow
⊢ P.factorThru P.arrow h = 𝟙 (underlying.obj P)
state_after: case h
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y Z : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X : C
P : Subobject X
h : P.Factors P.arrow
⊢ P.factorThru P.arrow h ≫ P.arrow = 𝟙 (underlying.obj P) ≫ P.arrow

tactic: simp
state_before: case h
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y Z : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X : C
P : Subobject X
h : P.Factors P.arrow
⊢ P.factorThru P.arrow h ≫ P.arrow = 𝟙 (underlying.obj P) ≫ P.arrow
state_after: no goals
Theorem: SetTheory.PGame.neg_fuzzy_neg_iff
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [Fuzzy, Fuzzy, neg_lf_neg_iff, neg_lf_neg_iff, and_comm]
state_before: xl xr : Type u
x y : PGame
⊢ -x ‖ -y ↔ x ‖ y
state_after: no goals
Theorem: indicator_le_thickenedIndicator
File: Mathlib/Topology/MetricSpace/ThickenedIndicator.lean

tactic: intro a
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
δ : ℝ
δ_pos : 0 < δ
E : Set α
⊢ (E.indicator fun x => 1) ≤ ⇑(thickenedIndicator δ_pos E)
state_after: α : Type u_1
inst✝ : PseudoEMetricSpace α
δ : ℝ
δ_pos : 0 < δ
E : Set α
a : α
⊢ E.indicator (fun x => 1) a ≤ (thickenedIndicator δ_pos E) a

tactic: by_cases h : a ∈ E
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
δ : ℝ
δ_pos : 0 < δ
E : Set α
a : α
⊢ E.indicator (fun x => 1) a ≤ (thickenedIndicator δ_pos E) a
state_after: case pos
α : Type u_1
inst✝ : PseudoEMetricSpace α
δ : ℝ
δ_pos : 0 < δ
E : Set α
a : α
h : a ∈ E
⊢ E.indicator (fun x => 1) a ≤ (thickenedIndicator δ_pos E) a

case neg
α : Type u_1
inst✝ : PseudoEMetricSpace α
δ : ℝ
δ_pos : 0 < δ
E : Set α
a : α
h : a ∉ E
⊢ E.indicator (fun x => 1) a ≤ (thickenedIndicator δ_pos E) a

tactic: simp only [h, indicator_of_mem, thickenedIndicator_one δ_pos E h, le_refl]
state_before: case pos
α : Type u_1
inst✝ : PseudoEMetricSpace α
δ : ℝ
δ_pos : 0 < δ
E : Set α
a : α
h : a ∈ E
⊢ E.indicator (fun x => 1) a ≤ (thickenedIndicator δ_pos E) a
state_after: no goals

tactic: simp only [h, indicator_of_not_mem, not_false_iff, zero_le]
state_before: case neg
α : Type u_1
inst✝ : PseudoEMetricSpace α
δ : ℝ
δ_pos : 0 < δ
E : Set α
a : α
h : a ∉ E
⊢ E.indicator (fun x => 1) a ≤ (thickenedIndicator δ_pos E) a
state_after: no goals
Theorem: PresentedGroup.ext
File: Mathlib/GroupTheory/PresentedGroup.lean

tactic: ext
state_before: α : Type u_1
G : Type u_2
inst✝ : Group G
f : α → G
rels : Set (FreeGroup α)
h : ∀ r ∈ rels, (FreeGroup.lift f) r = 1
φ ψ : PresentedGroup rels →* G
hx : ∀ (x : α), φ (of x) = ψ (of x)
⊢ φ = ψ
state_after: case h.h
α : Type u_1
G : Type u_2
inst✝ : Group G
f : α → G
rels : Set (FreeGroup α)
h : ∀ r ∈ rels, (FreeGroup.lift f) r = 1
φ ψ : PresentedGroup rels →* G
hx : ∀ (x : α), φ (of x) = ψ (of x)
a✝ : α
⊢ (φ.comp (QuotientGroup.mk' (Subgroup.normalClosure rels))) (FreeGroup.of a✝) =
    (ψ.comp (QuotientGroup.mk' (Subgroup.normalClosure rels))) (FreeGroup.of a✝)

tactic: apply hx
state_before: case h.h
α : Type u_1
G : Type u_2
inst✝ : Group G
f : α → G
rels : Set (FreeGroup α)
h : ∀ r ∈ rels, (FreeGroup.lift f) r = 1
φ ψ : PresentedGroup rels →* G
hx : ∀ (x : α), φ (of x) = ψ (of x)
a✝ : α
⊢ (φ.comp (QuotientGroup.mk' (Subgroup.normalClosure rels))) (FreeGroup.of a✝) =
    (ψ.comp (QuotientGroup.mk' (Subgroup.normalClosure rels))) (FreeGroup.of a✝)
state_after: no goals
Theorem: CategoryTheory.Idempotents.Karoubi.hom_ext
File: Mathlib/CategoryTheory/Idempotents/Karoubi.lean

tactic: simpa [hom_ext_iff] using h
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
P Q : Karoubi C
f g : P ⟶ Q
h : f.f = g.f
⊢ f = g
state_after: no goals
Theorem: MeasureTheory.condexpIndL1_of_measure_eq_top
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean

tactic: simp only [condexpIndL1, hμs, eq_self_iff_true, not_true, Ne, dif_neg, not_false_iff,
  and_false_iff]
state_before: α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹² : RCLike 𝕜
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜 F'
inst✝⁷ : NormedSpace ℝ F'
inst✝⁶ : CompleteSpace F'
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedAddCommGroup G'
inst✝³ : NormedSpace ℝ G'
inst✝² : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝¹ : NormedSpace ℝ G
hm : m ≤ m0
inst✝ : SigmaFinite (μ.trim hm)
hμs : μ s = ⊤
x : G
⊢ condexpIndL1 hm μ s x = 0
state_after: no goals
Theorem: ContinuousMap.liftCover_coe'
File: Mathlib/Topology/ContinuousFunction/Basic.lean

tactic: delta liftCover'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f g : C(α, β)
ι : Type u_5
S : ι → Set α
φ : (i : ι) → C(↑(S i), β)
hφ : ∀ (i j : ι) (x : α) (hxi : x ∈ S i) (hxj : x ∈ S j), (φ i) ⟨x, hxi⟩ = (φ j) ⟨x, hxj⟩
hS : ∀ (x : α), ∃ i, S i ∈ 𝓝 x
A : Set (Set α)
F : (s : Set α) → s ∈ A → C(↑s, β)
hF :
  ∀ (s : Set α) (hs : s ∈ A) (t : Set α) (ht : t ∈ A) (x : α) (hxi : x ∈ s) (hxj : x ∈ t),
    (F s hs) ⟨x, hxi⟩ = (F t ht) ⟨x, hxj⟩
hA : ∀ (x : α), ∃ i ∈ A, i ∈ 𝓝 x
s : Set α
hs : s ∈ A
x : ↑s
x' : ↑↑⟨s, hs⟩ := x
⊢ (liftCover' A F hF hA) ↑x = (F s hs) x
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f g : C(α, β)
ι : Type u_5
S : ι → Set α
φ : (i : ι) → C(↑(S i), β)
hφ : ∀ (i j : ι) (x : α) (hxi : x ∈ S i) (hxj : x ∈ S j), (φ i) ⟨x, hxi⟩ = (φ j) ⟨x, hxj⟩
hS : ∀ (x : α), ∃ i, S i ∈ 𝓝 x
A : Set (Set α)
F : (s : Set α) → s ∈ A → C(↑s, β)
hF :
  ∀ (s : Set α) (hs : s ∈ A) (t : Set α) (ht : t ∈ A) (x : α) (hxi : x ∈ s) (hxj : x ∈ t),
    (F s hs) ⟨x, hxi⟩ = (F t ht) ⟨x, hxj⟩
hA : ∀ (x : α), ∃ i ∈ A, i ∈ 𝓝 x
s : Set α
hs : s ∈ A
x : ↑s
x' : ↑↑⟨s, hs⟩ := x
⊢ (let S := Subtype.val;
      let F_1 := fun i => F ↑i ⋯;
      liftCover S F_1 ⋯ ⋯)
      ↑x =
    (F s hs) x

tactic: exact liftCover_coe x'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f g : C(α, β)
ι : Type u_5
S : ι → Set α
φ : (i : ι) → C(↑(S i), β)
hφ : ∀ (i j : ι) (x : α) (hxi : x ∈ S i) (hxj : x ∈ S j), (φ i) ⟨x, hxi⟩ = (φ j) ⟨x, hxj⟩
hS : ∀ (x : α), ∃ i, S i ∈ 𝓝 x
A : Set (Set α)
F : (s : Set α) → s ∈ A → C(↑s, β)
hF :
  ∀ (s : Set α) (hs : s ∈ A) (t : Set α) (ht : t ∈ A) (x : α) (hxi : x ∈ s) (hxj : x ∈ t),
    (F s hs) ⟨x, hxi⟩ = (F t ht) ⟨x, hxj⟩
hA : ∀ (x : α), ∃ i ∈ A, i ∈ 𝓝 x
s : Set α
hs : s ∈ A
x : ↑s
x' : ↑↑⟨s, hs⟩ := x
⊢ (let S := Subtype.val;
      let F_1 := fun i => F ↑i ⋯;
      liftCover S F_1 ⋯ ⋯)
      ↑x =
    (F s hs) x
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.mem_basicOpen_top'
File: Mathlib/AlgebraicGeometry/Scheme.lean

tactic: fconstructor
state_before: R : CommRingCat
X : Scheme
V U✝ : Opens ↑↑X.toPresheafedSpace
f✝ g : ↑Γ(X, U✝)
U : Opens ↑↑X.toPresheafedSpace
f : ↑Γ(X, U)
x : ↑↑X.toPresheafedSpace
⊢ x ∈ X.basicOpen f ↔ ∃ (m : x ∈ U), IsUnit ((X.presheaf.germ ⟨x, m⟩) f)
state_after: case mp
R : CommRingCat
X : Scheme
V U✝ : Opens ↑↑X.toPresheafedSpace
f✝ g : ↑Γ(X, U✝)
U : Opens ↑↑X.toPresheafedSpace
f : ↑Γ(X, U)
x : ↑↑X.toPresheafedSpace
⊢ x ∈ X.basicOpen f → ∃ (m : x ∈ U), IsUnit ((X.presheaf.germ ⟨x, m⟩) f)

case mpr
R : CommRingCat
X : Scheme
V U✝ : Opens ↑↑X.toPresheafedSpace
f✝ g : ↑Γ(X, U✝)
U : Opens ↑↑X.toPresheafedSpace
f : ↑Γ(X, U)
x : ↑↑X.toPresheafedSpace
⊢ (∃ (m : x ∈ U), IsUnit ((X.presheaf.germ ⟨x, m⟩) f)) → x ∈ X.basicOpen f

tactic: rintro ⟨y, hy1, rfl⟩
state_before: case mp
R : CommRingCat
X : Scheme
V U✝ : Opens ↑↑X.toPresheafedSpace
f✝ g : ↑Γ(X, U✝)
U : Opens ↑↑X.toPresheafedSpace
f : ↑Γ(X, U)
x : ↑↑X.toPresheafedSpace
⊢ x ∈ X.basicOpen f → ∃ (m : x ∈ U), IsUnit ((X.presheaf.germ ⟨x, m⟩) f)
state_after: case mp.intro.intro
R : CommRingCat
X : Scheme
V U✝ : Opens ↑↑X.toPresheafedSpace
f✝ g : ↑Γ(X, U✝)
U : Opens ↑↑X.toPresheafedSpace
f : ↑Γ(X, U)
y : ↥U
hy1 : y ∈ {x | IsUnit ((X.toRingedSpace.presheaf.germ x) f)}
⊢ ∃ (m : ↑y ∈ U), IsUnit ((X.presheaf.germ ⟨↑y, m⟩) f)

tactic: exact ⟨y.2, hy1⟩
state_before: case mp.intro.intro
R : CommRingCat
X : Scheme
V U✝ : Opens ↑↑X.toPresheafedSpace
f✝ g : ↑Γ(X, U✝)
U : Opens ↑↑X.toPresheafedSpace
f : ↑Γ(X, U)
y : ↥U
hy1 : y ∈ {x | IsUnit ((X.toRingedSpace.presheaf.germ x) f)}
⊢ ∃ (m : ↑y ∈ U), IsUnit ((X.presheaf.germ ⟨↑y, m⟩) f)
state_after: no goals

tactic: rintro ⟨m, hm⟩
state_before: case mpr
R : CommRingCat
X : Scheme
V U✝ : Opens ↑↑X.toPresheafedSpace
f✝ g : ↑Γ(X, U✝)
U : Opens ↑↑X.toPresheafedSpace
f : ↑Γ(X, U)
x : ↑↑X.toPresheafedSpace
⊢ (∃ (m : x ∈ U), IsUnit ((X.presheaf.germ ⟨x, m⟩) f)) → x ∈ X.basicOpen f
state_after: case mpr.intro
R : CommRingCat
X : Scheme
V U✝ : Opens ↑↑X.toPresheafedSpace
f✝ g : ↑Γ(X, U✝)
U : Opens ↑↑X.toPresheafedSpace
f : ↑Γ(X, U)
x : ↑↑X.toPresheafedSpace
m : x ∈ U
hm : IsUnit ((X.presheaf.germ ⟨x, m⟩) f)
⊢ x ∈ X.basicOpen f

tactic: exact ⟨⟨x, m⟩, hm, rfl⟩
state_before: case mpr.intro
R : CommRingCat
X : Scheme
V U✝ : Opens ↑↑X.toPresheafedSpace
f✝ g : ↑Γ(X, U✝)
U : Opens ↑↑X.toPresheafedSpace
f : ↑Γ(X, U)
x : ↑↑X.toPresheafedSpace
m : x ∈ U
hm : IsUnit ((X.presheaf.germ ⟨x, m⟩) f)
⊢ x ∈ X.basicOpen f
state_after: no goals
Theorem: Orthonormal.inner_left_finsupp
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: rw [← inner_conj_symm, hv.inner_right_finsupp]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
v : ι → E
hv : Orthonormal 𝕜 v
l : ι →₀ 𝕜
i : ι
⊢ ⟪(Finsupp.total ι E 𝕜 v) l, v i⟫_𝕜 = (starRingEnd 𝕜) (l i)
state_after: no goals
Theorem: Nat.ofDigits_eq_foldr
File: Mathlib/Data/Nat/Digits.lean

tactic: induction' L with d L ih
state_before: n : ℕ
α : Type u_1
inst✝ : Semiring α
b : α
L : List ℕ
⊢ ofDigits b L = List.foldr (fun x y => ↑x + b * y) 0 L
state_after: case nil
n : ℕ
α : Type u_1
inst✝ : Semiring α
b : α
⊢ ofDigits b [] = List.foldr (fun x y => ↑x + b * y) 0 []

case cons
n : ℕ
α : Type u_1
inst✝ : Semiring α
b : α
d : ℕ
L : List ℕ
ih : ofDigits b L = List.foldr (fun x y => ↑x + b * y) 0 L
⊢ ofDigits b (d :: L) = List.foldr (fun x y => ↑x + b * y) 0 (d :: L)

tactic: rfl
state_before: case nil
n : ℕ
α : Type u_1
inst✝ : Semiring α
b : α
⊢ ofDigits b [] = List.foldr (fun x y => ↑x + b * y) 0 []
state_after: no goals

tactic: dsimp [ofDigits]
state_before: case cons
n : ℕ
α : Type u_1
inst✝ : Semiring α
b : α
d : ℕ
L : List ℕ
ih : ofDigits b L = List.foldr (fun x y => ↑x + b * y) 0 L
⊢ ofDigits b (d :: L) = List.foldr (fun x y => ↑x + b * y) 0 (d :: L)
state_after: case cons
n : ℕ
α : Type u_1
inst✝ : Semiring α
b : α
d : ℕ
L : List ℕ
ih : ofDigits b L = List.foldr (fun x y => ↑x + b * y) 0 L
⊢ ↑d + b * ofDigits b L = ↑d + b * List.foldr (fun x y => ↑x + b * y) 0 L

tactic: rw [ih]
state_before: case cons
n : ℕ
α : Type u_1
inst✝ : Semiring α
b : α
d : ℕ
L : List ℕ
ih : ofDigits b L = List.foldr (fun x y => ↑x + b * y) 0 L
⊢ ↑d + b * ofDigits b L = ↑d + b * List.foldr (fun x y => ↑x + b * y) 0 L
state_after: no goals
Theorem: Equiv.Perm.isCycle_of_prime_order'
File: Mathlib/GroupTheory/Perm/Cycle/Type.lean

tactic: classical exact isCycle_of_prime_order h1 (lt_of_le_of_lt σ.support.card_le_univ h2)
state_before: α : Type u_1
inst✝ : Fintype α
σ : Perm α
h1 : Nat.Prime (orderOf σ)
h2 : Fintype.card α < 2 * orderOf σ
⊢ σ.IsCycle
state_after: no goals

tactic: exact isCycle_of_prime_order h1 (lt_of_le_of_lt σ.support.card_le_univ h2)
state_before: α : Type u_1
inst✝ : Fintype α
σ : Perm α
h1 : Nat.Prime (orderOf σ)
h2 : Fintype.card α < 2 * orderOf σ
⊢ σ.IsCycle
state_after: no goals
Theorem: WithZeroTopology.Iio_mem_nhds
File: Mathlib/Topology/Algebra/WithZeroTopology.lean

tactic: rcases eq_or_ne γ₁ 0 with (rfl | h₀) <;> simp [*, h.ne', Iio_mem_nhds_zero]
state_before: α : Type u_1
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
γ γ₁ γ₂ : Γ₀
l : Filter α
f : α → Γ₀
h : γ₁ < γ₂
⊢ Iio γ₂ ∈ 𝓝 γ₁
state_after: no goals
Theorem: toIcoMod_add_zsmul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [toIcoMod, toIcoDiv_add_zsmul, toIcoMod, add_smul]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
m : ℤ
⊢ toIcoMod hp a (b + m • p) = toIcoMod hp a b
state_after: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
m : ℤ
⊢ b + m • p - (toIcoDiv hp a b • p + m • p) = b - toIcoDiv hp a b • p

tactic: abel
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
m : ℤ
⊢ b + m • p - (toIcoDiv hp a b • p + m • p) = b - toIcoDiv hp a b • p
state_after: no goals
Theorem: Set.Ioo_inter_Ioi
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
a a₁ a₂ b b₁ b₂ c d : α
⊢ Ioo a b ∩ Ioi c = Ioo (max a c) b
state_after: case h
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
a a₁ a₂ b b₁ b₂ c d x✝ : α
⊢ x✝ ∈ Ioo a b ∩ Ioi c ↔ x✝ ∈ Ioo (max a c) b

tactic: simp_rw [mem_inter_iff, mem_Ioo, mem_Ioi, max_lt_iff, and_assoc, and_comm]
state_before: case h
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
a a₁ a₂ b b₁ b₂ c d x✝ : α
⊢ x✝ ∈ Ioo a b ∩ Ioi c ↔ x✝ ∈ Ioo (max a c) b
state_after: no goals
Theorem: HurwitzZeta.completedCosZeta_residue_zero
File: Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean

tactic: have h1 : Tendsto (fun s : ℂ ↦ s * _) (𝓝[≠] 0)
  (𝓝 (-1)) := (hurwitzEvenFEPair a).symm.Λ_residue_zero
state_before: a : UnitAddCircle
⊢ Tendsto (fun s => s * completedCosZeta a s) (𝓝[≠] 0) (𝓝 (-1))
state_after: a : UnitAddCircle
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).symm.Λ s) (𝓝[≠] 0) (𝓝 (-1))
⊢ Tendsto (fun s => s * completedCosZeta a s) (𝓝[≠] 0) (𝓝 (-1))

tactic: refine (h1.comp <| zero_div (2 : ℂ) ▸ (tendsto_div_two_punctured_nhds 0)).congr (fun s ↦ ?_)
state_before: a : UnitAddCircle
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).symm.Λ s) (𝓝[≠] 0) (𝓝 (-1))
⊢ Tendsto (fun s => s * completedCosZeta a s) (𝓝[≠] 0) (𝓝 (-1))
state_after: a : UnitAddCircle
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).symm.Λ s) (𝓝[≠] 0) (𝓝 (-1))
s : ℂ
⊢ ((fun s => s * (hurwitzEvenFEPair a).symm.Λ s) ∘ fun s => s / 2) s = s * completedCosZeta a s

tactic: rw [completedCosZeta, Function.comp_apply, div_mul_eq_mul_div, mul_div_assoc]
state_before: a : UnitAddCircle
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).symm.Λ s) (𝓝[≠] 0) (𝓝 (-1))
s : ℂ
⊢ ((fun s => s * (hurwitzEvenFEPair a).symm.Λ s) ∘ fun s => s / 2) s = s * completedCosZeta a s
state_after: no goals
Theorem: Vector.get_set_same
File: Mathlib/Data/Vector/Basic.lean

tactic: cases v
state_before: n : ℕ
α : Type u_1
β : Type u_2
γ : Type u_3
v : Vector α n
i : Fin n
a : α
⊢ (v.set i a).get i = a
state_after: case mk
n : ℕ
α : Type u_1
β : Type u_2
γ : Type u_3
i : Fin n
a : α
val✝ : List α
property✝ : val✝.length = n
⊢ (set ⟨val✝, property✝⟩ i a).get i = a

tactic: cases i
state_before: case mk
n : ℕ
α : Type u_1
β : Type u_2
γ : Type u_3
i : Fin n
a : α
val✝ : List α
property✝ : val✝.length = n
⊢ (set ⟨val✝, property✝⟩ i a).get i = a
state_after: case mk.mk
n : ℕ
α : Type u_1
β : Type u_2
γ : Type u_3
a : α
val✝¹ : List α
property✝ : val✝¹.length = n
val✝ : ℕ
isLt✝ : val✝ < n
⊢ (set ⟨val✝¹, property✝⟩ ⟨val✝, isLt✝⟩ a).get ⟨val✝, isLt✝⟩ = a

tactic: simp [Vector.set, get_eq_get]
state_before: case mk.mk
n : ℕ
α : Type u_1
β : Type u_2
γ : Type u_3
a : α
val✝¹ : List α
property✝ : val✝¹.length = n
val✝ : ℕ
isLt✝ : val✝ < n
⊢ (set ⟨val✝¹, property✝⟩ ⟨val✝, isLt✝⟩ a).get ⟨val✝, isLt✝⟩ = a
state_after: no goals
Theorem: Rat.cast_abs
File: Mathlib/Data/Rat/Cast/Order.lean

tactic: simp [abs_eq_max_neg]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
p q✝ : ℚ
K : Type u_5
inst✝ : LinearOrderedField K
q : ℚ
⊢ ↑|q| = |↑q|
state_after: no goals