1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CliffordAlgebra.changeForm_self_apply
File: Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean

tactic: induction' x using CliffordAlgebra.left_induction with r x y hx hy m x hx
state_before: R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
x : CliffordAlgebra Q
⊢ (changeForm ⋯) x = x
state_after: case algebraMap
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
r : R
⊢ (changeForm ⋯) ((algebraMap R (CliffordAlgebra Q)) r) = (algebraMap R (CliffordAlgebra Q)) r

case add
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
x y : CliffordAlgebra Q
hx : (changeForm ⋯) x = x
hy : (changeForm ⋯) y = y
⊢ (changeForm ⋯) (x + y) = x + y

case ι_mul
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
m : CliffordAlgebra Q
x : M
hx : (changeForm ⋯) m = m
⊢ (changeForm ⋯) ((ι Q) x * m) = (ι Q) x * m

tactic: simp_rw [changeForm_algebraMap]
state_before: case algebraMap
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
r : R
⊢ (changeForm ⋯) ((algebraMap R (CliffordAlgebra Q)) r) = (algebraMap R (CliffordAlgebra Q)) r
state_after: no goals

tactic: rw [map_add, hx, hy]
state_before: case add
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
x y : CliffordAlgebra Q
hx : (changeForm ⋯) x = x
hy : (changeForm ⋯) y = y
⊢ (changeForm ⋯) (x + y) = x + y
state_after: no goals

tactic: rw [changeForm_ι_mul, hx, LinearMap.zero_apply, map_zero, LinearMap.zero_apply,
  sub_zero]
state_before: case ι_mul
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
m : CliffordAlgebra Q
x : M
hx : (changeForm ⋯) m = m
⊢ (changeForm ⋯) ((ι Q) x * m) = (ι Q) x * m
state_after: no goals
Theorem: List.maximum_of_length_pos_mem
File: Mathlib/Data/List/MinMax.lean

tactic: apply maximum_mem
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
l : List α
a m : α
h : 0 < l.length
⊢ maximum_of_length_pos h ∈ l
state_after: case a
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
l : List α
a m : α
h : 0 < l.length
⊢ l.maximum = ↑(maximum_of_length_pos h)

tactic: simp only [coe_maximum_of_length_pos]
state_before: case a
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
l : List α
a m : α
h : 0 < l.length
⊢ l.maximum = ↑(maximum_of_length_pos h)
state_after: no goals
Theorem: EReal.image_coe_Icc
File: Mathlib/Data/Real/EReal.lean

tactic: refine (image_comp WithBot.some WithTop.some _).trans ?_
state_before: x y : ℝ
⊢ Real.toEReal '' Icc x y = Icc ↑x ↑y
state_after: x y : ℝ
⊢ WithBot.some '' (WithTop.some '' Icc x y) = Icc ↑x ↑y

tactic: rw [WithTop.image_coe_Icc, WithBot.image_coe_Icc]
state_before: x y : ℝ
⊢ WithBot.some '' (WithTop.some '' Icc x y) = Icc ↑x ↑y
state_after: x y : ℝ
⊢ Icc ↑↑x ↑↑y = Icc ↑x ↑y

tactic: rfl
state_before: x y : ℝ
⊢ Icc ↑↑x ↑↑y = Icc ↑x ↑y
state_after: no goals
Theorem: List.perm_orderedInsert
File: Mathlib/Data/List/Sort.lean

tactic: by_cases h : a ≼ b
state_before: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
⊢ orderedInsert r a (b :: l) ~ a :: b :: l
state_after: case pos
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
h : r a b
⊢ orderedInsert r a (b :: l) ~ a :: b :: l

case neg
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
h : ¬r a b
⊢ orderedInsert r a (b :: l) ~ a :: b :: l

tactic: simp [orderedInsert, h]
state_before: case pos
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
h : r a b
⊢ orderedInsert r a (b :: l) ~ a :: b :: l
state_after: no goals

tactic: simpa [orderedInsert, h] using ((perm_orderedInsert a l).cons _).trans (Perm.swap _ _ _)
state_before: case neg
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
h : ¬r a b
⊢ orderedInsert r a (b :: l) ~ a :: b :: l
state_after: no goals
Theorem: contDiffAt_one_iff
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

