1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Multiset.sub_filter_eq_filter_not
File: Mathlib/Data/Multiset/Basic.lean

tactic: ext a
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝² : DecidableEq α
s✝ : Multiset α
inst✝¹ : DecidableEq α
p : α → Prop
inst✝ : DecidablePred p
s : Multiset α
⊢ s - filter p s = filter (fun a => ¬p a) s
state_after: case a
α : Type u_1
β : Type v
γ : Type u_2
inst✝² : DecidableEq α
s✝ : Multiset α
inst✝¹ : DecidableEq α
p : α → Prop
inst✝ : DecidablePred p
s : Multiset α
a : α
⊢ count a (s - filter p s) = count a (filter (fun a => ¬p a) s)

tactic: by_cases h : p a <;> simp [h]
state_before: case a
α : Type u_1
β : Type v
γ : Type u_2
inst✝² : DecidableEq α
s✝ : Multiset α
inst✝¹ : DecidableEq α
p : α → Prop
inst✝ : DecidablePred p
s : Multiset α
a : α
⊢ count a (s - filter p s) = count a (filter (fun a => ¬p a) s)
state_after: no goals
Theorem: CategoryTheory.Functor.isContinuous_comp'
File: Mathlib/CategoryTheory/Sites/CoverPreserving.lean

tactic: have := Functor.isContinuous_comp F₁ F₂ J K L
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
F : C ⥤ D
A : Type u₃
inst✝² : Category.{v₃, u₃} A
J✝ : GrothendieckTopology C
K✝ : GrothendieckTopology D
L✝ : GrothendieckTopology A
G : C ⥤ D
hG : CompatiblePreserving K✝ G
ℱ : SheafOfTypes K✝
Z : C
T : Presieve Z
x : FamilyOfElements (G.op ⋙ ℱ.val) T
h : x.Compatible
F₁ : C ⥤ D
F₂ : D ⥤ A
F₁₂ : C ⥤ A
e : F₁ ⋙ F₂ ≅ F₁₂
J : GrothendieckTopology C
K : GrothendieckTopology D
L : GrothendieckTopology A
inst✝¹ : F₁.IsContinuous J K
inst✝ : F₂.IsContinuous K L
⊢ F₁₂.IsContinuous J L
state_after: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
F : C ⥤ D
A : Type u₃
inst✝² : Category.{v₃, u₃} A
J✝ : GrothendieckTopology C
K✝ : GrothendieckTopology D
L✝ : GrothendieckTopology A
G : C ⥤ D
hG : CompatiblePreserving K✝ G
ℱ : SheafOfTypes K✝
Z : C
T : Presieve Z
x : FamilyOfElements (G.op ⋙ ℱ.val) T
h : x.Compatible
F₁ : C ⥤ D
F₂ : D ⥤ A
F₁₂ : C ⥤ A
e : F₁ ⋙ F₂ ≅ F₁₂
J : GrothendieckTopology C
K : GrothendieckTopology D
L : GrothendieckTopology A
inst✝¹ : F₁.IsContinuous J K
inst✝ : F₂.IsContinuous K L
this : (F₁ ⋙ F₂).IsContinuous J L
⊢ F₁₂.IsContinuous J L

tactic: apply Functor.isContinuous_of_iso e
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
F : C ⥤ D
A : Type u₃
inst✝² : Category.{v₃, u₃} A
J✝ : GrothendieckTopology C
K✝ : GrothendieckTopology D
L✝ : GrothendieckTopology A
G : C ⥤ D
hG : CompatiblePreserving K✝ G
ℱ : SheafOfTypes K✝
Z : C
T : Presieve Z
x : FamilyOfElements (G.op ⋙ ℱ.val) T
h : x.Compatible
F₁ : C ⥤ D
F₂ : D ⥤ A
F₁₂ : C ⥤ A
e : F₁ ⋙ F₂ ≅ F₁₂
J : GrothendieckTopology C
K : GrothendieckTopology D
L : GrothendieckTopology A
inst✝¹ : F₁.IsContinuous J K
inst✝ : F₂.IsContinuous K L
this : (F₁ ⋙ F₂).IsContinuous J L
⊢ F₁₂.IsContinuous J L
state_after: no goals
Theorem: Relation.cutExpand_add_left
File: Mathlib/Logic/Hydra.lean

