1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.Presheaf.equalizerSieve_self_eq_top
File: Mathlib/CategoryTheory/Sites/LocallyInjective.lean

tactic: aesop
state_before: C : Type u
inst✝² : Category.{v, u} C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : ConcreteCategory D
J : GrothendieckTopology C
F : Cᵒᵖ ⥤ D
X : Cᵒᵖ
x : (forget D).obj (F.obj X)
⊢ equalizerSieve x x = ⊤
state_after: no goals
Theorem: CovBy.exists_finset_insert
File: Mathlib/Data/Finset/Grade.lean

tactic: simpa using h.exists_finset_cons
state_before: α : Type u_1
s t : Finset α
a : α
inst✝ : DecidableEq α
h : s ⋖ t
⊢ ∃ a ∉ s, insert a s = t
state_after: no goals
Theorem: Affine.Simplex.centroid_eq_of_range_eq
File: Mathlib/LinearAlgebra/AffineSpace/Independent.lean

tactic: rw [← Set.image_univ, ← Set.image_univ, ← Finset.coe_univ] at h
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
n : ℕ
s₁ s₂ : Simplex k P n
h : Set.range s₁.points = Set.range s₂.points
⊢ centroid k univ s₁.points = centroid k univ s₂.points
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
n : ℕ
s₁ s₂ : Simplex k P n
h : s₁.points '' ↑univ = s₂.points '' ↑univ
⊢ centroid k univ s₁.points = centroid k univ s₂.points

tactic: exact
  Finset.univ.centroid_eq_of_inj_on_of_image_eq k _
    (fun _ _ _ _ he => AffineIndependent.injective s₁.independent he)
    (fun _ _ _ _ he => AffineIndependent.injective s₂.independent he) h
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
n : ℕ
s₁ s₂ : Simplex k P n
h : s₁.points '' ↑univ = s₂.points '' ↑univ
⊢ centroid k univ s₁.points = centroid k univ s₂.points
state_after: no goals
Theorem: AddCircle.addOrderOf_div_of_gcd_eq_one'
File: Mathlib/Topology/Instances/AddCircle.lean

tactic: induction m
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p q : 𝕜
hp : Fact (0 < p)
m : ℤ
n : ℕ
hn : 0 < n
h : m.natAbs.gcd n = 1
⊢ addOrderOf ↑(↑m / ↑n * p) = n
state_after: case ofNat
𝕜 : Type u_1
B : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p q : 𝕜
hp : Fact (0 < p)
n : ℕ
hn : 0 < n
a✝ : ℕ
h : (Int.ofNat a✝).natAbs.gcd n = 1
⊢ addOrderOf ↑(↑(Int.ofNat a✝) / ↑n * p) = n

case negSucc
𝕜 : Type u_1
B : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p q : 𝕜
hp : Fact (0 < p)
n : ℕ
hn : 0 < n
a✝ : ℕ
h : (Int.negSucc a✝).natAbs.gcd n = 1
⊢ addOrderOf ↑(↑(Int.negSucc a✝) / ↑n * p) = n

tactic: simp only [Int.ofNat_eq_coe, Int.cast_natCast, Int.natAbs_ofNat] at h ⊢
state_before: case ofNat
𝕜 : Type u_1
B : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p q : 𝕜
hp : Fact (0 < p)
n : ℕ
hn : 0 < n
a✝ : ℕ
h : (Int.ofNat a✝).natAbs.gcd n = 1
⊢ addOrderOf ↑(↑(Int.ofNat a✝) / ↑n * p) = n
state_after: case ofNat
𝕜 : Type u_1
B : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p q : 𝕜
hp : Fact (0 < p)
n : ℕ
hn : 0 < n
a✝ : ℕ
h : a✝.gcd n = 1
⊢ addOrderOf ↑(↑a✝ / ↑n * p) = n

tactic: exact addOrderOf_div_of_gcd_eq_one hn h
state_before: case ofNat
𝕜 : Type u_1
B : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p q : 𝕜
hp : Fact (0 < p)
n : ℕ
hn : 0 < n
a✝ : ℕ
h : a✝.gcd n = 1
⊢ addOrderOf ↑(↑a✝ / ↑n * p) = n
state_after: no goals

