1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: OpenEmbedding.isQuasiSeparated_iff
File: Mathlib/Topology/QuasiSeparated.lean

tactic: refine ⟨fun hs => hs.image_of_embedding h.toEmbedding, ?_⟩
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
h : OpenEmbedding f
s : Set α
⊢ IsQuasiSeparated s ↔ IsQuasiSeparated (f '' s)
state_after: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
h : OpenEmbedding f
s : Set α
⊢ IsQuasiSeparated (f '' s) → IsQuasiSeparated s

tactic: intro H U V hU hU' hU'' hV hV' hV''
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
h : OpenEmbedding f
s : Set α
⊢ IsQuasiSeparated (f '' s) → IsQuasiSeparated s
state_after: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
h : OpenEmbedding f
s : Set α
H : IsQuasiSeparated (f '' s)
U V : Set α
hU : U ⊆ s
hU' : IsOpen U
hU'' : IsCompact U
hV : V ⊆ s
hV' : IsOpen V
hV'' : IsCompact V
⊢ IsCompact (U ∩ V)

tactic: rw [h.toEmbedding.isCompact_iff, Set.image_inter h.inj]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
h : OpenEmbedding f
s : Set α
H : IsQuasiSeparated (f '' s)
U V : Set α
hU : U ⊆ s
hU' : IsOpen U
hU'' : IsCompact U
hV : V ⊆ s
hV' : IsOpen V
hV'' : IsCompact V
⊢ IsCompact (U ∩ V)
state_after: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
h : OpenEmbedding f
s : Set α
H : IsQuasiSeparated (f '' s)
U V : Set α
hU : U ⊆ s
hU' : IsOpen U
hU'' : IsCompact U
hV : V ⊆ s
hV' : IsOpen V
hV'' : IsCompact V
⊢ IsCompact (f '' U ∩ f '' V)

