1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: SMulPosMono.lift
File: Mathlib/Algebra/Order/Module/Defs.lean

tactic: simp only [← hf, zero, smul] at *
state_before: α : Type u_1
β : Type u_2
a a₁✝ a₂✝ : α
b✝ b₁ b₂ : β
γ : Type u_3
inst✝⁸ : Zero α
inst✝⁷ : Preorder α
inst✝⁶ : Zero β
inst✝⁵ : Preorder β
inst✝⁴ : Zero γ
inst✝³ : Preorder γ
inst✝² : SMul α β
inst✝¹ : SMul α γ
f : β → γ
hf : ∀ {b₁ b₂ : β}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂
smul : ∀ (a : α) (b : β), f (a • b) = a • f b
zero : f 0 = 0
inst✝ : SMulPosMono α γ
b : β
hb : 0 ≤ b
a₁ a₂ : α
ha : a₁ ≤ a₂
⊢ a₁ • b ≤ a₂ • b
state_after: α : Type u_1
β : Type u_2
a a₁✝ a₂✝ : α
b✝ b₁ b₂ : β
γ : Type u_3
inst✝⁸ : Zero α
inst✝⁷ : Preorder α
inst✝⁶ : Zero β
inst✝⁵ : Preorder β
inst✝⁴ : Zero γ
inst✝³ : Preorder γ
inst✝² : SMul α β
inst✝¹ : SMul α γ
f : β → γ
inst✝ : SMulPosMono α γ
b : β
a₁ a₂ : α
ha : a₁ ≤ a₂
hf : ∀ {b₁ b₂ : β}, True
smul : α → β → True
zero : True
hb : 0 ≤ f b
⊢ a₁ • f b ≤ a₂ • f b

tactic: exact smul_le_smul_of_nonneg_right ha hb
state_before: α : Type u_1
β : Type u_2
a a₁✝ a₂✝ : α
b✝ b₁ b₂ : β
γ : Type u_3
inst✝⁸ : Zero α
inst✝⁷ : Preorder α
inst✝⁶ : Zero β
inst✝⁵ : Preorder β
inst✝⁴ : Zero γ
inst✝³ : Preorder γ
inst✝² : SMul α β
inst✝¹ : SMul α γ
f : β → γ
inst✝ : SMulPosMono α γ
b : β
a₁ a₂ : α
ha : a₁ ≤ a₂
hf : ∀ {b₁ b₂ : β}, True
smul : α → β → True
zero : True
hb : 0 ≤ f b
⊢ a₁ • f b ≤ a₂ • f b
state_after: no goals
Theorem: DirichletCharacter.unit_norm_eq_one
File: Mathlib/NumberTheory/DirichletCharacter/Bounds.lean