tactic: simp only [Int.cast_negSucc, neg_div, neg_mul, coe_neg, addOrderOf_neg]
state_before: case negSucc
𝕜 : Type u_1
B : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p q : 𝕜
hp : Fact (0 < p)
n : ℕ
hn : 0 < n
a✝ : ℕ
h : (Int.negSucc a✝).natAbs.gcd n = 1
⊢ addOrderOf ↑(↑(Int.negSucc a✝) / ↑n * p) = n
state_after: case negSucc
𝕜 : Type u_1
B : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p q : 𝕜
hp : Fact (0 < p)
n : ℕ
hn : 0 < n
a✝ : ℕ
h : (Int.negSucc a✝).natAbs.gcd n = 1
⊢ addOrderOf ↑(↑(a✝ + 1) / ↑n * p) = n

tactic: exact addOrderOf_div_of_gcd_eq_one hn h
state_before: case negSucc
𝕜 : Type u_1
B : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p q : 𝕜
hp : Fact (0 < p)
n : ℕ
hn : 0 < n
a✝ : ℕ
h : (Int.negSucc a✝).natAbs.gcd n = 1
⊢ addOrderOf ↑(↑(a✝ + 1) / ↑n * p) = n
state_after: no goals
Theorem: Int.ModEq.neg
File: Mathlib/Data/Int/ModEq.lean

tactic: simp_rw [← sub_eq_add_neg, sub_self]
state_before: m n a b c d : ℤ
h : a ≡ b [ZMOD n]
⊢ a + -a ≡ b + -b [ZMOD n]
state_after: m n a b c d : ℤ
h : a ≡ b [ZMOD n]
⊢ 0 ≡ 0 [ZMOD n]

tactic: rfl
state_before: m n a b c d : ℤ
h : a ≡ b [ZMOD n]
⊢ 0 ≡ 0 [ZMOD n]
state_after: no goals
Theorem: ker_orthogonalProjection
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: ext
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
inst✝ : HasOrthogonalProjection K
⊢ LinearMap.ker (orthogonalProjection K) = Kᗮ
state_after: case h
𝕜 : 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
inst✝ : HasOrthogonalProjection K
x✝ : E
⊢ x✝ ∈ LinearMap.ker (orthogonalProjection K) ↔ x✝ ∈ Kᗮ

tactic: exact orthogonalProjection_eq_zero_iff
state_before: case h
𝕜 : 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
inst✝ : HasOrthogonalProjection K
x✝ : E
⊢ x✝ ∈ LinearMap.ker (orthogonalProjection K) ↔ x✝ ∈ Kᗮ
state_after: no goals
Theorem: MonoidAlgebra.single_mul_single
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

tactic: rw [mul_def]
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝¹ : Semiring k
inst✝ : Mul G
a₁ a₂ : G
b₁ b₂ : k
⊢ single a₁ b₁ * single a₂ b₂ = single (a₁ * a₂) (b₁ * b₂)
state_after: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝¹ : Semiring k
inst✝ : Mul G
a₁ a₂ : G
b₁ b₂ : k
⊢ (sum (single a₁ b₁) fun a₁ b₁ => sum (single a₂ b₂) fun a₂ b₂ => single (a₁ * a₂) (b₁ * b₂)) =
    single (a₁ * a₂) (b₁ * b₂)

tactic: exact (sum_single_index (by simp only [zero_mul, single_zero, sum_zero])).trans
  (sum_single_index (by rw [mul_zero, single_zero]))
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝¹ : Semiring k
inst✝ : Mul G
a₁ a₂ : G
b₁ b₂ : k
⊢ (sum (single a₁ b₁) fun a₁ b₁ => sum (single a₂ b₂) fun a₂ b₂ => single (a₁ * a₂) (b₁ * b₂)) =
    single (a₁ * a₂) (b₁ * b₂)
state_after: no goals

tactic: simp only [zero_mul, single_zero, sum_zero]
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝¹ : Semiring k
inst✝ : Mul G
a₁ a₂ : G
b₁ b₂ : k
⊢ (sum (single a₂ b₂) fun a₂ b₂ => single (a₁ * a₂) (0 * b₂)) = 0
state_after: no goals