tactic: simp_rw [show (1 : ℕ∞) = (0 + 1 : ℕ) from (zero_add 1).symm, contDiffAt_succ_iff_hasFDerivAt,
  show ((0 : ℕ) : ℕ∞) = 0 from rfl, contDiffAt_zero,
  exists_mem_and_iff antitone_bforall antitone_continuousOn, and_comm]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiffAt 𝕜 1 f x ↔ ∃ f', ∃ u ∈ 𝓝 x, ContinuousOn f' u ∧ ∀ x ∈ u, HasFDerivAt f (f' x) x
state_after: no goals
Theorem: FirstOrder.Language.Theory.models_of_models_theory
File: Mathlib/ModelTheory/Satisfiability.lean

tactic: simp only [models_sentence_iff] at h
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
T' : L.Theory
h : ∀ φ ∈ T', T ⊨ᵇ φ
φ : L.Formula α
hφ : T' ⊨ᵇ φ
⊢ T ⊨ᵇ φ
state_after: L : Language
T : L.Theory
α : Type w
n : ℕ
T' : L.Theory
φ : L.Formula α
hφ : T' ⊨ᵇ φ
h : ∀ φ ∈ T', ∀ (M : T.ModelType), ↑M ⊨ φ
⊢ T ⊨ᵇ φ

tactic: intro M
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
T' : L.Theory
φ : L.Formula α
hφ : T' ⊨ᵇ φ
h : ∀ φ ∈ T', ∀ (M : T.ModelType), ↑M ⊨ φ
⊢ T ⊨ᵇ φ
state_after: L : Language
T : L.Theory
α : Type w
n : ℕ
T' : L.Theory
φ : L.Formula α
hφ : T' ⊨ᵇ φ
h : ∀ φ ∈ T', ∀ (M : T.ModelType), ↑M ⊨ φ
M : T.ModelType
⊢ ∀ (v : α → ↑M) (xs : Fin 0 → ↑M), BoundedFormula.Realize φ v xs

tactic: have hM : M ⊨ T' := T'.model_iff.2 (fun ψ hψ => h ψ hψ M)
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
T' : L.Theory
φ : L.Formula α
hφ : T' ⊨ᵇ φ
h : ∀ φ ∈ T', ∀ (M : T.ModelType), ↑M ⊨ φ
M : T.ModelType
⊢ ∀ (v : α → ↑M) (xs : Fin 0 → ↑M), BoundedFormula.Realize φ v xs
state_after: L : Language
T : L.Theory
α : Type w
n : ℕ
T' : L.Theory
φ : L.Formula α
hφ : T' ⊨ᵇ φ
h : ∀ φ ∈ T', ∀ (M : T.ModelType), ↑M ⊨ φ
M : T.ModelType
hM : ↑M ⊨ T'
⊢ ∀ (v : α → ↑M) (xs : Fin 0 → ↑M), BoundedFormula.Realize φ v xs

tactic: let M' : ModelType T' := ⟨M⟩
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
T' : L.Theory
φ : L.Formula α
hφ : T' ⊨ᵇ φ
h : ∀ φ ∈ T', ∀ (M : T.ModelType), ↑M ⊨ φ
M : T.ModelType
hM : ↑M ⊨ T'
⊢ ∀ (v : α → ↑M) (xs : Fin 0 → ↑M), BoundedFormula.Realize φ v xs
state_after: L : Language
T : L.Theory
α : Type w
n : ℕ
T' : L.Theory
φ : L.Formula α
hφ : T' ⊨ᵇ φ
h : ∀ φ ∈ T', ∀ (M : T.ModelType), ↑M ⊨ φ
M : T.ModelType
hM : ↑M ⊨ T'
M' : T'.ModelType := ModelType.mk ↑M
⊢ ∀ (v : α → ↑M) (xs : Fin 0 → ↑M), BoundedFormula.Realize φ v xs

tactic: exact hφ M'
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
T' : L.Theory
φ : L.Formula α
hφ : T' ⊨ᵇ φ
h : ∀ φ ∈ T', ∀ (M : T.ModelType), ↑M ⊨ φ
M : T.ModelType
hM : ↑M ⊨ T'
M' : T'.ModelType := ModelType.mk ↑M
⊢ ∀ (v : α → ↑M) (xs : Fin 0 → ↑M), BoundedFormula.Realize φ v xs
state_after: no goals
Theorem: SimpleGraph.Subgraph.edgeSet_sSup
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: ext e
state_before: ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : G.Subgraph
a b : V
s : Set G.Subgraph
⊢ (sSup s).edgeSet = ⋃ G' ∈ s, G'.edgeSet
state_after: case h
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : G.Subgraph
a b : V
s : Set G.Subgraph
e : Sym2 V
⊢ e ∈ (sSup s).edgeSet ↔ e ∈ ⋃ G' ∈ s, G'.edgeSet

tactic: induction e
state_before: case h
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : G.Subgraph
a b : V
s : Set G.Subgraph
e : Sym2 V
⊢ e ∈ (sSup s).edgeSet ↔ e ∈ ⋃ G' ∈ s, G'.edgeSet
state_after: case h.h
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : G.Subgraph
a b : V
s : Set G.Subgraph
x✝ y✝ : V
⊢ s(x✝, y✝) ∈ (sSup s).edgeSet ↔ s(x✝, y✝) ∈ ⋃ G' ∈ s, G'.edgeSet

tactic: simp
state_before: case h.h
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : G.Subgraph
a b : V
s : Set G.Subgraph
x✝ y✝ : V
⊢ s(x✝, y✝) ∈ (sSup s).edgeSet ↔ s(x✝, y✝) ∈ ⋃ G' ∈ s, G'.edgeSet
state_after: no goals
Theorem: Filter.hasBasis_pi
File: Mathlib/Order/Filter/Pi.lean

tactic: simpa [Set.pi_def] using hasBasis_iInf' fun i => (h i).comap (eval i : (∀ j, α j) → α i)
state_before: ι : Type u_1
α : ι → Type u_2
f f₁ f₂ : (i : ι) → Filter (α i)
s✝ : (i : ι) → Set (α i)
p✝ : (i : ι) → α i → Prop
ι' : ι → Type
s : (i : ι) → ι' i → Set (α i)
p : (i : ι) → ι' i → Prop
h : ∀ (i : ι), (f i).HasBasis (p i) (s i)
⊢ (pi f).HasBasis (fun If => If.1.Finite ∧ ∀ i ∈ If.1, p i (If.2 i)) fun If => If.1.pi fun i => s i (If.2 i)
state_after: no goals
Theorem: sInf_image2_eq_sInf_sInf
File: Mathlib/Order/GaloisConnection.lean

tactic: simp_rw [sInf_image2, ← (h₂ _).u_sInf, ← (h₁ _).u_sInf]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
κ : ι → Sort u_1
a a₁ a₂ : α
b b₁ b₂ : β
inst✝² : CompleteLattice α
inst✝¹ : CompleteLattice β
inst✝ : CompleteLattice γ
f : α → β → γ
s : Set α
t : Set β
l u : α → β → γ
l₁ u₁ : β → γ → α
l₂ u₂ : α → γ → β
h₁ : ∀ (b : β), GaloisConnection (l₁ b) (swap u b)
h₂ : ∀ (a : α), GaloisConnection (l₂ a) (u a)
⊢ sInf (image2 u s t) = u (sInf s) (sInf t)
state_after: no goals
Theorem: CategoryTheory.NatTrans.mapHomologicalComplex_id
File: Mathlib/Algebra/Homology/Additive.lean

tactic: aesop_cat
state_before: ι : Type u_1
V : Type u
inst✝⁸ : Category.{v, u} V
inst✝⁷ : Preadditive V
W : Type u_2
inst✝⁶ : Category.{?u.73040, u_2} W
inst✝⁵ : Preadditive W
W₁ : Type u_3
W₂ : Type u_4
inst✝⁴ : Category.{u_5, u_3} W₁
inst✝³ : Category.{u_6, u_4} W₂
inst✝² : HasZeroMorphisms W₁
inst✝¹ : HasZeroMorphisms W₂
c✝ : ComplexShape ι
C D E : HomologicalComplex V c✝
f g : C ⟶ D
h k : D ⟶ E
i : ι
c : ComplexShape ι
F : W₁ ⥤ W₂
inst✝ : F.PreservesZeroMorphisms
⊢ mapHomologicalComplex (𝟙 F) c = 𝟙 (F.mapHomologicalComplex c)
state_after: no goals
Theorem: CategoryTheory.Abelian.Pseudoelement.apply_zero
File: Mathlib/CategoryTheory/Abelian/Pseudoelements.lean

tactic: rw [pseudoZero_def, pseudoApply_mk']
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
P Q : C
f : P ⟶ Q
⊢ pseudoApply f 0 = 0
state_after: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
P Q : C
f : P ⟶ Q
⊢ ⟦Over.mk ((Over.mk 0).hom ≫ f)⟧ = 0

tactic: simp
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
P Q : C
f : P ⟶ Q
⊢ ⟦Over.mk ((Over.mk 0).hom ≫ f)⟧ = 0
state_after: no goals
Theorem: SimpleGraph.Colorable.chromaticNumber_le
File: Mathlib/Combinatorics/SimpleGraph/Coloring.lean

tactic: rw [hc.chromaticNumber_eq_sInf]
state_before: V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
n : ℕ
hc : G.Colorable n
⊢ G.chromaticNumber ≤ ↑n
state_after: V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
n : ℕ
hc : G.Colorable n
⊢ ↑(sInf {n' | G.Colorable n'}) ≤ ↑n

tactic: norm_cast
state_before: V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
n : ℕ
hc : G.Colorable n
⊢ ↑(sInf {n' | G.Colorable n'}) ≤ ↑n
state_after: V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
n : ℕ
hc : G.Colorable n
⊢ sInf {n' | G.Colorable n'} ≤ n

tactic: apply csInf_le chromaticNumber_bddBelow
state_before: V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
n : ℕ
hc : G.Colorable n
⊢ sInf {n' | G.Colorable n'} ≤ n
state_after: V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
n : ℕ
hc : G.Colorable n
⊢ n ∈ {n | G.Colorable n}

tactic: exact hc
state_before: V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
n : ℕ
hc : G.Colorable n
⊢ n ∈ {n | G.Colorable n}
state_after: no goals
Theorem: MeasureTheory.integral_empty
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: rw [Measure.restrict_empty, integral_zero_measure]
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝² : MeasurableSpace X
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f g : X → E
s t : Set X
μ ν : Measure X
l l' : Filter X
⊢ ∫ (x : X) in ∅, f x ∂μ = 0
state_after: no goals
Theorem: Polynomial.nextCoeffUp_of_constantCoeff_eq_zero
File: Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean

tactic: obtain rfl | hp₀ := eq_or_ne p 0
state_before: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p : R[X]
hp : p.coeff 0 = 0
⊢ p.nextCoeffUp = p.coeff (p.natTrailingDegree + 1)
state_after: case inl
R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
hp : coeff 0 0 = 0
⊢ nextCoeffUp 0 = coeff 0 (natTrailingDegree 0 + 1)

case inr
R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p : R[X]
hp : p.coeff 0 = 0
hp₀ : p ≠ 0
⊢ p.nextCoeffUp = p.coeff (p.natTrailingDegree + 1)

tactic: simp
state_before: case inl
R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
hp : coeff 0 0 = 0
⊢ nextCoeffUp 0 = coeff 0 (natTrailingDegree 0 + 1)
state_after: no goals

tactic: rw [nextCoeffUp, if_neg (natTrailingDegree_ne_zero.2 ⟨hp₀, hp⟩)]
state_before: case inr
R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p : R[X]
hp : p.coeff 0 = 0
hp₀ : p ≠ 0
⊢ p.nextCoeffUp = p.coeff (p.natTrailingDegree + 1)
state_after: no goals
Theorem: LinearOrderedField.cutMap_bddAbove
File: Mathlib/Algebra/Order/CompleteField.lean

tactic: obtain ⟨q, hq⟩ := exists_rat_gt a
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : LinearOrderedField α
inst✝¹ : LinearOrderedField β
a✝ a₁ a₂ : α
b : β
q : ℚ
inst✝ : Archimedean α
a : α
⊢ BddAbove (cutMap β a)
state_after: case intro
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : LinearOrderedField α
inst✝¹ : LinearOrderedField β
a✝ a₁ a₂ : α
b : β
q✝ : ℚ
inst✝ : Archimedean α
a : α
q : ℚ
hq : a < ↑q
⊢ BddAbove (cutMap β a)

tactic: exact ⟨q, forall_mem_image.2 fun r hr => mod_cast (hq.trans' hr).le⟩
state_before: case intro
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : LinearOrderedField α
inst✝¹ : LinearOrderedField β
a✝ a₁ a₂ : α
b : β
q✝ : ℚ
inst✝ : Archimedean α
a : α
q : ℚ
hq : a < ↑q
⊢ BddAbove (cutMap β a)
state_after: no goals
Theorem: Ordinal.isLimit_iff_omega_dvd
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: refine ⟨fun l => ⟨l.1, ⟨a / ω, le_antisymm ?_ (mul_div_le _ _)⟩⟩, fun h => ?_⟩
state_before: a : Ordinal.{u_1}
⊢ a.IsLimit ↔ a ≠ 0 ∧ ω ∣ a
state_after: case refine_1
a : Ordinal.{u_1}
l : a.IsLimit
⊢ a ≤ ω * (a / ω)

case refine_2
a : Ordinal.{u_1}
h : a ≠ 0 ∧ ω ∣ a
⊢ a.IsLimit

tactic: refine (limit_le l).2 fun x hx => le_of_lt ?_
state_before: case refine_1
a : Ordinal.{u_1}
l : a.IsLimit
⊢ a ≤ ω * (a / ω)
state_after: case refine_1
a : Ordinal.{u_1}
l : a.IsLimit
x : Ordinal.{u_1}
hx : x < a
⊢ x < ω * (a / ω)

tactic: rw [← div_lt omega_ne_zero, ← succ_le_iff, le_div omega_ne_zero, mul_succ,
  add_le_of_limit omega_isLimit]
state_before: case refine_1
a : Ordinal.{u_1}
l : a.IsLimit
x : Ordinal.{u_1}
hx : x < a
⊢ x < ω * (a / ω)
state_after: case refine_1
a : Ordinal.{u_1}
l : a.IsLimit
x : Ordinal.{u_1}
hx : x < a
⊢ ∀ b' < ω, ω * (x / ω) + b' ≤ a

tactic: intro b hb
state_before: case refine_1
a : Ordinal.{u_1}
l : a.IsLimit
x : Ordinal.{u_1}
hx : x < a
⊢ ∀ b' < ω, ω * (x / ω) + b' ≤ a
state_after: case refine_1
a : Ordinal.{u_1}
l : a.IsLimit
x : Ordinal.{u_1}
hx : x < a
b : Ordinal.{u_1}
hb : b < ω
⊢ ω * (x / ω) + b ≤ a

tactic: rcases lt_omega.1 hb with ⟨n, rfl⟩
state_before: case refine_1
a : Ordinal.{u_1}
l : a.IsLimit
x : Ordinal.{u_1}
hx : x < a
b : Ordinal.{u_1}
hb : b < ω
⊢ ω * (x / ω) + b ≤ a
state_after: case refine_1.intro
a : Ordinal.{u_1}
l : a.IsLimit
x : Ordinal.{u_1}
hx : x < a
n : ℕ
hb : ↑n < ω
⊢ ω * (x / ω) + ↑n ≤ a

tactic: exact
  (add_le_add_right (mul_div_le _ _) _).trans
    (lt_sub.1 <| nat_lt_limit (sub_isLimit l hx) _).le
state_before: case refine_1.intro
a : Ordinal.{u_1}
l : a.IsLimit
x : Ordinal.{u_1}
hx : x < a
n : ℕ
hb : ↑n < ω
⊢ ω * (x / ω) + ↑n ≤ a
state_after: no goals

tactic: rcases h with ⟨a0, b, rfl⟩
state_before: case refine_2
a : Ordinal.{u_1}
h : a ≠ 0 ∧ ω ∣ a
⊢ a.IsLimit
state_after: case refine_2.intro.intro
b : Ordinal.{u_1}
a0 : ω * b ≠ 0
⊢ (ω * b).IsLimit

tactic: refine mul_isLimit_left omega_isLimit (Ordinal.pos_iff_ne_zero.2 <| mt ?_ a0)
state_before: case refine_2.intro.intro
b : Ordinal.{u_1}
a0 : ω * b ≠ 0
⊢ (ω * b).IsLimit
state_after: case refine_2.intro.intro
b : Ordinal.{u_1}
a0 : ω * b ≠ 0
⊢ b = 0 → ω * b = 0

tactic: intro e
state_before: case refine_2.intro.intro
b : Ordinal.{u_1}
a0 : ω * b ≠ 0
⊢ b = 0 → ω * b = 0
state_after: case refine_2.intro.intro
b : Ordinal.{u_1}
a0 : ω * b ≠ 0
e : b = 0
⊢ ω * b = 0

tactic: simp only [e, mul_zero]
state_before: case refine_2.intro.intro
b : Ordinal.{u_1}
a0 : ω * b ≠ 0
e : b = 0
⊢ ω * b = 0
state_after: no goals
Theorem: HurwitzZeta.hurwitzZetaOdd_neg
File: Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean

tactic: simp_rw [hurwitzZetaOdd, completedHurwitzZetaOdd_neg, neg_div]
state_before: a : UnitAddCircle
s : ℂ
⊢ hurwitzZetaOdd (-a) s = -hurwitzZetaOdd a s
state_after: no goals
Theorem: CategoryTheory.Bicategory.rightZigzagIso_inv
File: Mathlib/CategoryTheory/Bicategory/Adjunction.lean

tactic: simp [bicategoricalComp, bicategoricalIsoComp]
state_before: B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
g : b ⟶ a
η : 𝟙 a ≅ f ≫ g
ε : g ≫ f ≅ 𝟙 b
⊢ (rightZigzagIso η ε).inv = leftZigzag ε.inv η.inv
state_after: no goals
Theorem: AddMonoidAlgebra.supDegree_single
File: Mathlib/Algebra/MonoidAlgebra/Degree.lean

tactic: split_ifs with hr <;> simp [supDegree_single_ne_zero, hr]
state_before: R : Type u_1
R' : Type u_2
A : Type u_3
T : Type u_4
B : Type u_5
ι : Type u_6
inst✝⁵ : Semiring R
inst✝⁴ : Ring R'
inst✝³ : AddZeroClass A
inst✝² : SemilatticeSup B
inst✝¹ : Add B
inst✝ : OrderBot B
D : A → B
a : A
r : R
⊢ supDegree D (single a r) = if r = 0 then ⊥ else D a
state_after: no goals
Theorem: ContDiffBump.integral_normed
File: Mathlib/Analysis/Calculus/BumpFunction/Normed.lean

tactic: simp_rw [ContDiffBump.normed, div_eq_mul_inv, mul_comm (f _), ← smul_eq_mul, integral_smul]
state_before: E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : HasContDiffBump E
inst✝⁴ : MeasurableSpace E
c : E
f : ContDiffBump c
x : E
n : ℕ∞
μ : Measure E
inst✝³ : BorelSpace E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : IsLocallyFiniteMeasure μ
inst✝ : μ.IsOpenPosMeasure
⊢ ∫ (x : E), f.normed μ x ∂μ = 1
state_after: E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : HasContDiffBump E
inst✝⁴ : MeasurableSpace E
c : E
f : ContDiffBump c
x : E
n : ℕ∞
μ : Measure E
inst✝³ : BorelSpace E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : IsLocallyFiniteMeasure μ
inst✝ : μ.IsOpenPosMeasure
⊢ (∫ (x : E), ↑f x ∂μ)⁻¹ • ∫ (x : E), ↑f x ∂μ = 1

tactic: exact inv_mul_cancel f.integral_pos.ne'
state_before: E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : HasContDiffBump E
inst✝⁴ : MeasurableSpace E
c : E
f : ContDiffBump c
x : E
n : ℕ∞
μ : Measure E
inst✝³ : BorelSpace E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : IsLocallyFiniteMeasure μ
inst✝ : μ.IsOpenPosMeasure
⊢ (∫ (x : E), ↑f x ∂μ)⁻¹ • ∫ (x : E), ↑f x ∂μ = 1
state_after: no goals
Theorem: MeasureTheory.StronglyMeasurable.measurableSet_mulSupport
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: borelize β
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
f g : α → β
m : MeasurableSpace α
inst✝² : One β
inst✝¹ : TopologicalSpace β
inst✝ : MetrizableSpace β
hf : StronglyMeasurable f
⊢ MeasurableSet (mulSupport f)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
f g : α → β
m : MeasurableSpace α
inst✝² : One β
inst✝¹ : TopologicalSpace β
inst✝ : MetrizableSpace β
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace β := borel β
this✝ : BorelSpace β
⊢ MeasurableSet (mulSupport f)

tactic: exact measurableSet_mulSupport hf.measurable
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
f g : α → β
m : MeasurableSpace α
inst✝² : One β
inst✝¹ : TopologicalSpace β
inst✝ : MetrizableSpace β
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace β := borel β
this✝ : BorelSpace β
⊢ MeasurableSet (mulSupport f)
state_after: no goals
Theorem: BoxIntegral.IntegrationParams.toFilteriUnion_congr
File: Mathlib/Analysis/BoxIntegral/Partition/Filter.lean

tactic: simp only [toFilteriUnion, toFilterDistortioniUnion, h]
state_before: ι : Type u_1
inst✝ : Fintype ι
I✝ J : Box ι
c c₁ c₂ : ℝ≥0
r r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π π₁✝ π₂✝ : TaggedPrepartition I✝
l✝ l₁ l₂ : IntegrationParams
I : Box ι
l : IntegrationParams
π₁ π₂ : Prepartition I
h : π₁.iUnion = π₂.iUnion
⊢ l.toFilteriUnion I π₁ = l.toFilteriUnion I π₂
state_after: no goals
Theorem: Cardinal.sum_nat_eq_add_sum_succ
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: refine (Equiv.sigmaNatSucc fun i => Quotient.out (f i)).cardinal_eq.trans ?_
state_before: α β : Type u
f : ℕ → Cardinal.{u}
⊢ sum f = f 0 + sum fun i => f (i + 1)
state_after: α β : Type u
f : ℕ → Cardinal.{u}
⊢ #(Quotient.out (f 0) ⊕ (n : ℕ) × Quotient.out (f (n + 1))) = f 0 + sum fun i => f (i + 1)

tactic: simp only [mk_sum, mk_out, lift_id, mk_sigma]
state_before: α β : Type u
f : ℕ → Cardinal.{u}
⊢ #(Quotient.out (f 0) ⊕ (n : ℕ) × Quotient.out (f (n + 1))) = f 0 + sum fun i => f (i + 1)
state_after: no goals
Theorem: PowerSeries.order_X_pow
File: Mathlib/RingTheory/PowerSeries/Order.lean

tactic: rw [X_pow_eq, order_monomial_of_ne_zero]
state_before: R : Type u_1
inst✝¹ : Semiring R
inst✝ : Nontrivial R
n : ℕ
⊢ (X ^ n).order = ↑n
state_after: case h
R : Type u_1
inst✝¹ : Semiring R
inst✝ : Nontrivial R
n : ℕ
⊢ 1 ≠ 0

tactic: exact one_ne_zero
state_before: case h
R : Type u_1
inst✝¹ : Semiring R
inst✝ : Nontrivial R
n : ℕ
⊢ 1 ≠ 0
state_after: no goals
Theorem: Polynomial.nextCoeffUp_zero
File: Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean

tactic: simp [nextCoeffUp]
state_before: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
⊢ nextCoeffUp 0 = 0
state_after: no goals
Theorem: EReal.mem_nhds_bot_iff
File: Mathlib/Topology/Instances/EReal.lean

tactic: simp only [true_and]
state_before: α : Type u_1
inst✝ : TopologicalSpace α
s : Set EReal
⊢ (∃ i, True ∧ Iio ↑i ⊆ s) ↔ ∃ y, Iio ↑y ⊆ s
state_after: no goals