tactic: exact
  H (f '' U) (f '' V) (Set.image_subset _ hU) (h.isOpenMap _ hU') (hU''.image h.continuous)
    (Set.image_subset _ hV) (h.isOpenMap _ hV') (hV''.image h.continuous)
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
h : OpenEmbedding f
s : Set α
H : IsQuasiSeparated (f '' s)
U V : Set α
hU : U ⊆ s
hU' : IsOpen U
hU'' : IsCompact U
hV : V ⊆ s
hV' : IsOpen V
hV'' : IsCompact V
⊢ IsCompact (f '' U ∩ f '' V)
state_after: no goals
Theorem: CategoryTheory.Limits.colimit.pre_map
File: Mathlib/CategoryTheory/Limits/HasLimits.lean

tactic: ext
state_before: J : Type u₁
inst✝⁴ : Category.{v₁, u₁} J
K : Type u₂
inst✝³ : Category.{v₂, u₂} K
C : Type u
inst✝² : Category.{v, u} C
F : J ⥤ C
inst✝¹ : HasColimitsOfShape J C
G : J ⥤ C
α : F ⟶ G
inst✝ : HasColimitsOfShape K C
E : K ⥤ J
⊢ pre F E ≫ colim.map α = colim.map (whiskerLeft E α) ≫ pre G E
state_after: case w
J : Type u₁
inst✝⁴ : Category.{v₁, u₁} J
K : Type u₂
inst✝³ : Category.{v₂, u₂} K
C : Type u
inst✝² : Category.{v, u} C
F : J ⥤ C
inst✝¹ : HasColimitsOfShape J C
G : J ⥤ C
α : F ⟶ G
inst✝ : HasColimitsOfShape K C
E : K ⥤ J
j✝ : K
⊢ ι (E ⋙ F) j✝ ≫ pre F E ≫ colim.map α = ι (E ⋙ F) j✝ ≫ colim.map (whiskerLeft E α) ≫ pre G E

tactic: rw [← assoc, colimit.ι_pre, colimit.ι_map, ← assoc, colimit.ι_map, assoc, colimit.ι_pre]
state_before: case w
J : Type u₁
inst✝⁴ : Category.{v₁, u₁} J
K : Type u₂
inst✝³ : Category.{v₂, u₂} K
C : Type u
inst✝² : Category.{v, u} C
F : J ⥤ C
inst✝¹ : HasColimitsOfShape J C
G : J ⥤ C
α : F ⟶ G
inst✝ : HasColimitsOfShape K C
E : K ⥤ J
j✝ : K
⊢ ι (E ⋙ F) j✝ ≫ pre F E ≫ colim.map α = ι (E ⋙ F) j✝ ≫ colim.map (whiskerLeft E α) ≫ pre G E
state_after: case w
J : Type u₁
inst✝⁴ : Category.{v₁, u₁} J
K : Type u₂
inst✝³ : Category.{v₂, u₂} K
C : Type u
inst✝² : Category.{v, u} C
F : J ⥤ C
inst✝¹ : HasColimitsOfShape J C
G : J ⥤ C
α : F ⟶ G
inst✝ : HasColimitsOfShape K C
E : K ⥤ J
j✝ : K
⊢ α.app (E.obj j✝) ≫ ι G (E.obj j✝) = (whiskerLeft E α).app j✝ ≫ ι G (E.obj j✝)

tactic: rfl
state_before: case w
J : Type u₁
inst✝⁴ : Category.{v₁, u₁} J
K : Type u₂
inst✝³ : Category.{v₂, u₂} K
C : Type u
inst✝² : Category.{v, u} C
F : J ⥤ C
inst✝¹ : HasColimitsOfShape J C
G : J ⥤ C
α : F ⟶ G
inst✝ : HasColimitsOfShape K C
E : K ⥤ J
j✝ : K
⊢ α.app (E.obj j✝) ≫ ι G (E.obj j✝) = (whiskerLeft E α).app j✝ ≫ ι G (E.obj j✝)
state_after: no goals
Theorem: FirstOrder.Language.Substructure.mem_iInf
File: Mathlib/ModelTheory/Substructures.lean

tactic: simp only [iInf, mem_sInf, Set.forall_mem_range]
state_before: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
S✝ : L.Substructure M
ι : Sort u_3
S : ι → L.Substructure M
x : M
⊢ x ∈ ⨅ i, S i ↔ ∀ (i : ι), x ∈ S i
state_after: no goals
Theorem: List.sublistsLen_length
File: Mathlib/Data/List/Sublists.lean

tactic: simp only [length, sublistsLen_succ_cons, sublistsLen_length, map,
  sublistsLen_of_length_lt (lt_succ_self _), nil_append]
state_before: α : Type u
β : Type v
γ : Type w
a : α
l : List α
⊢ sublistsLen (a :: l).length (a :: l) = [a :: l]
state_after: no goals
Theorem: YoungDiagram.ofRowLens_to_rowLens_eq_self
File: Mathlib/Combinatorics/Young/YoungDiagram.lean

tactic: ext ⟨i, j⟩
state_before: μ : YoungDiagram
⊢ ofRowLens μ.rowLens ⋯ = μ
state_after: case cells.a.mk
μ : YoungDiagram
i j : ℕ
⊢ (i, j) ∈ (ofRowLens μ.rowLens ⋯).cells ↔ (i, j) ∈ μ.cells

tactic: simp only [mem_cells, mem_ofRowLens, length_rowLens, get_rowLens]
state_before: case cells.a.mk
μ : YoungDiagram
i j : ℕ
⊢ (i, j) ∈ (ofRowLens μ.rowLens ⋯).cells ↔ (i, j) ∈ μ.cells
state_after: case cells.a.mk
μ : YoungDiagram
i j : ℕ
⊢ (∃ (h : i < μ.colLen 0), j < μ.rowLens.get ⟨i, ⋯⟩) ↔ (i, j) ∈ μ

tactic: simpa [← mem_iff_lt_colLen, mem_iff_lt_rowLen] using j.zero_le.trans_lt
state_before: case cells.a.mk
μ : YoungDiagram
i j : ℕ
⊢ (∃ (h : i < μ.colLen 0), j < μ.rowLens.get ⟨i, ⋯⟩) ↔ (i, j) ∈ μ
state_after: no goals
Theorem: GeneralizedContinuedFraction.first_denominator_eq
File: Mathlib/Algebra/ContinuedFractions/Translations.lean

tactic: simp [denom_eq_conts_b, first_continuant_eq zeroth_s_eq]
state_before: K : Type u_1
g : GeneralizedContinuedFraction K
n : ℕ
inst✝ : DivisionRing K
gp : Pair K
zeroth_s_eq : g.s.get? 0 = some gp
⊢ g.denominators 1 = gp.b
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.restrictFunctor_map_ofRestrict
File: Mathlib/AlgebraicGeometry/Restrict.lean

tactic: dsimp [restrict, ofRestrict, LocallyRingedSpace.ofRestrict]
state_before: C : Type u₁
inst✝ : Category.{v, u₁} C
X : Scheme
U V : Opens ↑↑X.toPresheafedSpace
i : U ⟶ V
⊢ Set.range ⇑(ιOpens U).val.base ⊆ Set.range ⇑(ιOpens V).val.base
state_after: C : Type u₁
inst✝ : Category.{v, u₁} C
X : Scheme
U V : Opens ↑↑X.toPresheafedSpace
i : U ⟶ V
⊢ Set.range Subtype.val ⊆ Set.range Subtype.val

tactic: rw [Subtype.range_val, Subtype.range_val]
state_before: C : Type u₁
inst✝ : Category.{v, u₁} C
X : Scheme
U V : Opens ↑↑X.toPresheafedSpace
i : U ⟶ V
⊢ Set.range Subtype.val ⊆ Set.range Subtype.val
state_after: C : Type u₁
inst✝ : Category.{v, u₁} C
X : Scheme
U V : Opens ↑↑X.toPresheafedSpace
i : U ⟶ V
⊢ ↑U ⊆ ↑V

tactic: exact i.le
state_before: C : Type u₁
inst✝ : Category.{v, u₁} C
X : Scheme
U V : Opens ↑↑X.toPresheafedSpace
i : U ⟶ V
⊢ ↑U ⊆ ↑V
state_after: no goals
Theorem: ZFSet.IsTransitive.sUnion
File: Mathlib/SetTheory/ZFC/Ordinal.lean

tactic: rcases mem_sUnion.1 hy with ⟨w, hw, hw'⟩
state_before: x y✝ z✝ : ZFSet
h : x.IsTransitive
y : ZFSet
hy : y ∈ ⋃₀ x
z : ZFSet
hz : z ∈ y
⊢ z ∈ ⋃₀ x
state_after: case intro.intro
x y✝ z✝ : ZFSet
h : x.IsTransitive
y : ZFSet
hy : y ∈ ⋃₀ x
z : ZFSet
hz : z ∈ y
w : ZFSet
hw : w ∈ x
hw' : y ∈ w
⊢ z ∈ ⋃₀ x

tactic: exact mem_sUnion_of_mem hz (h.mem_trans hw' hw)
state_before: case intro.intro
x y✝ z✝ : ZFSet
h : x.IsTransitive
y : ZFSet
hy : y ∈ ⋃₀ x
z : ZFSet
hz : z ∈ y
w : ZFSet
hw : w ∈ x
hw' : y ∈ w
⊢ z ∈ ⋃₀ x
state_after: no goals
Theorem: CochainComplex.mappingCone.inl_snd_assoc
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

tactic: obtain rfl : e = d := by omega
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
d e f : ℤ
γ : Cochain G K d
he : 0 + d = e
hf : -1 + e = f
⊢ (inl φ).comp ((snd φ).comp γ he) hf = 0
state_after: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
e f : ℤ
hf : -1 + e = f
γ : Cochain G K e
he : 0 + e = e
⊢ (inl φ).comp ((snd φ).comp γ he) hf = 0

tactic: rw [← Cochain.comp_assoc_of_second_is_zero_cochain, inl_snd, Cochain.zero_comp]
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
e f : ℤ
hf : -1 + e = f
γ : Cochain G K e
he : 0 + e = e
⊢ (inl φ).comp ((snd φ).comp γ he) hf = 0
state_after: no goals

tactic: omega
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
d e f : ℤ
γ : Cochain G K d
he : 0 + d = e
hf : -1 + e = f
⊢ e = d
state_after: no goals
Theorem: Nat.pow_lt_ascFactorial
File: Mathlib/Data/Nat/Factorial/Basic.lean

tactic: rintro ⟨⟩
state_before: n : ℕ
⊢ 2 ≤ 0 → (n + 1) ^ 0 < (n + 1).ascFactorial 0
state_after: no goals

tactic: intro
state_before: n : ℕ
⊢ 2 ≤ 1 → (n + 1) ^ 1 < (n + 1).ascFactorial 1
state_after: n : ℕ
a✝ : 2 ≤ 1
⊢ (n + 1) ^ 1 < (n + 1).ascFactorial 1

tactic: contradiction
state_before: n : ℕ
a✝ : 2 ≤ 1
⊢ (n + 1) ^ 1 < (n + 1).ascFactorial 1
state_after: no goals
Theorem: ProbabilityTheory.kernel.setLIntegral_deterministic
File: Mathlib/Probability/Kernel/Basic.lean

tactic: rw [kernel.deterministic_apply, setLIntegral_dirac f s]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α β)
f : β → ℝ≥0∞
g : α → β
a : α
hg : Measurable g
inst✝¹ : MeasurableSingletonClass β
s : Set β
inst✝ : Decidable (g a ∈ s)
⊢ ∫⁻ (x : β) in s, f x ∂(deterministic g hg) a = if g a ∈ s then f (g a) else 0
state_after: no goals
Theorem: Fin.predAbove_pred_of_lt
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [predAbove_of_lt_succ _ _ (succ_pred _ _ ▸ h)]
state_before: n m : ℕ
p i : Fin (n + 1)
h : i < p
hp : optParam (p ≠ 0) ⋯
hi : optParam (i ≠ last n) ⋯
⊢ (p.pred hp).predAbove i = i.castPred hi
state_after: no goals
Theorem: Submodule.torsionBySet_eq_torsionBySet_span
File: Mathlib/Algebra/Module/Torsion.lean

tactic: refine le_antisymm (fun x hx => ?_) (torsionBySet_le_torsionBySet_of_subset subset_span)
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
⊢ torsionBySet R M s = torsionBySet R M ↑(Ideal.span s)
state_after: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
hx : x ∈ torsionBySet R M s
⊢ x ∈ torsionBySet R M ↑(Ideal.span s)

tactic: rw [mem_torsionBySet_iff] at hx ⊢
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
hx : x ∈ torsionBySet R M s
⊢ x ∈ torsionBySet R M ↑(Ideal.span s)
state_after: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
hx : ∀ (a : ↑s), ↑a • x = 0
⊢ ∀ (a : ↑↑(Ideal.span s)), ↑a • x = 0

tactic: suffices Ideal.span s ≤ Ideal.torsionOf R M x by
  rintro ⟨a, ha⟩
  exact this ha
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
hx : ∀ (a : ↑s), ↑a • x = 0
⊢ ∀ (a : ↑↑(Ideal.span s)), ↑a • x = 0
state_after: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
hx : ∀ (a : ↑s), ↑a • x = 0
⊢ Ideal.span s ≤ Ideal.torsionOf R M x

tactic: rw [Ideal.span_le]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
hx : ∀ (a : ↑s), ↑a • x = 0
⊢ Ideal.span s ≤ Ideal.torsionOf R M x
state_after: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
hx : ∀ (a : ↑s), ↑a • x = 0
⊢ s ⊆ ↑(Ideal.torsionOf R M x)

tactic: exact fun a ha => hx ⟨a, ha⟩
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
hx : ∀ (a : ↑s), ↑a • x = 0
⊢ s ⊆ ↑(Ideal.torsionOf R M x)
state_after: no goals

tactic: rintro ⟨a, ha⟩
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
hx : ∀ (a : ↑s), ↑a • x = 0
this : Ideal.span s ≤ Ideal.torsionOf R M x
⊢ ∀ (a : ↑↑(Ideal.span s)), ↑a • x = 0
state_after: case mk
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ : R
x : M
hx : ∀ (a : ↑s), ↑a • x = 0
this : Ideal.span s ≤ Ideal.torsionOf R M x
a : R
ha : a ∈ ↑(Ideal.span s)
⊢ ↑⟨a, ha⟩ • x = 0

tactic: exact this ha
state_before: case mk
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ : R
x : M
hx : ∀ (a : ↑s), ↑a • x = 0
this : Ideal.span s ≤ Ideal.torsionOf R M x
a : R
ha : a ∈ ↑(Ideal.span s)
⊢ ↑⟨a, ha⟩ • x = 0
state_after: no goals
Theorem: Real.arcsin_le_iff_le_sin
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: rw [← arcsin_sin' hy, strictMonoOn_arcsin.le_iff_le hx (sin_mem_Icc _), arcsin_sin' hy]
state_before: x✝ y✝ x y : ℝ
hx : x ∈ Icc (-1) 1
hy : y ∈ Icc (-(π / 2)) (π / 2)
⊢ arcsin x ≤ y ↔ x ≤ sin y
state_after: no goals
Theorem: continuousMul_iInf
File: Mathlib/Topology/Algebra/Monoid.lean

tactic: exact continuousMul_sInf (Set.forall_mem_range.mpr h')
state_before: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
X : Type u_5
inst✝¹ : TopologicalSpace X
ι' : Sort u_6
inst✝ : Mul M
ts : ι' → TopologicalSpace M
h' : ∀ (i : ι'), ContinuousMul M
⊢ ContinuousMul M
state_after: no goals
Theorem: MeasureTheory.measurePreserving_mul_prod
File: Mathlib/MeasureTheory/Group/Prod.lean

tactic: apply measurePreserving_prod_mul_swap_right μ ν
state_before: G : Type u_1
inst✝⁵ : MeasurableSpace G
inst✝⁴ : Group G
inst✝³ : MeasurableMul₂ G
μ ν : Measure G
inst✝² : SigmaFinite ν
inst✝¹ : SigmaFinite μ
s : Set G
inst✝ : μ.IsMulRightInvariant
⊢ MeasurePreserving ?m.104251 ?m.104247 (?m.104161.prod ?m.104162)
state_after: no goals
Theorem: Asymptotics.IsBigOWith.eventually_mul_div_cancel
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simpa [hv] using hy
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
u v : α → 𝕜
h : IsBigOWith c l u v
y : α
hy : ‖u y‖ ≤ c * ‖v y‖
hv : v y = 0
⊢ u y = 0
state_after: no goals
Theorem: WittVector.init_init
File: Mathlib/RingTheory/WittVector/InitTail.lean

tactic: rw [ext_iff]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n✝ : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
n : ℕ
⊢ init n (init n x) = init n x
state_after: p : ℕ
hp : Fact (Nat.Prime p)
n✝ : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
n : ℕ
⊢ ∀ (n_1 : ℕ), (init n (init n x)).coeff n_1 = (init n x).coeff n_1

tactic: intro i
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n✝ : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
n : ℕ
⊢ ∀ (n_1 : ℕ), (init n (init n x)).coeff n_1 = (init n x).coeff n_1
state_after: p : ℕ
hp : Fact (Nat.Prime p)
n✝ : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
n i : ℕ
⊢ (init n (init n x)).coeff i = (init n x).coeff i

tactic: simp only [WittVector.init, WittVector.select, WittVector.coeff_mk]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n✝ : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
n i : ℕ
⊢ (init n (init n x)).coeff i = (init n x).coeff i
state_after: p : ℕ
hp : Fact (Nat.Prime p)
n✝ : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
n i : ℕ
⊢ (if i < n then if i < n then x.coeff i else 0 else 0) = if i < n then x.coeff i else 0

tactic: by_cases hi : i < n <;> simp [hi]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n✝ : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
n i : ℕ
⊢ (if i < n then if i < n then x.coeff i else 0 else 0) = if i < n then x.coeff i else 0
state_after: no goals
Theorem: ProbabilityTheory.kernel.iIndepFun.ae_isProbabilityMeasure
File: Mathlib/Probability/Independence/Kernel.lean

tactic: simpa [isProbabilityMeasure_iff] using h.meas_biInter (S := ∅) (s := fun _ ↦ Set.univ)
state_before: α : Type u_1
Ω : Type u_2
ι : Type u_3
β✝ : Type u_4
β' : Type u_5
γ : Type u_6
γ' : Type u_7
_mα : MeasurableSpace α
_mΩ : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μ : Measure α
f✝ : Ω → β✝
g : Ω → β'
β : ι → Type u_8
m : (i : ι) → MeasurableSpace (β i)
f : (i : ι) → Ω → β i
h : iIndepFun m f κ μ
⊢ ∀ᵐ (a : α) ∂μ, IsProbabilityMeasure (κ a)
state_after: no goals
Theorem: CategoryTheory.Limits.IsZero.of_epi
File: Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean

tactic: have hf := i.eq_zero_of_src f
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
inst✝ : Epi f
i : IsZero X
⊢ IsZero Y
state_after: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
inst✝ : Epi f
i : IsZero X
hf : f = 0
⊢ IsZero Y

tactic: subst hf
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
inst✝ : Epi f
i : IsZero X
hf : f = 0
⊢ IsZero Y
state_after: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y : C
i : IsZero X
inst✝ : Epi 0
⊢ IsZero Y

tactic: exact IsZero.of_epi_zero X Y
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y : C
i : IsZero X
inst✝ : Epi 0
⊢ IsZero Y
state_after: no goals
Theorem: MulAction.mem_stabilizer_finset'
File: Mathlib/Algebra/Pointwise/Stabilizer.lean

tactic: rw [← Subgroup.inv_mem_iff, mem_stabilizer_finset_iff_subset_smul_finset]
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 α
⊢ a ∈ stabilizer G s ↔ ∀ ⦃b : α⦄, b ∈ s → a • b ∈ s
state_after: 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 α
⊢ s ⊆ a⁻¹ • s ↔ ∀ ⦃b : α⦄, b ∈ s → a • b ∈ s

tactic: simp_rw [← Finset.mem_inv_smul_finset_iff, Finset.subset_iff]
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 α
⊢ s ⊆ a⁻¹ • s ↔ ∀ ⦃b : α⦄, b ∈ s → a • b ∈ s
state_after: no goals
Theorem: ModuleCat.cycles'_ext
File: Mathlib/Algebra/Homology/ModuleCat.lean

tactic: apply_fun (C.cycles' i).arrow using (ModuleCat.mono_iff_injective _).mp (cycles' C i).arrow_mono
state_before: R : Type v
inst✝ : Ring R
ι : Type u_1
c : ComplexShape ι
C✝ D C : HomologicalComplex (ModuleCat R) c
i : ι
x y : ↑(Subobject.underlying.obj (C.cycles' i))
w : (C.cycles' i).arrow x = (C.cycles' i).arrow y
⊢ x = y
state_after: R : Type v
inst✝ : Ring R
ι : Type u_1
c : ComplexShape ι
C✝ D C : HomologicalComplex (ModuleCat R) c
i : ι
x y : ↑(Subobject.underlying.obj (C.cycles' i))
w : (C.cycles' i).arrow x = (C.cycles' i).arrow y
⊢ (C.cycles' i).arrow x = (C.cycles' i).arrow y

tactic: exact w
state_before: R : Type v
inst✝ : Ring R
ι : Type u_1
c : ComplexShape ι
C✝ D C : HomologicalComplex (ModuleCat R) c
i : ι
x y : ↑(Subobject.underlying.obj (C.cycles' i))
w : (C.cycles' i).arrow x = (C.cycles' i).arrow y
⊢ (C.cycles' i).arrow x = (C.cycles' i).arrow y
state_after: no goals
Theorem: monotoneOn_of_hasDerivWithinAt_nonneg
File: Mathlib/Analysis/Calculus/MeanValue.lean

tactic: rw [deriv_eqOn isOpen_interior hf' hx]
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
D : Set ℝ
hD : Convex ℝ D
f f' : ℝ → ℝ
hf : ContinuousOn f D
hf' : ∀ x ∈ interior D, HasDerivWithinAt f (f' x) (interior D) x
hf'₀ : ∀ x ∈ interior D, 0 ≤ f' x
x : ℝ
hx : x ∈ interior D
⊢ 0 ≤ deriv f x
state_after: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
D : Set ℝ
hD : Convex ℝ D
f f' : ℝ → ℝ
hf : ContinuousOn f D
hf' : ∀ x ∈ interior D, HasDerivWithinAt f (f' x) (interior D) x
hf'₀ : ∀ x ∈ interior D, 0 ≤ f' x
x : ℝ
hx : x ∈ interior D
⊢ 0 ≤ f' x

tactic: exact hf'₀ _ hx
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
D : Set ℝ
hD : Convex ℝ D
f f' : ℝ → ℝ
hf : ContinuousOn f D
hf' : ∀ x ∈ interior D, HasDerivWithinAt f (f' x) (interior D) x
hf'₀ : ∀ x ∈ interior D, 0 ≤ f' x
x : ℝ
hx : x ∈ interior D
⊢ 0 ≤ f' x
state_after: no goals
Theorem: Subalgebra.fg_of_fg_map
File: Mathlib/RingTheory/Adjoin/FG.lean

tactic: rw [← Algebra.adjoin_image, Finset.coe_preimage, Set.image_preimage_eq_of_subset, hs]
state_before: R : Type u
A : Type v
B : Type w
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : Semiring B
inst✝ : Algebra R B
S : Subalgebra R A
f : A →ₐ[R] B
hf : Function.Injective ⇑f
hs✝ : (map f S).FG
s : Finset B
hs : Algebra.adjoin R ↑s = map f S
⊢ map f (Algebra.adjoin R ↑(s.preimage ⇑f ⋯)) = map f S
state_after: R : Type u
A : Type v
B : Type w
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : Semiring B
inst✝ : Algebra R B
S : Subalgebra R A
f : A →ₐ[R] B
hf : Function.Injective ⇑f
hs✝ : (map f S).FG
s : Finset B
hs : Algebra.adjoin R ↑s = map f S
⊢ ↑s ⊆ Set.range ⇑f

tactic: rw [← AlgHom.coe_range, ← Algebra.adjoin_le_iff, hs, ← Algebra.map_top]
state_before: R : Type u
A : Type v
B : Type w
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : Semiring B
inst✝ : Algebra R B
S : Subalgebra R A
f : A →ₐ[R] B
hf : Function.Injective ⇑f
hs✝ : (map f S).FG
s : Finset B
hs : Algebra.adjoin R ↑s = map f S
⊢ ↑s ⊆ Set.range ⇑f
state_after: R : Type u
A : Type v
B : Type w
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : Semiring B
inst✝ : Algebra R B
S : Subalgebra R A
f : A →ₐ[R] B
hf : Function.Injective ⇑f
hs✝ : (map f S).FG
s : Finset B
hs : Algebra.adjoin R ↑s = map f S
⊢ map f S ≤ map f ⊤

tactic: exact map_mono le_top
state_before: R : Type u
A : Type v
B : Type w
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : Semiring B
inst✝ : Algebra R B
S : Subalgebra R A
f : A →ₐ[R] B
hf : Function.Injective ⇑f
hs✝ : (map f S).FG
s : Finset B
hs : Algebra.adjoin R ↑s = map f S
⊢ map f S ≤ map f ⊤
state_after: no goals
Theorem: Set.Ioo_insert_left
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: rw [insert_eq, union_comm, Ioo_union_left h]
state_before: α : Type u_1
β : Type u_2
inst✝ : PartialOrder α
a b c : α
h : a < b
⊢ insert a (Ioo a b) = Ico a b
state_after: no goals
Theorem: MeasureTheory.measure_diff
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [measure_diff' _ h₂ h_fin, union_eq_self_of_subset_right h]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h : s₂ ⊆ s₁
h₂ : MeasurableSet s₂
h_fin : μ s₂ ≠ ⊤
⊢ μ (s₁ \ s₂) = μ s₁ - μ s₂
state_after: no goals