tactic: rw [mul_zero, single_zero]
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝¹ : Semiring k
inst✝ : Mul G
a₁ a₂ : G
b₁ b₂ : k
⊢ single (a₁ * a₂) (b₁ * 0) = 0
state_after: no goals
Theorem: MvQPF.Cofix.ext
File: Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean

tactic: rw [← Cofix.mk_dest x, h, Cofix.mk_dest]
state_before: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α : TypeVec.{u} n
x y : Cofix F α
h : x.dest = y.dest
⊢ x = y
state_after: no goals
Theorem: MeasureTheory.Integrable.norm_integral_condDistrib_map
File: Mathlib/Probability/Kernel/CondDistrib.lean

tactic: rw [condDistrib, ← Measure.fst_map_prod_mk₀ (X := X) hY]
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
F : Type u_4
inst✝⁶ : MeasurableSpace Ω
inst✝⁵ : StandardBorelSpace Ω
inst✝⁴ : Nonempty Ω
inst✝³ : NormedAddCommGroup F
mα : MeasurableSpace α
μ : Measure α
inst✝² : IsFiniteMeasure μ
X : α → β
Y : α → Ω
mβ : MeasurableSpace β
s : Set Ω
t : Set β
f : β × Ω → F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
hY : AEMeasurable Y μ
hf_int : Integrable f (Measure.map (fun a => (X a, Y a)) μ)
⊢ Integrable (fun x => ‖∫ (y : Ω), f (x, y) ∂(condDistrib Y X μ) x‖) (Measure.map X μ)
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
F : Type u_4
inst✝⁶ : MeasurableSpace Ω
inst✝⁵ : StandardBorelSpace Ω
inst✝⁴ : Nonempty Ω
inst✝³ : NormedAddCommGroup F
mα : MeasurableSpace α
μ : Measure α
inst✝² : IsFiniteMeasure μ
X : α → β
Y : α → Ω
mβ : MeasurableSpace β
s : Set Ω
t : Set β
f : β × Ω → F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
hY : AEMeasurable Y μ
hf_int : Integrable f (Measure.map (fun a => (X a, Y a)) μ)
⊢ Integrable (fun x => ‖∫ (y : Ω), f (x, y) ∂(Measure.map (fun a => (X a, Y a)) μ).condKernel x‖)
    (Measure.map (fun a => (X a, Y a)) μ).fst

tactic: exact hf_int.norm_integral_condKernel
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
F : Type u_4
inst✝⁶ : MeasurableSpace Ω
inst✝⁵ : StandardBorelSpace Ω
inst✝⁴ : Nonempty Ω
inst✝³ : NormedAddCommGroup F
mα : MeasurableSpace α
μ : Measure α
inst✝² : IsFiniteMeasure μ
X : α → β
Y : α → Ω
mβ : MeasurableSpace β
s : Set Ω
t : Set β
f : β × Ω → F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
hY : AEMeasurable Y μ
hf_int : Integrable f (Measure.map (fun a => (X a, Y a)) μ)
⊢ Integrable (fun x => ‖∫ (y : Ω), f (x, y) ∂(Measure.map (fun a => (X a, Y a)) μ).condKernel x‖)
    (Measure.map (fun a => (X a, Y a)) μ).fst
state_after: no goals
Theorem: Matrix.isHermitian_submatrix_equiv
File: Mathlib/LinearAlgebra/Matrix/Hermitian.lean