tactic: rw [add_assoc, add_assoc, add_left_cancel_iff]
state_before: α : Type u_1
r : α → α → Prop
t u s x✝¹ : Multiset α
x✝ : α
⊢ s + t + {x✝} = s + u + x✝¹ ↔ t + {x✝} = u + x✝¹
state_after: no goals
Theorem: Matrix.charmatrix_apply_ne
File: Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean

tactic: simp only [charmatrix, RingHom.mapMatrix_apply, sub_apply, scalar_apply, diagonal_apply_ne _ h,
  map_apply, sub_eq_neg_self]
state_before: R : Type u_1
S : Type u_2
inst✝⁵ : CommRing R
inst✝⁴ : CommRing S
m : Type u_3
n : Type u_4
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Fintype m
inst✝ : Fintype n
M₁₁ : Matrix m m R
M₁₂ : Matrix m n R
M₂₁ : Matrix n m R
M₂₂ M : Matrix n n R
i j : n
h : i ≠ j
⊢ M.charmatrix i j = -C (M i j)
state_after: no goals
Theorem: CompleteLattice.Independent.subtype_ne_bot_le_finrank
File: Mathlib/LinearAlgebra/Dimension/Finite.lean

tactic: simpa using hp.subtype_ne_bot_le_finrank_aux
state_before: R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝¹⁰ : Ring R
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup M'
inst✝⁷ : AddCommGroup M₁
inst✝⁶ : Module R M
inst✝⁵ : Module R M'
inst✝⁴ : Module R M₁
inst✝³ : StrongRankCondition R
inst✝² : Module.Finite R M
inst✝¹ : NoZeroSMulDivisors R M
p : ι → Submodule R M
hp : Independent p
inst✝ : Fintype { i // p i ≠ ⊥ }
⊢ Fintype.card { i // p i ≠ ⊥ } ≤ finrank R M
state_after: no goals
Theorem: hasDerivAt_circleMap
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: simpa only [mul_assoc, one_mul, ofRealCLM_apply, circleMap, ofReal_one, zero_add]
  using (((ofRealCLM.hasDerivAt (x := θ)).mul_const I).cexp.const_mul (R : ℂ)).const_add c
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
c : ℂ
R θ : ℝ
⊢ HasDerivAt (circleMap c R) (circleMap 0 R θ * I) θ
state_after: no goals
Theorem: Order.not_isPredLimit_pred_of_not_isMin
File: Mathlib/Order/SuccPred/Limit.lean

tactic: contrapose! ha
state_before: α : Type u_1
inst✝¹ : Preorder α
a : α
inst✝ : PredOrder α
ha : ¬IsMin a
⊢ ¬IsPredLimit (pred a)
state_after: α : Type u_1
inst✝¹ : Preorder α
a : α
inst✝ : PredOrder α
ha : IsPredLimit (pred a)
⊢ IsMin a

tactic: exact ha.isMin
state_before: α : Type u_1
inst✝¹ : Preorder α
a : α
inst✝ : PredOrder α
ha : IsPredLimit (pred a)
⊢ IsMin a
state_after: no goals
Theorem: collinear_insert_insert_of_mem_affineSpan_pair
File: Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean

tactic: rw [collinear_insert_iff_of_mem_affineSpan
    ((AffineSubspace.le_def' _ _).1 (affineSpan_mono k (Set.subset_insert _ _)) _ h₁),
  collinear_insert_iff_of_mem_affineSpan h₂]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ p₃ p₄ : P
h₁ : p₁ ∈ affineSpan k {p₃, p₄}
h₂ : p₂ ∈ affineSpan k {p₃, p₄}
⊢ Collinear k {p₁, p₂, p₃, p₄}
state_after: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ p₃ p₄ : P
h₁ : p₁ ∈ affineSpan k {p₃, p₄}
h₂ : p₂ ∈ affineSpan k {p₃, p₄}
⊢ Collinear k {p₃, p₄}

tactic: exact collinear_pair _ _ _
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ p₃ p₄ : P
h₁ : p₁ ∈ affineSpan k {p₃, p₄}
h₂ : p₂ ∈ affineSpan k {p₃, p₄}
⊢ Collinear k {p₃, p₄}
state_after: no goals
Theorem: Cardinal.ofENat_le_lift
File: Mathlib/SetTheory/Cardinal/ENat.lean

tactic: rw [← lift_ofENat.{u, v}, lift_le]
state_before: x : Cardinal.{v}
m : ℕ∞
⊢ ↑m ≤ lift.{u, v} x ↔ ↑m ≤ x
state_after: no goals
Theorem: PMF.uniformOfFinset_apply_of_not_mem
File: Mathlib/Probability/Distributions/Uniform.lean

tactic: simp [ha]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s : Finset α
hs : s.Nonempty
a : α
ha : a ∉ s
⊢ (uniformOfFinset s hs) a = 0
state_after: no goals
Theorem: Set.iSup_iInf_of_monotone
File: Mathlib/Data/Set/Finite.lean

tactic: simpa only [iInf_univ] using finite_univ.iSup_biInf_of_monotone fun i _ => hf i
state_before: α✝ : Type u
β : Type v
ι✝ : Sort w
γ : Type x
s t : Set α✝
ι : Type u_1
ι' : Type u_2
α : Type u_3
inst✝⁴ : Finite ι
inst✝³ : Preorder ι'
inst✝² : Nonempty ι'
inst✝¹ : IsDirected ι' fun x x_1 => x ≤ x_1
inst✝ : Order.Frame α
f : ι → ι' → α
hf : ∀ (i : ι), Monotone (f i)
⊢ ⨆ j, ⨅ i, f i j = ⨅ i, ⨆ j, f i j
state_after: no goals
Theorem: LaurentPolynomial.degree_C_le
File: Mathlib/Algebra/Polynomial/Laurent.lean

tactic: rw [T_zero, mul_one]
state_before: R : Type u_1
inst✝ : Semiring R
a : R
⊢ (C a).degree = (C a * T 0).degree
state_after: no goals
Theorem: Nat.prod_factorial_pos
File: Mathlib/Data/Nat/Factorial/BigOperators.lean

tactic: positivity
state_before: α : Type u_1
s : Finset α
f : α → ℕ
⊢ 0 < ∏ i ∈ s, (f i)!
state_after: no goals
Theorem: List.Ico.filter_lt_of_top_le
File: Mathlib/Data/List/Intervals.lean

tactic: simp only [(lt_of_lt_of_le (mem.1 hk).2 hml), decide_True]
state_before: n m l : ℕ
hml : m ≤ l
k : ℕ
hk : k ∈ Ico n m
⊢ decide (k < l) = true
state_after: no goals
Theorem: CochainComplex.HomComplex.Cocycle.homOf_ofHom_eq_self
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean

tactic: aesop_cat
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m : ℤ
φ : F ⟶ G
⊢ (ofHom φ).homOf = φ
state_after: no goals
Theorem: HomologicalComplex.XIsoOfEq_hom_comp_XIsoOfEq_inv
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

tactic: dsimp [XIsoOfEq]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
K : HomologicalComplex V c
p₁ p₂ p₃ : ι
h₁₂ : p₁ = p₂
h₃₂ : p₃ = p₂
⊢ (K.XIsoOfEq h₁₂).hom ≫ (K.XIsoOfEq h₃₂).inv = (K.XIsoOfEq ⋯).hom
state_after: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
K : HomologicalComplex V c
p₁ p₂ p₃ : ι
h₁₂ : p₁ = p₂
h₃₂ : p₃ = p₂
⊢ eqToHom ⋯ ≫ eqToHom ⋯ = eqToHom ⋯

tactic: simp only [eqToHom_trans]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
K : HomologicalComplex V c
p₁ p₂ p₃ : ι
h₁₂ : p₁ = p₂
h₃₂ : p₃ = p₂
⊢ eqToHom ⋯ ≫ eqToHom ⋯ = eqToHom ⋯
state_after: no goals
Theorem: exists_pow_ne_one_of_isCyclic
File: Mathlib/GroupTheory/SpecificGroups/Cyclic.lean

tactic: rcases G_cyclic with ⟨a, ha⟩
state_before: α : Type u
a : α
inst✝² : Group α
G : Type u_1
inst✝¹ : Group G
inst✝ : Fintype G
G_cyclic : IsCyclic G
k : ℕ
k_pos : k ≠ 0
k_lt_card_G : k < Fintype.card G
⊢ ∃ a, a ^ k ≠ 1
state_after: case mk.intro
α : Type u
a✝ : α
inst✝² : Group α
G : Type u_1
inst✝¹ : Group G
inst✝ : Fintype G
k : ℕ
k_pos : k ≠ 0
k_lt_card_G : k < Fintype.card G
a : G
ha : ∀ (x : G), x ∈ zpowers a
⊢ ∃ a, a ^ k ≠ 1

tactic: use a
state_before: case mk.intro
α : Type u
a✝ : α
inst✝² : Group α
G : Type u_1
inst✝¹ : Group G
inst✝ : Fintype G
k : ℕ
k_pos : k ≠ 0
k_lt_card_G : k < Fintype.card G
a : G
ha : ∀ (x : G), x ∈ zpowers a
⊢ ∃ a, a ^ k ≠ 1
state_after: case h
α : Type u
a✝ : α
inst✝² : Group α
G : Type u_1
inst✝¹ : Group G
inst✝ : Fintype G
k : ℕ
k_pos : k ≠ 0
k_lt_card_G : k < Fintype.card G
a : G
ha : ∀ (x : G), x ∈ zpowers a
⊢ a ^ k ≠ 1

tactic: contrapose! k_lt_card_G
state_before: case h
α : Type u
a✝ : α
inst✝² : Group α
G : Type u_1
inst✝¹ : Group G
inst✝ : Fintype G
k : ℕ
k_pos : k ≠ 0
k_lt_card_G : k < Fintype.card G
a : G
ha : ∀ (x : G), x ∈ zpowers a
⊢ a ^ k ≠ 1
state_after: case h
α : Type u
a✝ : α
inst✝² : Group α
G : Type u_1
inst✝¹ : Group G
inst✝ : Fintype G
k : ℕ
k_pos : k ≠ 0
a : G
ha : ∀ (x : G), x ∈ zpowers a
k_lt_card_G : a ^ k = 1
⊢ Fintype.card G ≤ k

tactic: convert orderOf_le_of_pow_eq_one k_pos.bot_lt k_lt_card_G
state_before: case h
α : Type u
a✝ : α
inst✝² : Group α
G : Type u_1
inst✝¹ : Group G
inst✝ : Fintype G
k : ℕ
k_pos : k ≠ 0
a : G
ha : ∀ (x : G), x ∈ zpowers a
k_lt_card_G : a ^ k = 1
⊢ Fintype.card G ≤ k
state_after: case h.e'_3
α : Type u
a✝ : α
inst✝² : Group α
G : Type u_1
inst✝¹ : Group G
inst✝ : Fintype G
k : ℕ
k_pos : k ≠ 0
a : G
ha : ∀ (x : G), x ∈ zpowers a
k_lt_card_G : a ^ k = 1
⊢ Fintype.card G = orderOf a

tactic: rw [← Nat.card_eq_fintype_card, ← Nat.card_zpowers, eq_comm, card_eq_iff_eq_top, eq_top_iff]
state_before: case h.e'_3
α : Type u
a✝ : α
inst✝² : Group α
G : Type u_1
inst✝¹ : Group G
inst✝ : Fintype G
k : ℕ
k_pos : k ≠ 0
a : G
ha : ∀ (x : G), x ∈ zpowers a
k_lt_card_G : a ^ k = 1
⊢ Fintype.card G = orderOf a
state_after: case h.e'_3
α : Type u
a✝ : α
inst✝² : Group α
G : Type u_1
inst✝¹ : Group G
inst✝ : Fintype G
k : ℕ
k_pos : k ≠ 0
a : G
ha : ∀ (x : G), x ∈ zpowers a
k_lt_card_G : a ^ k = 1
⊢ ⊤ ≤ zpowers a

tactic: exact fun x _ ↦ ha x
state_before: case h.e'_3
α : Type u
a✝ : α
inst✝² : Group α
G : Type u_1
inst✝¹ : Group G
inst✝ : Fintype G
k : ℕ
k_pos : k ≠ 0
a : G
ha : ∀ (x : G), x ∈ zpowers a
k_lt_card_G : a ^ k = 1
⊢ ⊤ ≤ zpowers a
state_after: no goals
Theorem: MeasureTheory.weightedSMul_add_measure
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: ext1 x
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
hνs : ν s ≠ ⊤
⊢ weightedSMul (μ + ν) s = weightedSMul μ s + weightedSMul ν s
state_after: case h
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
hνs : ν s ≠ ⊤
x : F
⊢ (weightedSMul (μ + ν) s) x = (weightedSMul μ s + weightedSMul ν s) x

tactic: push_cast
state_before: case h
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
hνs : ν s ≠ ⊤
x : F
⊢ (weightedSMul (μ + ν) s) x = (weightedSMul μ s + weightedSMul ν s) x
state_after: case h
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
hνs : ν s ≠ ⊤
x : F
⊢ (weightedSMul (μ + ν) s) x = (⇑(weightedSMul μ s) + ⇑(weightedSMul ν s)) x

tactic: simp_rw [Pi.add_apply, weightedSMul_apply]
state_before: case h
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
hνs : ν s ≠ ⊤
x : F
⊢ (weightedSMul (μ + ν) s) x = (⇑(weightedSMul μ s) + ⇑(weightedSMul ν s)) x
state_after: case h
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
hνs : ν s ≠ ⊤
x : F
⊢ ((μ + ν) s).toReal • x = (μ s).toReal • x + (ν s).toReal • x

tactic: push_cast
state_before: case h
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
hνs : ν s ≠ ⊤
x : F
⊢ ((μ + ν) s).toReal • x = (μ s).toReal • x + (ν s).toReal • x
state_after: case h
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
hνs : ν s ≠ ⊤
x : F
⊢ ((⇑μ + ⇑ν) s).toReal • x = (μ s).toReal • x + (ν s).toReal • x

tactic: rw [Pi.add_apply, ENNReal.toReal_add hμs hνs, add_smul]
state_before: case h
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
hνs : ν s ≠ ⊤
x : F
⊢ ((⇑μ + ⇑ν) s).toReal • x = (μ s).toReal • x + (ν s).toReal • x
state_after: no goals
Theorem: CategoryTheory.Subobject.ofMkLEMk_refl
File: Mathlib/CategoryTheory/Subobject/Basic.lean

tactic: apply (cancel_mono f).mp
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
X Y Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
B A₁ : C
f : A₁ ⟶ B
inst✝ : Mono f
⊢ ofMkLEMk f f ⋯ = 𝟙 A₁
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
X Y Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
B A₁ : C
f : A₁ ⟶ B
inst✝ : Mono f
⊢ ofMkLEMk f f ⋯ ≫ f = 𝟙 A₁ ≫ f

tactic: simp
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
X Y Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
B A₁ : C
f : A₁ ⟶ B
inst✝ : Mono f
⊢ ofMkLEMk f f ⋯ ≫ f = 𝟙 A₁ ≫ f
state_after: no goals
Theorem: mem_primitiveRoots
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: rw [primitiveRoots, mem_filter, Multiset.mem_toFinset, mem_nthRoots h0, and_iff_right_iff_imp]
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
ζ : R
h0 : 0 < k
⊢ ζ ∈ primitiveRoots k R ↔ IsPrimitiveRoot ζ k
state_after: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
ζ : R
h0 : 0 < k
⊢ IsPrimitiveRoot ζ k → ζ ^ k = 1

tactic: exact IsPrimitiveRoot.pow_eq_one
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
ζ : R
h0 : 0 < k
⊢ IsPrimitiveRoot ζ k → ζ ^ k = 1
state_after: no goals
Theorem: MeasurableEquiv.coe_piCongrLeft
File: Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
inst✝² : MeasurableSpace δ
π : δ' → Type u_6
π' : δ' → Type u_7
inst✝¹ : (x : δ') → MeasurableSpace (π x)
inst✝ : (x : δ') → MeasurableSpace (π' x)
f : δ ≃ δ'
⊢ ⇑(piCongrLeft π f) = ⇑(Equiv.piCongrLeft π f)
state_after: no goals
Theorem: Set.eqOn_univ
File: Mathlib/Data/Set/Function.lean

tactic: simp [EqOn, funext_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁✝ f₂✝ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
f₁ f₂ : α → β
⊢ EqOn f₁ f₂ univ ↔ f₁ = f₂
state_after: no goals
Theorem: TopologicalSpace.noetherianSpace_set_iff
File: Mathlib/Topology/NoetherianSpace.lean

tactic: simp only [noetherianSpace_iff_isCompact, embedding_subtype_val.isCompact_iff,
  Subtype.forall_set_subtype]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s : Set α
⊢ NoetherianSpace ↑s ↔ ∀ t ⊆ s, IsCompact t
state_after: no goals
Theorem: ProbabilityTheory.condIndep_iff
File: Mathlib/Probability/Independence/Conditional.lean

tactic: rw [condIndep_iff_condIndepSets, condIndepSets_iff]
state_before: Ω : Type u_1
ι : Type u_2
m' m₁ m₂ mΩ : MeasurableSpace Ω
inst✝² : StandardBorelSpace Ω
inst✝¹ : Nonempty Ω
hm' : m' ≤ mΩ
hm₁ : m₁ ≤ mΩ
hm₂ : m₂ ≤ mΩ
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
⊢ CondIndep m' m₁ m₂ hm' μ ↔
    ∀ (t1 t2 : Set Ω),
      MeasurableSet t1 →
        MeasurableSet t2 →
          μ[(t1 ∩ t2).indicator fun ω => 1|m'] =ᶠ[ae μ] μ[t1.indicator fun ω => 1|m'] * μ[t2.indicator fun ω => 1|m']
state_after: Ω : Type u_1
ι : Type u_2
m' m₁ m₂ mΩ : MeasurableSpace Ω
inst✝² : StandardBorelSpace Ω
inst✝¹ : Nonempty Ω
hm' : m' ≤ mΩ
hm₁ : m₁ ≤ mΩ
hm₂ : m₂ ≤ mΩ
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
⊢ (∀ (t1 t2 : Set Ω),
      t1 ∈ {s | MeasurableSet s} →
        t2 ∈ {s | MeasurableSet s} →
          μ[(t1 ∩ t2).indicator fun ω => 1|m'] =ᶠ[ae μ] μ[t1.indicator fun ω => 1|m'] * μ[t2.indicator fun ω => 1|m']) ↔
    ∀ (t1 t2 : Set Ω),
      MeasurableSet t1 →
        MeasurableSet t2 →
          μ[(t1 ∩ t2).indicator fun ω => 1|m'] =ᶠ[ae μ] μ[t1.indicator fun ω => 1|m'] * μ[t2.indicator fun ω => 1|m']

case hs1
Ω : Type u_1
ι : Type u_2
m' m₁ m₂ mΩ : MeasurableSpace Ω
inst✝² : StandardBorelSpace Ω
inst✝¹ : Nonempty Ω
hm' : m' ≤ mΩ
hm₁ : m₁ ≤ mΩ
hm₂ : m₂ ≤ mΩ
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
⊢ ∀ s ∈ {s | MeasurableSet s}, MeasurableSet s

case hs2
Ω : Type u_1
ι : Type u_2
m' m₁ m₂ mΩ : MeasurableSpace Ω
inst✝² : StandardBorelSpace Ω
inst✝¹ : Nonempty Ω
hm' : m' ≤ mΩ
hm₁ : m₁ ≤ mΩ
hm₂ : m₂ ≤ mΩ
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
⊢ ∀ s ∈ {s | MeasurableSet s}, MeasurableSet s

tactic: rfl
state_before: Ω : Type u_1
ι : Type u_2
m' m₁ m₂ mΩ : MeasurableSpace Ω
inst✝² : StandardBorelSpace Ω
inst✝¹ : Nonempty Ω
hm' : m' ≤ mΩ
hm₁ : m₁ ≤ mΩ
hm₂ : m₂ ≤ mΩ
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
⊢ (∀ (t1 t2 : Set Ω),
      t1 ∈ {s | MeasurableSet s} →
        t2 ∈ {s | MeasurableSet s} →
          μ[(t1 ∩ t2).indicator fun ω => 1|m'] =ᶠ[ae μ] μ[t1.indicator fun ω => 1|m'] * μ[t2.indicator fun ω => 1|m']) ↔
    ∀ (t1 t2 : Set Ω),
      MeasurableSet t1 →
        MeasurableSet t2 →
          μ[(t1 ∩ t2).indicator fun ω => 1|m'] =ᶠ[ae μ] μ[t1.indicator fun ω => 1|m'] * μ[t2.indicator fun ω => 1|m']
state_after: no goals

tactic: exact hm₁
state_before: case hs1
Ω : Type u_1
ι : Type u_2
m' m₁ m₂ mΩ : MeasurableSpace Ω
inst✝² : StandardBorelSpace Ω
inst✝¹ : Nonempty Ω
hm' : m' ≤ mΩ
hm₁ : m₁ ≤ mΩ
hm₂ : m₂ ≤ mΩ
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
⊢ ∀ s ∈ {s | MeasurableSet s}, MeasurableSet s
state_after: no goals

tactic: exact hm₂
state_before: case hs2
Ω : Type u_1
ι : Type u_2
m' m₁ m₂ mΩ : MeasurableSpace Ω
inst✝² : StandardBorelSpace Ω
inst✝¹ : Nonempty Ω
hm' : m' ≤ mΩ
hm₁ : m₁ ≤ mΩ
hm₂ : m₂ ≤ mΩ
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
⊢ ∀ s ∈ {s | MeasurableSet s}, MeasurableSet s
state_after: no goals
Theorem: Polynomial.coeff_toSubring
File: Mathlib/RingTheory/Polynomial/Basic.lean

tactic: simp only [toSubring, coeff_monomial, finset_sum_coeff, mem_support_iff, Finset.sum_ite_eq',
  Ne, ite_not]
state_before: R : Type u
S : Type u_1
inst✝¹ : Ring R
inst✝ : Semiring S
f : R →+* S
x : S
p : R[X]
T : Subring R
hp : ↑p.coeffs ⊆ ↑T
n : ℕ
⊢ ↑((p.toSubring T hp).coeff n) = p.coeff n
state_after: R : Type u
S : Type u_1
inst✝¹ : Ring R
inst✝ : Semiring S
f : R →+* S
x : S
p : R[X]
T : Subring R
hp : ↑p.coeffs ⊆ ↑T
n : ℕ
⊢ ↑(if p.coeff n = 0 then 0 else ⟨p.coeff n, ⋯⟩) = p.coeff n

tactic: split_ifs with h
state_before: R : Type u
S : Type u_1
inst✝¹ : Ring R
inst✝ : Semiring S
f : R →+* S
x : S
p : R[X]
T : Subring R
hp : ↑p.coeffs ⊆ ↑T
n : ℕ
⊢ ↑(if p.coeff n = 0 then 0 else ⟨p.coeff n, ⋯⟩) = p.coeff n
state_after: case pos
R : Type u
S : Type u_1
inst✝¹ : Ring R
inst✝ : Semiring S
f : R →+* S
x : S
p : R[X]
T : Subring R
hp : ↑p.coeffs ⊆ ↑T
n : ℕ
h : p.coeff n = 0
⊢ ↑0 = p.coeff n

case neg
R : Type u
S : Type u_1
inst✝¹ : Ring R
inst✝ : Semiring S
f : R →+* S
x : S
p : R[X]
T : Subring R
hp : ↑p.coeffs ⊆ ↑T
n : ℕ
h : ¬p.coeff n = 0
⊢ ↑⟨p.coeff n, ⋯⟩ = p.coeff n

tactic: rw [h]
state_before: case pos
R : Type u
S : Type u_1
inst✝¹ : Ring R
inst✝ : Semiring S
f : R →+* S
x : S
p : R[X]
T : Subring R
hp : ↑p.coeffs ⊆ ↑T
n : ℕ
h : p.coeff n = 0
⊢ ↑0 = p.coeff n
state_after: case pos
R : Type u
S : Type u_1
inst✝¹ : Ring R
inst✝ : Semiring S
f : R →+* S
x : S
p : R[X]
T : Subring R
hp : ↑p.coeffs ⊆ ↑T
n : ℕ
h : p.coeff n = 0
⊢ ↑0 = 0

tactic: rfl
state_before: case pos
R : Type u
S : Type u_1
inst✝¹ : Ring R
inst✝ : Semiring S
f : R →+* S
x : S
p : R[X]
T : Subring R
hp : ↑p.coeffs ⊆ ↑T
n : ℕ
h : p.coeff n = 0
⊢ ↑0 = 0
state_after: no goals

tactic: rfl
state_before: case neg
R : Type u
S : Type u_1
inst✝¹ : Ring R
inst✝ : Semiring S
f : R →+* S
x : S
p : R[X]
T : Subring R
hp : ↑p.coeffs ⊆ ↑T
n : ℕ
h : ¬p.coeff n = 0
⊢ ↑⟨p.coeff n, ⋯⟩ = p.coeff n
state_after: no goals
Theorem: HasStrictDerivAt.complexToReal_fderiv
File: Mathlib/Analysis/Complex/RealDeriv.lean

tactic: simpa only [Complex.restrictScalars_one_smulRight] using h.hasStrictFDerivAt.restrictScalars ℝ
state_before: e : ℂ → ℂ
e' : ℂ
z : ℝ
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℂ → ℂ
f' x : ℂ
h : HasStrictDerivAt f f' x
⊢ HasStrictFDerivAt f (f' • 1) x
state_after: no goals
Theorem: MeasureTheory.Measure.prod_apply
File: Mathlib/MeasureTheory/Constructions/Prod/Basic.lean

tactic: simp_rw [Measure.prod, bind_apply hs (Measurable.map_prod_mk_left (ν := ν)),
  map_apply measurable_prod_mk_left hs]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SFinite ν
s : Set (α × β)
hs : MeasurableSet s
⊢ (μ.prod ν) s = ∫⁻ (x : α), ν (Prod.mk x ⁻¹' s) ∂μ
state_after: no goals