tactic: refine (pow_eq_one_iff_of_nonneg (norm_nonneg _) (Nat.card_pos (α := (ZMod n)ˣ)).ne').mp ?_
state_before: F : Type u_1
inst✝ : NormedField F
n : ℕ
χ : DirichletCharacter F n
a : (ZMod n)ˣ
⊢ ‖χ ↑a‖ = 1
state_after: F : Type u_1
inst✝ : NormedField F
n : ℕ
χ : DirichletCharacter F n
a : (ZMod n)ˣ
⊢ ‖χ ↑a‖ ^ Nat.card (ZMod n)ˣ = 1

tactic: rw [← norm_pow, ← map_pow, ← Units.val_pow_eq_pow_val, pow_card_eq_one', Units.val_one, map_one,
  norm_one]
state_before: F : Type u_1
inst✝ : NormedField F
n : ℕ
χ : DirichletCharacter F n
a : (ZMod n)ˣ
⊢ ‖χ ↑a‖ ^ Nat.card (ZMod n)ˣ = 1
state_after: no goals
Theorem: AlgEquiv.isPurelyInseparable
File: Mathlib/FieldTheory/PurelyInseparable.lean

tactic: refine ⟨⟨fun _ ↦ by rw [← isIntegral_algEquiv e.symm]; exact IsPurelyInseparable.isIntegral' F _⟩,
  fun x h ↦ ?_⟩
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
e : K ≃ₐ[F] E
inst✝ : IsPurelyInseparable F K
⊢ IsPurelyInseparable F E
state_after: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
e : K ≃ₐ[F] E
inst✝ : IsPurelyInseparable F K
x : E
h : (minpoly F x).Separable
⊢ x ∈ (algebraMap F E).range

tactic: rw [← minpoly.algEquiv_eq e.symm] at h
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
e : K ≃ₐ[F] E
inst✝ : IsPurelyInseparable F K
x : E
h : (minpoly F x).Separable
⊢ x ∈ (algebraMap F E).range
state_after: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
e : K ≃ₐ[F] E
inst✝ : IsPurelyInseparable F K
x : E
h : (minpoly F (e.symm x)).Separable
⊢ x ∈ (algebraMap F E).range

tactic: simpa only [RingHom.mem_range, algebraMap_eq_apply] using IsPurelyInseparable.inseparable F _ h
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
e : K ≃ₐ[F] E
inst✝ : IsPurelyInseparable F K
x : E
h : (minpoly F (e.symm x)).Separable
⊢ x ∈ (algebraMap F E).range
state_after: no goals

tactic: rw [← isIntegral_algEquiv e.symm]
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
e : K ≃ₐ[F] E
inst✝ : IsPurelyInseparable F K
x✝ : E
⊢ IsIntegral F x✝
state_after: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
e : K ≃ₐ[F] E
inst✝ : IsPurelyInseparable F K
x✝ : E
⊢ IsIntegral F (e.symm x✝)

tactic: exact IsPurelyInseparable.isIntegral' F _
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
e : K ≃ₐ[F] E
inst✝ : IsPurelyInseparable F K
x✝ : E
⊢ IsIntegral F (e.symm x✝)
state_after: no goals
Theorem: Monotone.partialSups_eq
File: Mathlib/Order/PartialSups.lean

tactic: ext n
state_before: α : Type u_1
inst✝ : SemilatticeSup α
f : ℕ → α
hf : Monotone f
⊢ ⇑(partialSups f) = f
state_after: case h
α : Type u_1
inst✝ : SemilatticeSup α
f : ℕ → α
hf : Monotone f
n : ℕ
⊢ (partialSups f) n = f n

tactic: induction' n with n ih
state_before: case h
α : Type u_1
inst✝ : SemilatticeSup α
f : ℕ → α
hf : Monotone f
n : ℕ
⊢ (partialSups f) n = f n
state_after: case h.zero
α : Type u_1
inst✝ : SemilatticeSup α
f : ℕ → α
hf : Monotone f
⊢ (partialSups f) 0 = f 0

case h.succ
α : Type u_1
inst✝ : SemilatticeSup α
f : ℕ → α
hf : Monotone f
n : ℕ
ih : (partialSups f) n = f n
⊢ (partialSups f) (n + 1) = f (n + 1)

tactic: rfl
state_before: case h.zero
α : Type u_1
inst✝ : SemilatticeSup α
f : ℕ → α
hf : Monotone f
⊢ (partialSups f) 0 = f 0
state_after: no goals

tactic: rw [partialSups_succ, ih, sup_eq_right.2 (hf (Nat.le_succ _))]
state_before: case h.succ
α : Type u_1
inst✝ : SemilatticeSup α
f : ℕ → α
hf : Monotone f
n : ℕ
ih : (partialSups f) n = f n
⊢ (partialSups f) (n + 1) = f (n + 1)
state_after: no goals
Theorem: CliffordAlgebraQuaternion.toQuaternion_comp_ofQuaternion
File: Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean

tactic: ext : 1 <;> simp
state_before: R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ toQuaternion.comp ofQuaternion = AlgHom.id R ℍ[R,c₁,c₂]
state_after: no goals
Theorem: CategoryTheory.isDetecting_unop_iff
File: Mathlib/CategoryTheory/Generator.lean

tactic: rw [← isCodetecting_op_iff, Set.unop_op]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
𝒢 : Set Cᵒᵖ
⊢ IsDetecting 𝒢.unop ↔ IsCodetecting 𝒢
state_after: no goals
Theorem: IntermediateField.toSubalgebra_injective
File: Mathlib/FieldTheory/IntermediateField.lean

tactic: intro S S' h
state_before: K : Type u_1
L : Type u_2
L' : Type u_3
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field L'
inst✝¹ : Algebra K L
inst✝ : Algebra K L'
S : IntermediateField K L
⊢ Function.Injective toSubalgebra
state_after: K : Type u_1
L : Type u_2
L' : Type u_3
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field L'
inst✝¹ : Algebra K L
inst✝ : Algebra K L'
S✝ S S' : IntermediateField K L
h : S.toSubalgebra = S'.toSubalgebra
⊢ S = S'

tactic: ext
state_before: K : Type u_1
L : Type u_2
L' : Type u_3
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field L'
inst✝¹ : Algebra K L
inst✝ : Algebra K L'
S✝ S S' : IntermediateField K L
h : S.toSubalgebra = S'.toSubalgebra
⊢ S = S'
state_after: case h
K : Type u_1
L : Type u_2
L' : Type u_3
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field L'
inst✝¹ : Algebra K L
inst✝ : Algebra K L'
S✝ S S' : IntermediateField K L
h : S.toSubalgebra = S'.toSubalgebra
x✝ : L
⊢ x✝ ∈ S ↔ x✝ ∈ S'

tactic: rw [← mem_toSubalgebra, ← mem_toSubalgebra, h]
state_before: case h
K : Type u_1
L : Type u_2
L' : Type u_3
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field L'
inst✝¹ : Algebra K L
inst✝ : Algebra K L'
S✝ S S' : IntermediateField K L
h : S.toSubalgebra = S'.toSubalgebra
x✝ : L
⊢ x✝ ∈ S ↔ x✝ ∈ S'
state_after: no goals
Theorem: MeasureTheory.Lp.coeFn_nonneg
File: Mathlib/MeasureTheory/Function/LpOrder.lean

tactic: rw [← coeFn_le]
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
μ : Measure α
p : ℝ≥0∞
inst✝ : NormedLatticeAddCommGroup E
f : ↥(Lp E p μ)
⊢ 0 ≤ᶠ[ae μ] ↑↑f ↔ 0 ≤ f
state_after: α : Type u_1
E : Type u_2
m : MeasurableSpace α
μ : Measure α
p : ℝ≥0∞
inst✝ : NormedLatticeAddCommGroup E
f : ↥(Lp E p μ)
⊢ 0 ≤ᶠ[ae μ] ↑↑f ↔ ↑↑0 ≤ᶠ[ae μ] ↑↑f

tactic: have h0 := Lp.coeFn_zero E p μ
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
μ : Measure α
p : ℝ≥0∞
inst✝ : NormedLatticeAddCommGroup E
f : ↥(Lp E p μ)
⊢ 0 ≤ᶠ[ae μ] ↑↑f ↔ ↑↑0 ≤ᶠ[ae μ] ↑↑f
state_after: α : Type u_1
E : Type u_2
m : MeasurableSpace α
μ : Measure α
p : ℝ≥0∞
inst✝ : NormedLatticeAddCommGroup E
f : ↥(Lp E p μ)
h0 : ↑↑0 =ᶠ[ae μ] 0
⊢ 0 ≤ᶠ[ae μ] ↑↑f ↔ ↑↑0 ≤ᶠ[ae μ] ↑↑f

tactic: constructor <;> intro h <;> filter_upwards [h, h0] with _ _ h2
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
μ : Measure α
p : ℝ≥0∞
inst✝ : NormedLatticeAddCommGroup E
f : ↥(Lp E p μ)
h0 : ↑↑0 =ᶠ[ae μ] 0
⊢ 0 ≤ᶠ[ae μ] ↑↑f ↔ ↑↑0 ≤ᶠ[ae μ] ↑↑f
state_after: case h
α : Type u_1
E : Type u_2
m : MeasurableSpace α
μ : Measure α
p : ℝ≥0∞
inst✝ : NormedLatticeAddCommGroup E
f : ↥(Lp E p μ)
h0 : ↑↑0 =ᶠ[ae μ] 0
h : 0 ≤ᶠ[ae μ] ↑↑f
a✝¹ : α
a✝ : 0 a✝¹ ≤ ↑↑f a✝¹
h2 : ↑↑0 a✝¹ = 0 a✝¹
⊢ ↑↑0 a✝¹ ≤ ↑↑f a✝¹

case h
α : Type u_1
E : Type u_2
m : MeasurableSpace α
μ : Measure α
p : ℝ≥0∞
inst✝ : NormedLatticeAddCommGroup E
f : ↥(Lp E p μ)
h0 : ↑↑0 =ᶠ[ae μ] 0
h : ↑↑0 ≤ᶠ[ae μ] ↑↑f
a✝¹ : α
a✝ : ↑↑0 a✝¹ ≤ ↑↑f a✝¹
h2 : ↑↑0 a✝¹ = 0 a✝¹
⊢ 0 a✝¹ ≤ ↑↑f a✝¹

tactic: rwa [h2]
state_before: case h
α : Type u_1
E : Type u_2
m : MeasurableSpace α
μ : Measure α
p : ℝ≥0∞
inst✝ : NormedLatticeAddCommGroup E
f : ↥(Lp E p μ)
h0 : ↑↑0 =ᶠ[ae μ] 0
h : 0 ≤ᶠ[ae μ] ↑↑f
a✝¹ : α
a✝ : 0 a✝¹ ≤ ↑↑f a✝¹
h2 : ↑↑0 a✝¹ = 0 a✝¹
⊢ ↑↑0 a✝¹ ≤ ↑↑f a✝¹
state_after: no goals

tactic: rwa [← h2]
state_before: case h
α : Type u_1
E : Type u_2
m : MeasurableSpace α
μ : Measure α
p : ℝ≥0∞
inst✝ : NormedLatticeAddCommGroup E
f : ↥(Lp E p μ)
h0 : ↑↑0 =ᶠ[ae μ] 0
h : ↑↑0 ≤ᶠ[ae μ] ↑↑f
a✝¹ : α
a✝ : ↑↑0 a✝¹ ≤ ↑↑f a✝¹
h2 : ↑↑0 a✝¹ = 0 a✝¹
⊢ 0 a✝¹ ≤ ↑↑f a✝¹
state_after: no goals
Theorem: Unique.subsingleton_unique'
File: Mathlib/Logic/Unique.lean

tactic: congr
state_before: α : Sort u_1
x : α
h : ∀ (a : α), a = default
y : α
uniq✝ : ∀ (a : α), a = default
⊢ { default := x, uniq := h } = { default := y, uniq := uniq✝ }
state_after: case e_toInhabited.e_default
α : Sort u_1
x : α
h : ∀ (a : α), a = default
y : α
uniq✝ : ∀ (a : α), a = default
⊢ x = y

tactic: rw [h x, h y]
state_before: case e_toInhabited.e_default
α : Sort u_1
x : α
h : ∀ (a : α), a = default
y : α
uniq✝ : ∀ (a : α), a = default
⊢ x = y
state_after: no goals
Theorem: norm_sq_eq_add_norm_sq_projection
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: rw [orthogonalProjection_add_orthogonalProjection_orthogonal]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
x : E
S : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection S
⊢ ‖x‖ ^ 2 = ‖↑((orthogonalProjection S) x) + ↑((orthogonalProjection Sᗮ) x)‖ ^ 2
state_after: no goals

tactic: simp only [sq]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
x : E
S : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection S
⊢ ‖↑((orthogonalProjection S) x) + ↑((orthogonalProjection Sᗮ) x)‖ ^ 2 =
    ‖(orthogonalProjection S) x‖ ^ 2 + ‖(orthogonalProjection Sᗮ) x‖ ^ 2
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
x : E
S : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection S
⊢ ‖↑((orthogonalProjection S) x) + ↑((orthogonalProjection Sᗮ) x)‖ *
      ‖↑((orthogonalProjection S) x) + ↑((orthogonalProjection Sᗮ) x)‖ =
    ‖(orthogonalProjection S) x‖ * ‖(orthogonalProjection S) x‖ +
      ‖(orthogonalProjection Sᗮ) x‖ * ‖(orthogonalProjection Sᗮ) x‖

tactic: exact norm_add_sq_eq_norm_sq_add_norm_sq_of_inner_eq_zero _ _ <|
  (S.mem_orthogonal _).1 (orthogonalProjection Sᗮ x).2 _ (orthogonalProjection S x).2
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
x : E
S : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection S
⊢ ‖↑((orthogonalProjection S) x) + ↑((orthogonalProjection Sᗮ) x)‖ *
      ‖↑((orthogonalProjection S) x) + ↑((orthogonalProjection Sᗮ) x)‖ =
    ‖(orthogonalProjection S) x‖ * ‖(orthogonalProjection S) x‖ +
      ‖(orthogonalProjection Sᗮ) x‖ * ‖(orthogonalProjection Sᗮ) x‖
state_after: no goals
Theorem: List.rotate_length
File: Mathlib/Data/List/Rotate.lean

tactic: rw [rotate_eq_rotate', rotate'_length]
state_before: α : Type u
l : List α
⊢ l.rotate l.length = l
state_after: no goals
Theorem: Set.image_preimage_eq_of_subset
File: Mathlib/Data/Set/Image.lean

tactic: rw [image_preimage_eq_range_inter, inter_eq_self_of_subset_right hs]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s✝ t : Set α
f : α → β
s : Set β
hs : s ⊆ range f
⊢ f '' (f ⁻¹' s) = s
state_after: no goals
Theorem: Complex.ofReal_inv
File: Mathlib/Data/Complex/Basic.lean

tactic: simp [ofReal']
state_before: r : ℝ
⊢ (↑r⁻¹).re = (↑r)⁻¹.re ∧ (↑r⁻¹).im = (↑r)⁻¹.im
state_after: no goals
Theorem: SimpleGraph.Walk.darts_copy
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: subst_vars
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v u' v' : V
p : G.Walk u v
hu : u = u'
hv : v = v'
⊢ (p.copy hu hv).darts = p.darts
state_after: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u' v' : V
p : G.Walk u' v'
⊢ (p.copy ⋯ ⋯).darts = p.darts

tactic: rfl
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u' v' : V
p : G.Walk u' v'
⊢ (p.copy ⋯ ⋯).darts = p.darts
state_after: no goals
Theorem: zpow_neg
File: Mathlib/Algebra/Group/Basic.lean

tactic: change a ^ (0 : ℤ) = (a ^ (0 : ℤ))⁻¹
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
⊢ a ^ (-0) = (a ^ 0)⁻¹
state_after: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
⊢ a ^ 0 = (a ^ 0)⁻¹

tactic: simp
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
⊢ a ^ 0 = (a ^ 0)⁻¹
state_after: no goals

tactic: rw [zpow_negSucc, inv_inv, ← zpow_natCast]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
n : ℕ
⊢ a ^ (-Int.negSucc n) = (a ^ Int.negSucc n)⁻¹
state_after: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
n : ℕ
⊢ a ^ (-Int.negSucc n) = a ^ ↑(n + 1)

tactic: rfl
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
n : ℕ
⊢ a ^ (-Int.negSucc n) = a ^ ↑(n + 1)
state_after: no goals
Theorem: MvPolynomial.C_mul_X_eq_monomial
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: rw [← C_mul_X_pow_eq_monomial, pow_one]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a✝ a' a₁ a₂ : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
s : σ
a : R
⊢ C a * X s = (monomial (Finsupp.single s 1)) a
state_after: no goals
Theorem: GaussianInt.toComplex_re
File: Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean

tactic: simp [toComplex_def]
state_before: x y : ℤ
⊢ (toComplex { re := x, im := y }).re = ↑x
state_after: no goals
Theorem: Polynomial.IsSplittingField.mul
File: Mathlib/FieldTheory/SplittingField/IsSplittingField.lean

tactic: rw [rootSet, aroots_mul (mul_ne_zero hf hg),
  Multiset.toFinset_add, Finset.coe_union, Algebra.adjoin_union_eq_adjoin_adjoin,
  aroots_def, aroots_def, IsScalarTower.algebraMap_eq F K L, ← map_map,
  roots_map (algebraMap K L) ((splits_id_iff_splits <| algebraMap F K).2 <| splits K f),
  Multiset.toFinset_map, Finset.coe_image, Algebra.adjoin_algebraMap, ← rootSet, adjoin_rootSet,
  Algebra.map_top, IsScalarTower.adjoin_range_toAlgHom, ← map_map, ← rootSet, adjoin_rootSet,
  Subalgebra.restrictScalars_top]
state_before: F : Type u
K : Type v
L : Type w
inst✝⁸ : Field K
inst✝⁷ : Field L
inst✝⁶ : Field F
inst✝⁵ : Algebra K L
inst✝⁴ : Algebra F K
inst✝³ : Algebra F L
inst✝² : IsScalarTower F K L
f g : F[X]
hf : f ≠ 0
hg : g ≠ 0
inst✝¹ : IsSplittingField F K f
inst✝ : IsSplittingField K L (Polynomial.map (algebraMap F K) g)
⊢ Algebra.adjoin F ((f * g).rootSet L) = ⊤
state_after: no goals
Theorem: ContinuousMap.idealOfEmpty_eq_bot
File: Mathlib/Topology/ContinuousFunction/Ideals.lean

tactic: simp only [mem_idealOfSet, Set.compl_empty, Set.mem_univ, forall_true_left, Ideal.mem_bot,
  DFunLike.ext_iff, zero_apply]
state_before: X : Type u_1
R : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : Semiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
f : C(X, R)
⊢ f ∈ idealOfSet R ∅ ↔ f ∈ ⊥
state_after: no goals
Theorem: MeasureTheory.integrable_zero
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp [Integrable, aestronglyMeasurable_const]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
⊢ Integrable (fun x => 0) μ
state_after: no goals
Theorem: HomologicalComplex.image_eq_image
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

tactic: rw [← eqToHom_comp_d C r r']
state_before: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
inst✝¹ : HasImages V
inst✝ : HasEqualizers V
i i' j : ι
r : c.Rel i j
r' : c.Rel i' j
⊢ imageSubobject (C.d i j) = imageSubobject (C.d i' j)
state_after: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
inst✝¹ : HasImages V
inst✝ : HasEqualizers V
i i' j : ι
r : c.Rel i j
r' : c.Rel i' j
⊢ imageSubobject (eqToHom ⋯ ≫ C.d i' j) = imageSubobject (C.d i' j)

tactic: apply imageSubobject_iso_comp
state_before: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
inst✝¹ : HasImages V
inst✝ : HasEqualizers V
i i' j : ι
r : c.Rel i j
r' : c.Rel i' j
⊢ imageSubobject (eqToHom ⋯ ≫ C.d i' j) = imageSubobject (C.d i' j)
state_after: no goals
Theorem: uniformity_dist_of_mem_uniformity
File: Mathlib/Topology/EMetricSpace/Basic.lean

tactic: simp only [H, subset_def, Prod.forall, mem_setOf]
state_before: α : Type u
β : Type v
X : Type u_1
inst✝ : LinearOrder β
U : Filter (α × α)
z : β
D : α → α → β
H : ∀ (s : Set (α × α)), s ∈ U ↔ ∃ ε > z, ∀ {a b : α}, D a b < ε → (a, b) ∈ s
s : Set (α × α)
⊢ s ∈ U ↔ ∃ i > z, {p | D p.1 p.2 < i} ⊆ s
state_after: no goals
Theorem: Projectivization.mk_eq_mk_iff'
File: Mathlib/LinearAlgebra/Projectivization/Basic.lean

tactic: rw [mk_eq_mk_iff K v w hv hw]
state_before: K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
⊢ mk K v hv = mk K w hw ↔ ∃ a, a • w = v
state_after: K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
⊢ (∃ a, a • w = v) ↔ ∃ a, a • w = v

tactic: constructor
state_before: K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
⊢ (∃ a, a • w = v) ↔ ∃ a, a • w = v
state_after: case mp
K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
⊢ (∃ a, a • w = v) → ∃ a, a • w = v

case mpr
K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
⊢ (∃ a, a • w = v) → ∃ a, a • w = v

tactic: rintro ⟨a, ha⟩
state_before: case mp
K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
⊢ (∃ a, a • w = v) → ∃ a, a • w = v
state_after: case mp.intro
K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
a : Kˣ
ha : a • w = v
⊢ ∃ a, a • w = v

tactic: exact ⟨a, ha⟩
state_before: case mp.intro
K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
a : Kˣ
ha : a • w = v
⊢ ∃ a, a • w = v
state_after: no goals

tactic: rintro ⟨a, ha⟩
state_before: case mpr
K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
⊢ (∃ a, a • w = v) → ∃ a, a • w = v
state_after: case mpr.intro
K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
a : K
ha : a • w = v
⊢ ∃ a, a • w = v

tactic: refine ⟨Units.mk0 a fun c => hv.symm ?_, ha⟩
state_before: case mpr.intro
K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
a : K
ha : a • w = v
⊢ ∃ a, a • w = v
state_after: case mpr.intro
K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
a : K
ha : a • w = v
c : a = 0
⊢ 0 = v

tactic: rwa [c, zero_smul] at ha
state_before: case mpr.intro
K : Type u_1
V : Type u_2
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
v w : V
hv : v ≠ 0
hw : w ≠ 0
a : K
ha : a • w = v
c : a = 0
⊢ 0 = v
state_after: no goals
Theorem: IntermediateField.fixingSubgroup.antimono
File: Mathlib/FieldTheory/KrullTopology.lean

tactic: rintro σ hσ ⟨x, hx⟩
state_before: K : Type u_1
L : Type u_2
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
E1 E2 : IntermediateField K L
h12 : E1 ≤ E2
⊢ E2.fixingSubgroup ≤ E1.fixingSubgroup
state_after: case mk
K : Type u_1
L : Type u_2
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
E1 E2 : IntermediateField K L
h12 : E1 ≤ E2
σ : L ≃ₐ[K] L
hσ : σ ∈ E2.fixingSubgroup
x : L
hx : x ∈ ↑E1
⊢ σ • ↑⟨x, hx⟩ = ↑⟨x, hx⟩

tactic: exact hσ ⟨x, h12 hx⟩
state_before: case mk
K : Type u_1
L : Type u_2
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
E1 E2 : IntermediateField K L
h12 : E1 ≤ E2
σ : L ≃ₐ[K] L
hσ : σ ∈ E2.fixingSubgroup
x : L
hx : x ∈ ↑E1
⊢ σ • ↑⟨x, hx⟩ = ↑⟨x, hx⟩
state_after: no goals
Theorem: List.map_permutations'
File: Mathlib/Data/List/Permutation.lean

tactic: induction' ts with t ts ih <;> [rfl; simp [← ih, map_bind, ← map_map_permutations'Aux, bind_map]]
state_before: α : Type u_1
β : Type u_2
f : α → β
ts : List α
⊢ map (map f) ts.permutations' = (map f ts).permutations'
state_after: no goals
Theorem: vsub_sub_vsub_comm
File: Mathlib/Algebra/AddTorsor.lean

tactic: rw [← vsub_vadd_eq_vsub_sub, vsub_vadd_comm, vsub_vadd_eq_vsub_sub]
state_before: G : Type u_1
P : Type u_2
inst✝¹ : AddCommGroup G
inst✝ : AddTorsor G P
p₁ p₂ p₃ p₄ : P
⊢ p₁ -ᵥ p₂ - (p₃ -ᵥ p₄) = p₁ -ᵥ p₃ - (p₂ -ᵥ p₄)
state_after: no goals
Theorem: pow_eq_one_iff_of_ne_zero
File: Mathlib/Algebra/Order/Ring/Abs.lean

tactic: simp [← pow_eq_pow_iff_of_ne_zero hn]
state_before: α : Type u_1
R : Type u_2
inst✝ : LinearOrderedRing R
a b : R
n : ℕ
hn : n ≠ 0
⊢ a ^ n = 1 ↔ a = 1 ∨ a = -1 ∧ Even n
state_after: no goals
Theorem: Nat.primesBelow_card_eq_primeCounting'
File: Mathlib/NumberTheory/PrimeCounting.lean

tactic: simp only [primesBelow, primeCounting']
state_before: n : ℕ
⊢ n.primesBelow.card = π' n
state_after: n : ℕ
⊢ (filter (fun p => Prime p) (range n)).card = count Prime n

tactic: exact (count_eq_card_filter_range Prime n).symm
state_before: n : ℕ
⊢ (filter (fun p => Prime p) (range n)).card = count Prime n
state_after: no goals
Theorem: CliffordAlgebra.foldl_prod_map_ι
File: Mathlib/LinearAlgebra/CliffordAlgebra/Fold.lean

tactic: rw [← foldr_reverse, reverse_prod_map_ι, ← List.map_reverse, foldr_prod_map_ι, List.foldr_reverse]
state_before: R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : AddCommGroup N
inst✝¹ : Module R M
inst✝ : Module R N
Q : QuadraticForm R M
l : List M
f : M →ₗ[R] N →ₗ[R] N
hf : ∀ (m : M) (x : N), (f m) ((f m) x) = Q m • x
n : N
⊢ ((foldl Q f hf) n) (List.map (⇑(ι Q)) l).prod = List.foldl (fun m n => (f n) m) n l
state_after: no goals