tactic: simpa using h.submatrix e.symm
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝¹ : Star α
inst✝ : Star β
A : Matrix n n α
e : m ≃ n
h : (A.submatrix ⇑e ⇑e).IsHermitian
⊢ A.IsHermitian
state_after: no goals
Theorem: TopologicalGroup.ext
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: rw [← @nhds_translation_mul_inv G t _ _ x, ← @nhds_translation_mul_inv G t' _ _ x, ← h]
state_before: G✝ : Type w
H : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G✝
inst✝³ : Group G✝
inst✝² : TopologicalGroup G✝
inst✝¹ : TopologicalSpace α
f : α → G✝
s : Set α
x✝ : α
G : Type u_1
inst✝ : Group G
t t' : TopologicalSpace G
tg : TopologicalGroup G
tg' : TopologicalGroup G
h : 𝓝 1 = 𝓝 1
x : G
⊢ 𝓝 x = 𝓝 x
state_after: no goals
Theorem: iteratedFDeriv_one_apply
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

tactic: rw [iteratedFDeriv_succ_apply_right, iteratedFDeriv_zero_apply]
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
m : Fin 1 → E
⊢ (iteratedFDeriv 𝕜 1 f x) m = (fderiv 𝕜 f x) (m 0)
state_after: 𝕜 : 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
m : Fin 1 → E
⊢ (fderiv 𝕜 f x) (m (last 0)) = (fderiv 𝕜 f x) (m 0)

tactic: rfl
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
m : Fin 1 → E
⊢ (fderiv 𝕜 f x) (m (last 0)) = (fderiv 𝕜 f x) (m 0)
state_after: no goals
Theorem: Set.infinite_prod
File: Mathlib/Data/Set/Finite.lean

tactic: refine ⟨fun h => ?_, ?_⟩
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
⊢ (s ×ˢ t).Infinite ↔ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty
state_after: case refine_1
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
h : (s ×ˢ t).Infinite
⊢ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty

case refine_2
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
⊢ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty → (s ×ˢ t).Infinite

tactic: simp_rw [Set.Infinite, @and_comm ¬_, ← Classical.not_imp]
state_before: case refine_1
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
h : (s ×ˢ t).Infinite
⊢ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty
state_after: case refine_1
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
h : (s ×ˢ t).Infinite
⊢ ¬(t.Nonempty → s.Finite) ∨ ¬(s.Nonempty → t.Finite)

tactic: by_contra!
state_before: case refine_1
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
h : (s ×ˢ t).Infinite
⊢ ¬(t.Nonempty → s.Finite) ∨ ¬(s.Nonempty → t.Finite)
state_after: case refine_1
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
h : (s ×ˢ t).Infinite
this : (t.Nonempty → s.Finite) ∧ (s.Nonempty → t.Finite)
⊢ False

tactic: exact h ((this.1 h.nonempty.snd).prod <| this.2 h.nonempty.fst)
state_before: case refine_1
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
h : (s ×ˢ t).Infinite
this : (t.Nonempty → s.Finite) ∧ (s.Nonempty → t.Finite)
⊢ False
state_after: no goals

tactic: rintro (h | h)
state_before: case refine_2
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
⊢ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty → (s ×ˢ t).Infinite
state_after: case refine_2.inl
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
h : s.Infinite ∧ t.Nonempty
⊢ (s ×ˢ t).Infinite

case refine_2.inr
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
h : t.Infinite ∧ s.Nonempty
⊢ (s ×ˢ t).Infinite

tactic: exact h.1.prod_left h.2
state_before: case refine_2.inl
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
h : s.Infinite ∧ t.Nonempty
⊢ (s ×ˢ t).Infinite
state_after: no goals

tactic: exact h.1.prod_right h.2
state_before: case refine_2.inr
α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
h : t.Infinite ∧ s.Nonempty
⊢ (s ×ˢ t).Infinite
state_after: no goals
Theorem: Polynomial.map_monic_eq_zero_iff
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: simp only [mul_one, hp.leadingCoeff, f.map_one]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
hp : p.Monic
hfp : map f p = 0
x : R
⊢ f x = f x * f p.leadingCoeff
state_after: no goals

tactic: simp only [hfp, mul_zero, coeff_zero]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
hp : p.Monic
hfp : map f p = 0
x : R
⊢ f x * (map f p).coeff p.natDegree = 0
state_after: no goals

tactic: simp only [h, coeff_map, coeff_zero]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n✝ : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
hp : p.Monic
h : ∀ (x : R), f x = 0
n : ℕ
⊢ (map f p).coeff n = coeff 0 n
state_after: no goals
Theorem: Subgroup.inf_subgroupOf_left
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: rw [inf_comm, inf_subgroupOf_right]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁵ : Group G
inst✝⁴ : Group G'
inst✝³ : Group G''
A : Type u_4
inst✝² : AddGroup A
H✝ K✝ : Subgroup G
k : Set G
N : Type u_5
inst✝¹ : Group N
P : Type u_6
inst✝ : Group P
H K : Subgroup G
⊢ (K ⊓ H).subgroupOf K = H.subgroupOf K
state_after: no goals
Theorem: NNReal.monotone_rpow_of_nonneg
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: simp only [rpow_zero, monotone_const]
state_before: w x y z✝ z : ℝ
h : 0 ≤ z
h0 : 0 = z
⊢ Monotone fun x => x ^ 0
state_after: no goals
Theorem: MeasureTheory.lintegral_indicator
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: apply le_antisymm (lintegral_indicator_le f s)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (a : α), s.indicator f a ∂μ = ∫⁻ (a : α) in s, f a ∂μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (a : α) in s, f a ∂μ ≤ ∫⁻ (a : α), s.indicator f a ∂μ

tactic: simp only [lintegral, ← restrict_lintegral_eq_lintegral_restrict _ hs, iSup_subtype']
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (a : α) in s, f a ∂μ ≤ ∫⁻ (a : α), s.indicator f a ∂μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
⊢ ⨆ x, ((↑x).restrict s).lintegral μ ≤ ⨆ x, (↑x).lintegral μ

tactic: refine iSup_mono' (Subtype.forall.2 fun φ hφ => ?_)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
⊢ ⨆ x, ((↑x).restrict s).lintegral μ ≤ ⨆ x, (↑x).lintegral μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
φ : α →ₛ ℝ≥0∞
hφ : ↑φ ≤ fun a => f a
⊢ ∃ i', ((↑⟨φ, hφ⟩).restrict s).lintegral μ ≤ (↑i').lintegral μ

tactic: refine ⟨⟨φ.restrict s, fun x => ?_⟩, le_rfl⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
φ : α →ₛ ℝ≥0∞
hφ : ↑φ ≤ fun a => f a
⊢ ∃ i', ((↑⟨φ, hφ⟩).restrict s).lintegral μ ≤ (↑i').lintegral μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
φ : α →ₛ ℝ≥0∞
hφ : ↑φ ≤ fun a => f a
x : α
⊢ ↑(φ.restrict s) x ≤ (fun a => s.indicator f a) x

tactic: simp [hφ x, hs, indicator_le_indicator]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
φ : α →ₛ ℝ≥0∞
hφ : ↑φ ≤ fun a => f a
x : α
⊢ ↑(φ.restrict s) x ≤ (fun a => s.indicator f a) x
state_after: no goals
Theorem: guard_true
File: Mathlib/Control/Basic.lean

tactic: simp [guard, if_pos]
state_before: α β γ : Type u
F : Type → Type v
inst✝ : Alternative F
h : Decidable True
⊢ guard True = pure ()
state_after: no goals
Theorem: AddCommGroup.ModEq.add_iff_right
File: Mathlib/Algebra/ModEq.lean

tactic: simp [add_sub_add_comm, hm, add_smul, ModEq]
state_before: α : Type u_1
inst✝ : AddCommGroup α
p a a₁ a₂ b b₁ b₂ c : α
n : ℕ
z : ℤ
x✝ : a₂ ≡ b₂ [PMOD p]
m : ℤ
hm : b₂ - a₂ = m • p
⊢ (∃ b, b₁ + b₂ - (a₁ + a₂) = (Equiv.symm (Equiv.addRight m)).symm b • p) ↔ a₁ ≡ b₁ [PMOD p]
state_after: no goals
Theorem: Set.diff_eq_compl_inter
File: Mathlib/Data/Set/Basic.lean

tactic: rw [diff_eq, inter_comm]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u s t : Set α
⊢ s \ t = tᶜ ∩ s
state_after: no goals
Theorem: t2Quotient.unique_lift
File: Mathlib/Topology/Separation.lean

tactic: apply surjective_mk X |>.right_cancellable |>.mp <| funext _
state_before: X✝ : Type u_1
Y✝ : Type u_2
inst✝⁴ : TopologicalSpace X✝
inst✝³ : FirstCountableTopology X✝
X : Type u_3
Y : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : T2Space Y
f : X → Y
hf : Continuous f
g : t2Quotient X → Y
hfg : g ∘ mk = f
⊢ g = lift hf
state_after: X✝ : Type u_1
Y✝ : Type u_2
inst✝⁴ : TopologicalSpace X✝
inst✝³ : FirstCountableTopology X✝
X : Type u_3
Y : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : T2Space Y
f : X → Y
hf : Continuous f
g : t2Quotient X → Y
hfg : g ∘ mk = f
⊢ ∀ (x : X), (g ∘ mk) x = (lift hf ∘ mk) x

tactic: simp [← hfg]
state_before: X✝ : Type u_1
Y✝ : Type u_2
inst✝⁴ : TopologicalSpace X✝
inst✝³ : FirstCountableTopology X✝
X : Type u_3
Y : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : T2Space Y
f : X → Y
hf : Continuous f
g : t2Quotient X → Y
hfg : g ∘ mk = f
⊢ ∀ (x : X), (g ∘ mk) x = (lift hf ∘ mk) x
state_after: no goals
Theorem: TopologicalSpace.Opens.openEmbedding_obj_top
File: Mathlib/Topology/Category/TopCat/Opens.lean

tactic: ext1
state_before: X : TopCat
U : Opens ↑X
⊢ ⋯.functor.obj ⊤ = U
state_after: case h
X : TopCat
U : Opens ↑X
⊢ ↑(⋯.functor.obj ⊤) = ↑U

tactic: exact Set.image_univ.trans Subtype.range_coe
state_before: case h
X : TopCat
U : Opens ↑X
⊢ ↑(⋯.functor.obj ⊤) = ↑U
state_after: no goals
Theorem: Multiset.dedup_map_dedup_eq
File: Mathlib/Data/Multiset/Dedup.lean

tactic: simp [dedup_ext]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
f : α → β
s : Multiset α
⊢ (map f s.dedup).dedup = (map f s).dedup
state_after: no goals
Theorem: IsCyclotomicExtension.Rat.Three.lambda_sq
File: Mathlib/NumberTheory/Cyclotomic/Three.lean

tactic: ext
state_before: K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
⊢ λ ^ 2 = -3 * ↑η
state_after: case h
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
⊢ ↑(λ ^ 2) = ↑(-3 * ↑η)

tactic: calc (λ ^ 2 : K) = η ^ 2 + η + 1 - 3 * η := by
      simp only [RingOfIntegers.map_mk, IsUnit.unit_spec]; ring
_ = 0 - 3 * η := by simpa using hζ.isRoot_cyclotomic (by decide)
_ = -3 * η := by ring
state_before: case h
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
⊢ ↑(λ ^ 2) = ↑(-3 * ↑η)
state_after: no goals

tactic: simp only [RingOfIntegers.map_mk, IsUnit.unit_spec]
state_before: K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
⊢ (↑hζ.toInteger - 1) ^ 2 = (algebraMap (𝓞 K) K) ↑η ^ 2 + (algebraMap (𝓞 K) K) ↑η + 1 - 3 * (algebraMap (𝓞 K) K) ↑η
state_after: K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
⊢ (ζ - 1) ^ 2 = ζ ^ 2 + ζ + 1 - 3 * ζ

tactic: ring
state_before: K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
⊢ (ζ - 1) ^ 2 = ζ ^ 2 + ζ + 1 - 3 * ζ
state_after: no goals

tactic: simpa using hζ.isRoot_cyclotomic (by decide)
state_before: K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
⊢ (algebraMap (𝓞 K) K) ↑η ^ 2 + (algebraMap (𝓞 K) K) ↑η + 1 - 3 * (algebraMap (𝓞 K) K) ↑η =
    0 - 3 * (algebraMap (𝓞 K) K) ↑η
state_after: no goals

tactic: decide
state_before: K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
⊢ 0 < ↑3
state_after: no goals

tactic: ring
state_before: K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
⊢ 0 - 3 * (algebraMap (𝓞 K) K) ↑η = -3 * (algebraMap (𝓞 K) K) ↑η
state_after: no goals