1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Group.normalClosure_subset
File: Mathlib/Deprecated/Subgroup.lean

tactic: induction' w with x hx x _ ihx x y _ _ ihx ihy
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a✝ a₁ a₂ b c : G
s✝ : Set G
inst✝ : Group G
s t : Set G
ht : IsNormalSubgroup t
h : s ⊆ t
a : G
w : a ∈ normalClosure s
⊢ a ∈ t
state_after: case basic
G : Type u_1
H : Type u_2
A : Type u_3
a✝ a₁ a₂ b c : G
s✝ : Set G
inst✝ : Group G
s t : Set G
ht : IsNormalSubgroup t
h : s ⊆ t
a x : G
hx : x ∈ conjugatesOfSet s
⊢ x ∈ t

case one
G : Type u_1
H : Type u_2
A : Type u_3
a✝ a₁ a₂ b c : G
s✝ : Set G
inst✝ : Group G
s t : Set G
ht : IsNormalSubgroup t
h : s ⊆ t
a : G
⊢ 1 ∈ t

case inv
G : Type u_1
H : Type u_2
A : Type u_3
a✝¹ a₁ a₂ b c : G
s✝ : Set G
inst✝ : Group G
s t : Set G
ht : IsNormalSubgroup t
h : s ⊆ t
a x : G
a✝ : InClosure (conjugatesOfSet s) x
ihx : x ∈ t
⊢ x⁻¹ ∈ t

case mul
G : Type u_1
H : Type u_2
A : Type u_3
a✝² a₁ a₂ b c : G
s✝ : Set G
inst✝ : Group G
s t : Set G
ht : IsNormalSubgroup t
h : s ⊆ t
a x y : G
a✝¹ : InClosure (conjugatesOfSet s) x
a✝ : InClosure (conjugatesOfSet s) y
ihx : x ∈ t
ihy : y ∈ t
⊢ x * y ∈ t

tactic: exact conjugatesOfSet_subset' ht h <| hx
state_before: case basic
G : Type u_1
H : Type u_2
A : Type u_3
a✝ a₁ a₂ b c : G
s✝ : Set G
inst✝ : Group G
s t : Set G
ht : IsNormalSubgroup t
h : s ⊆ t
a x : G
hx : x ∈ conjugatesOfSet s
⊢ x ∈ t
state_after: no goals

tactic: exact ht.toIsSubgroup.toIsSubmonoid.one_mem
state_before: case one
G : Type u_1
H : Type u_2
A : Type u_3
a✝ a₁ a₂ b c : G
s✝ : Set G
inst✝ : Group G
s t : Set G
ht : IsNormalSubgroup t
h : s ⊆ t
a : G
⊢ 1 ∈ t
state_after: no goals

tactic: exact ht.toIsSubgroup.inv_mem ihx
state_before: case inv
G : Type u_1
H : Type u_2
A : Type u_3
a✝¹ a₁ a₂ b c : G
s✝ : Set G
inst✝ : Group G
s t : Set G
ht : IsNormalSubgroup t
h : s ⊆ t
a x : G
a✝ : InClosure (conjugatesOfSet s) x
ihx : x ∈ t
⊢ x⁻¹ ∈ t
state_after: no goals

tactic: exact ht.toIsSubgroup.toIsSubmonoid.mul_mem ihx ihy
state_before: case mul
G : Type u_1
H : Type u_2
A : Type u_3
a✝² a₁ a₂ b c : G
s✝ : Set G
inst✝ : Group G
s t : Set G
ht : IsNormalSubgroup t
h : s ⊆ t
a x y : G
a✝¹ : InClosure (conjugatesOfSet s) x
a✝ : InClosure (conjugatesOfSet s) y
ihx : x ∈ t
ihy : y ∈ t
⊢ x * y ∈ t
state_after: no goals
Theorem: BoxIntegral.Prepartition.iUnion_top
File: Mathlib/Analysis/BoxIntegral/Partition/Basic.lean

tactic: simp [Prepartition.iUnion]
state_before: ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
⊢ ⊤.iUnion = ↑I
state_after: no goals
Theorem: HasDerivAt.log
File: Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean

tactic: rw [← hasDerivWithinAt_univ] at *
state_before: f : ℝ → ℝ
x f' : ℝ
s : Set ℝ
hf : HasDerivAt f f' x
hx : f x ≠ 0
⊢ HasDerivAt (fun y => Real.log (f y)) (f' / f x) x
state_after: f : ℝ → ℝ
x f' : ℝ
s : Set ℝ
hf : HasDerivWithinAt f f' Set.univ x
hx : f x ≠ 0
⊢ HasDerivWithinAt (fun y => Real.log (f y)) (f' / f x) Set.univ x

tactic: exact hf.log hx
state_before: f : ℝ → ℝ
x f' : ℝ
s : Set ℝ
hf : HasDerivWithinAt f f' Set.univ x
hx : f x ≠ 0
⊢ HasDerivWithinAt (fun y => Real.log (f y)) (f' / f x) Set.univ x
state_after: no goals
Theorem: Bool.le_and
File: Mathlib/Data/Bool/Basic.lean

tactic: decide
state_before: ⊢ ∀ {x y z : Bool}, x ≤ y → x ≤ z → x ≤ (y && z)
state_after: no goals
Theorem: meas_lt_essInf
File: Mathlib/MeasureTheory/Function/EssSup.lean

tactic: simp_rw [← not_le]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : ConditionallyCompleteLinearOrder β
x : β
f : α → β
inst✝² : TopologicalSpace β
inst✝¹ : FirstCountableTopology β
inst✝ : OrderTopology β
hf : autoParam (IsBoundedUnder (fun x x_1 => x ≥ x_1) (ae μ) f) _auto✝
⊢ μ {y | f y < essInf f μ} = 0
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : ConditionallyCompleteLinearOrder β
x : β
f : α → β
inst✝² : TopologicalSpace β
inst✝¹ : FirstCountableTopology β
inst✝ : OrderTopology β
hf : autoParam (IsBoundedUnder (fun x x_1 => x ≥ x_1) (ae μ) f) _auto✝
⊢ μ {y | ¬essInf f μ ≤ f y} = 0

tactic: exact ae_essInf_le hf
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : ConditionallyCompleteLinearOrder β
x : β
f : α → β
inst✝² : TopologicalSpace β
inst✝¹ : FirstCountableTopology β
inst✝ : OrderTopology β
hf : autoParam (IsBoundedUnder (fun x x_1 => x ≥ x_1) (ae μ) f) _auto✝
⊢ μ {y | ¬essInf f μ ≤ f y} = 0
state_after: no goals
Theorem: IsSelfAdjoint.add_star_self
File: Mathlib/Algebra/Star/SelfAdjoint.lean

tactic: simp only [isSelfAdjoint_iff, add_comm, star_add, star_star]
state_before: R : Type u_1
A : Type u_2
inst✝¹ : AddCommMonoid R
inst✝ : StarAddMonoid R
x : R
⊢ IsSelfAdjoint (x + star x)
state_after: no goals
Theorem: lowerCentralSeries_nilpotencyClass
File: Mathlib/GroupTheory/Nilpotent.lean

tactic: rw [← lowerCentralSeries_length_eq_nilpotencyClass]
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
hG : Group.IsNilpotent G
⊢ lowerCentralSeries G (Group.nilpotencyClass G) = ⊥
state_after: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
hG : Group.IsNilpotent G
⊢ lowerCentralSeries G (Nat.find ⋯) = ⊥

tactic: exact Nat.find_spec (nilpotent_iff_lowerCentralSeries.mp hG)
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
hG : Group.IsNilpotent G
⊢ lowerCentralSeries G (Nat.find ⋯) = ⊥
state_after: no goals
Theorem: Units.mul_liftRight_inv
File: Mathlib/Algebra/Group/Units/Hom.lean

tactic: rw [Units.mul_inv_eq_iff_eq_mul, one_mul, coe_liftRight]
state_before: α : Type u_1
M : Type u
N : Type v
P : Type w
inst✝² : Monoid M
inst✝¹ : Monoid N
inst✝ : Monoid P
f : M →* N
g : M → Nˣ
h : ∀ (x : M), ↑(g x) = f x
x : M
⊢ f x * ↑((liftRight f g h) x)⁻¹ = 1
state_after: no goals
Theorem: codisjoint_inf_left
File: Mathlib/Order/Disjoint.lean

tactic: simp only [codisjoint_iff, sup_inf_right, inf_eq_top_iff]
state_before: α : Type u_1
inst✝¹ : DistribLattice α
inst✝ : OrderTop α
a b c : α
⊢ Codisjoint (a ⊓ b) c ↔ Codisjoint a c ∧ Codisjoint b c
state_after: no goals
Theorem: LinearMap.baseChange_neg
File: Mathlib/RingTheory/TensorProduct/Basic.lean

tactic: ext
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
inst✝⁸ : CommRing R
inst✝⁷ : Ring A
inst✝⁶ : Algebra R A
inst✝⁵ : Ring B
inst✝⁴ : Algebra R B
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
f g : M →ₗ[R] N
⊢ baseChange A (-f) = -baseChange A f
state_after: case a.h.h
R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
inst✝⁸ : CommRing R
inst✝⁷ : Ring A
inst✝⁶ : Algebra R A
inst✝⁵ : Ring B
inst✝⁴ : Algebra R B
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
f g : M →ₗ[R] N
x✝ : M
⊢ ((AlgebraTensorModule.curry (baseChange A (-f))) 1) x✝ = ((AlgebraTensorModule.curry (-baseChange A f)) 1) x✝

tactic: simp [baseChange_eq_ltensor, tmul_neg]
state_before: case a.h.h
R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
inst✝⁸ : CommRing R
inst✝⁷ : Ring A
inst✝⁶ : Algebra R A
inst✝⁵ : Ring B
inst✝⁴ : Algebra R B
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
f g : M →ₗ[R] N
x✝ : M
⊢ ((AlgebraTensorModule.curry (baseChange A (-f))) 1) x✝ = ((AlgebraTensorModule.curry (-baseChange A f)) 1) x✝
state_after: no goals
Theorem: CategoryTheory.Adjunction.natTransEquiv_comp_symm
File: Mathlib/CategoryTheory/Adjunction/Unique.lean

tactic: apply (natTransEquiv adj1 adj3).injective
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : F' ⟶ F
g : F'' ⟶ F'
⊢ (adj1.natTransEquiv adj2).symm f ≫ (adj2.natTransEquiv adj3).symm g = (adj1.natTransEquiv adj3).symm (g ≫ f)
state_after: case a
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : F' ⟶ F
g : F'' ⟶ F'
⊢ (adj1.natTransEquiv adj3) ((adj1.natTransEquiv adj2).symm f ≫ (adj2.natTransEquiv adj3).symm g) =
    (adj1.natTransEquiv adj3) ((adj1.natTransEquiv adj3).symm (g ≫ f))

tactic: ext
state_before: case a
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : F' ⟶ F
g : F'' ⟶ F'
⊢ (adj1.natTransEquiv adj3) ((adj1.natTransEquiv adj2).symm f ≫ (adj2.natTransEquiv adj3).symm g) =
    (adj1.natTransEquiv adj3) ((adj1.natTransEquiv adj3).symm (g ≫ f))
state_after: case a.w.h
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : F' ⟶ F
g : F'' ⟶ F'
x✝ : C
⊢ ((adj1.natTransEquiv adj3) ((adj1.natTransEquiv adj2).symm f ≫ (adj2.natTransEquiv adj3).symm g)).app x✝ =
    ((adj1.natTransEquiv adj3) ((adj1.natTransEquiv adj3).symm (g ≫ f))).app x✝

tactic: simp
state_before: case a.w.h
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : F' ⟶ F
g : F'' ⟶ F'
x✝ : C
⊢ ((adj1.natTransEquiv adj3) ((adj1.natTransEquiv adj2).symm f ≫ (adj2.natTransEquiv adj3).symm g)).app x✝ =
    ((adj1.natTransEquiv adj3) ((adj1.natTransEquiv adj3).symm (g ≫ f))).app x✝
state_after: no goals
Theorem: Cardinal.lift_continuum
File: Mathlib/SetTheory/Cardinal/Continuum.lean

tactic: rw [← two_power_aleph0, lift_two_power, lift_aleph0, two_power_aleph0]
state_before: ⊢ lift.{v, u_1} 𝔠 = 𝔠
state_after: no goals
Theorem: UniformConcaveOn.mono
File: Mathlib/Analysis/Convex/Strong.lean

tactic: gcongr
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
φ ψ : ℝ → ℝ
s : Set E
a✝ b✝ m : ℝ
x✝ y✝ : E
f g : E → ℝ
hψφ : ψ ≤ φ
hf : UniformConcaveOn s φ f
x : E
hx : x ∈ s
y : E
hy : y ∈ s
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • f x + b • f y + a * b * ψ ‖x - y‖ ≤ a • f x + b • f y + a * b * φ ‖x - y‖
state_after: case bc.h
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
φ ψ : ℝ → ℝ
s : Set E
a✝ b✝ m : ℝ
x✝ y✝ : E
f g : E → ℝ
hψφ : ψ ≤ φ
hf : UniformConcaveOn s φ f
x : E
hx : x ∈ s
y : E
hy : y ∈ s
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ ψ ‖x - y‖ ≤ φ ‖x - y‖

tactic: apply hψφ
state_before: case bc.h
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
φ ψ : ℝ → ℝ
s : Set E
a✝ b✝ m : ℝ
x✝ y✝ : E
f g : E → ℝ
hψφ : ψ ≤ φ
hf : UniformConcaveOn s φ f
x : E
hx : x ∈ s
y : E
hy : y ∈ s
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ ψ ‖x - y‖ ≤ φ ‖x - y‖
state_after: no goals
Theorem: ProbabilityTheory.kernel.lintegral_deterministic
File: Mathlib/Probability/Kernel/Basic.lean

tactic: rw [kernel.deterministic_apply, lintegral_dirac (g a) f]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α β)
f : β → ℝ≥0∞
g : α → β
a : α
hg : Measurable g
inst✝ : MeasurableSingletonClass β
⊢ ∫⁻ (x : β), f x ∂(deterministic g hg) a = f (g a)
state_after: no goals
Theorem: Equiv.Perm.Disjoint.commute
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: simp [mul_apply, hf, hg]
state_before: α : Type u_1
f g h✝ : Perm α
h : f.Disjoint g
x : α
hf : f x = x
hg : f (g x) = g x
⊢ (f * g) x = (g * f) x
state_after: no goals

tactic: simp [mul_apply, hf, g.injective hg]
state_before: α : Type u_1
f g h✝ : Perm α
h : f.Disjoint g
x : α
hf : f x = x
hg : g (g x) = g x
⊢ (f * g) x = (g * f) x
state_after: no goals

tactic: simp [mul_apply, f.injective hf, hg]
state_before: α : Type u_1
f g h✝ : Perm α
h : f.Disjoint g
x : α
hg : g x = x
hf : f (f x) = f x
⊢ (f * g) x = (g * f) x
state_after: no goals

tactic: simp [mul_apply, hf, hg]
state_before: α : Type u_1
f g h✝ : Perm α
h : f.Disjoint g
x : α
hg : g x = x
hf : g (f x) = f x
⊢ (f * g) x = (g * f) x
state_after: no goals
Theorem: Multiset.card_uIcc
File: Mathlib/Data/Multiset/Interval.lean

tactic: simp_rw [uIcc_eq, Finset.card_map, DFinsupp.card_uIcc, Nat.card_uIcc, Multiset.toDFinsupp_apply,
  toDFinsupp_support]
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Multiset α
⊢ (uIcc s t).card = ∏ i ∈ s.toFinset ∪ t.toFinset, ((↑(count i t) - ↑(count i s)).natAbs + 1)
state_after: no goals
Theorem: Set.infinite_iff_infinite_of_encard_eq_encard
File: Mathlib/Data/Set/Card.lean

tactic: rw [← encard_eq_top_iff, h, encard_eq_top_iff]
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : s.encard = t.encard
⊢ s.Infinite ↔ t.Infinite
state_after: no goals
Theorem: iff_left_comm
File: Mathlib/Logic/Lemmas.lean

tactic: tauto
state_before: a b c : Prop
⊢ (a ↔ (b ↔ c)) ↔ (b ↔ (a ↔ c))
state_after: no goals
Theorem: Nat.divisorsAntidiagonal_one
File: Mathlib/NumberTheory/Divisors.lean

tactic: ext
state_before: n : ℕ
⊢ divisorsAntidiagonal 1 = {(1, 1)}
state_after: case a
n : ℕ
a✝ : ℕ × ℕ
⊢ a✝ ∈ divisorsAntidiagonal 1 ↔ a✝ ∈ {(1, 1)}

tactic: simp [mul_eq_one, Prod.ext_iff]
state_before: case a
n : ℕ
a✝ : ℕ × ℕ
⊢ a✝ ∈ divisorsAntidiagonal 1 ↔ a✝ ∈ {(1, 1)}
state_after: no goals
Theorem: BooleanRing.le_sup_inf
File: Mathlib/Algebra/Ring/BooleanRing.lean

tactic: rw [le_sup_inf_aux, add_self, mul_self, zero_add]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : BooleanRing α
inst✝¹ : BooleanRing β
inst✝ : BooleanRing γ
a b c : α
⊢ (a + b + a * b) * (a + c + a * c) + (a + b * c + a * (b * c)) +
      (a + b + a * b) * (a + c + a * c) * (a + b * c + a * (b * c)) =
    a + b * c + a * (b * c)
state_after: no goals
Theorem: orderOf_pow_orderOf_div
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: rw [orderOf_pow_of_dvd _ (Nat.div_dvd_of_dvd hn), Nat.div_div_self hn hx]
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Monoid G
a b x✝ y : G
n✝ m : ℕ
x : G
n : ℕ
hx : orderOf x ≠ 0
hn : n ∣ orderOf x
⊢ orderOf (x ^ (orderOf x / n)) = n
state_after: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Monoid G
a b x✝ y : G
n✝ m : ℕ
x : G
n : ℕ
hx : orderOf x ≠ 0
hn : n ∣ orderOf x
⊢ orderOf x / n ≠ 0

tactic: rw [← Nat.div_mul_cancel hn] at hx
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Monoid G
a b x✝ y : G
n✝ m : ℕ
x : G
n : ℕ
hx : orderOf x ≠ 0
hn : n ∣ orderOf x
⊢ orderOf x / n ≠ 0
state_after: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Monoid G
a b x✝ y : G
n✝ m : ℕ
x : G
n : ℕ
hx : orderOf x / n * n ≠ 0
hn : n ∣ orderOf x
⊢ orderOf x / n ≠ 0

tactic: exact left_ne_zero_of_mul hx
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Monoid G
a b x✝ y : G
n✝ m : ℕ
x : G
n : ℕ
hx : orderOf x / n * n ≠ 0
hn : n ∣ orderOf x
⊢ orderOf x / n ≠ 0
state_after: no goals
Theorem: LinearMap.pow_mulLeft
File: Mathlib/Algebra/Algebra/Bilinear.lean

tactic: simpa only [mulLeft, ← Algebra.coe_lmul_eq_mul] using ((Algebra.lmul R A).map_pow a n).symm
state_before: R : Type u_1
A : Type u_2
B : Type u_3
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Semiring B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
a : A
n : ℕ
⊢ mulLeft R a ^ n = mulLeft R (a ^ n)
state_after: no goals
Theorem: Polynomial.derivative_X_add_C
File: Mathlib/Algebra/Polynomial/Derivative.lean

tactic: rw [derivative_add, derivative_X, derivative_C, add_zero]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
c : R
⊢ derivative (X + C c) = 1
state_after: no goals
Theorem: PreTilt.valAux_one
File: Mathlib/RingTheory/Perfection.lean

tactic: rw [pow_zero, pow_one, RingHom.map_one, ← (Ideal.Quotient.mk _).map_one, ModP.preVal_mk,
  RingHom.map_one, v.map_one]
state_before: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
⊢ ModP.preVal K v O hv p ((coeff (ModP K v O hv p) p 0) 1) ^ p ^ 0 = 1
state_after: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
⊢ (Ideal.Quotient.mk (Ideal.span {↑p})) 1 ≠ 0

tactic: change (1 : ModP K v O hv p) ≠ 0
state_before: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
⊢ (Ideal.Quotient.mk (Ideal.span {↑p})) 1 ≠ 0
state_after: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
⊢ 1 ≠ 0

tactic: exact one_ne_zero
state_before: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
⊢ 1 ≠ 0
state_after: no goals
Theorem: CategoryTheory.CosimplicialObject.δ_comp_σ_succ'
File: Mathlib/AlgebraicTopology/SimplicialObject.lean

tactic: subst H
state_before: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
j : Fin (n + 2)
i : Fin (n + 1)
H : j = i.succ
⊢ X.δ j ≫ X.σ i = 𝟙 (X.obj [n])
state_after: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i : Fin (n + 1)
⊢ X.δ i.succ ≫ X.σ i = 𝟙 (X.obj [n])

tactic: rw [δ_comp_σ_succ]
state_before: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i : Fin (n + 1)
⊢ X.δ i.succ ≫ X.σ i = 𝟙 (X.obj [n])
state_after: no goals
Theorem: IsLeftRegular.pow_iff
File: Mathlib/Algebra/Regular/Pow.lean

tactic: refine ⟨?_, IsLeftRegular.pow n⟩
state_before: R : Type u_1
a b : R
inst✝ : Monoid R
n : ℕ
n0 : 0 < n
⊢ IsLeftRegular (a ^ n) ↔ IsLeftRegular a
state_after: R : Type u_1
a b : R
inst✝ : Monoid R
n : ℕ
n0 : 0 < n
⊢ IsLeftRegular (a ^ n) → IsLeftRegular a

tactic: rw [← Nat.succ_pred_eq_of_pos n0, pow_succ]
state_before: R : Type u_1
a b : R
inst✝ : Monoid R
n : ℕ
n0 : 0 < n
⊢ IsLeftRegular (a ^ n) → IsLeftRegular a
state_after: R : Type u_1
a b : R
inst✝ : Monoid R
n : ℕ
n0 : 0 < n
⊢ IsLeftRegular (a ^ n.pred * a) → IsLeftRegular a

tactic: exact IsLeftRegular.of_mul
state_before: R : Type u_1
a b : R
inst✝ : Monoid R
n : ℕ
n0 : 0 < n
⊢ IsLeftRegular (a ^ n.pred * a) → IsLeftRegular a
state_after: no goals
Theorem: Nat.testBit_two_pow_of_ne
File: Mathlib/Data/Nat/Bitwise.lean

tactic: rw [testBit, shiftRight_eq_div_pow]
state_before: n m : ℕ
hm : n ≠ m
⊢ (2 ^ n).testBit m = false
state_after: n m : ℕ
hm : n ≠ m
⊢ (1 &&& 2 ^ n / 2 ^ m != 0) = false

tactic: cases' hm.lt_or_lt with hm hm
state_before: n m : ℕ
hm : n ≠ m
⊢ (1 &&& 2 ^ n / 2 ^ m != 0) = false
state_after: case inl
n m : ℕ
hm✝ : n ≠ m
hm : n < m
⊢ (1 &&& 2 ^ n / 2 ^ m != 0) = false

case inr
n m : ℕ
hm✝ : n ≠ m
hm : m < n
⊢ (1 &&& 2 ^ n / 2 ^ m != 0) = false

tactic: rw [Nat.div_eq_of_lt]
state_before: case inl
n m : ℕ
hm✝ : n ≠ m
hm : n < m
⊢ (1 &&& 2 ^ n / 2 ^ m != 0) = false
state_after: case inl
n m : ℕ
hm✝ : n ≠ m
hm : n < m
⊢ (1 &&& 0 != 0) = false

case inl
n m : ℕ
hm✝ : n ≠ m
hm : n < m
⊢ 2 ^ n < 2 ^ m

tactic: simp
state_before: case inl
n m : ℕ
hm✝ : n ≠ m
hm : n < m
⊢ (1 &&& 0 != 0) = false
state_after: no goals

tactic: exact Nat.pow_lt_pow_right Nat.one_lt_two hm
state_before: case inl
n m : ℕ
hm✝ : n ≠ m
hm : n < m
⊢ 2 ^ n < 2 ^ m
state_after: no goals

tactic: rw [Nat.pow_div hm.le Nat.two_pos, ← Nat.sub_add_cancel (succ_le_of_lt <| Nat.sub_pos_of_lt hm)]
state_before: case inr
n m : ℕ
hm✝ : n ≠ m
hm : m < n
⊢ (1 &&& 2 ^ n / 2 ^ m != 0) = false
state_after: case inr
n m : ℕ
hm✝ : n ≠ m
hm : m < n
⊢ (1 &&& 2 ^ (n - m - succ 0 + succ 0) != 0) = false

tactic: simp [pow_succ, and_one_is_mod, mul_mod_left]
state_before: case inr
n m : ℕ
hm✝ : n ≠ m
hm : m < n
⊢ (1 &&& 2 ^ (n - m - succ 0 + succ 0) != 0) = false
state_after: no goals
Theorem: MeasureTheory.setLIntegral_rnDeriv_mul
File: Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean

tactic: nth_rw 2 [← Measure.withDensity_rnDeriv_eq μ ν hμν]
state_before: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
α : Type u_3
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
hμν : μ ≪ ν
f : α → ℝ≥0∞
hf : AEMeasurable f ν
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (x : α) in s, μ.rnDeriv ν x * f x ∂ν = ∫⁻ (x : α) in s, f x ∂μ
state_after: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
α : Type u_3
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
hμν : μ ≪ ν
f : α → ℝ≥0∞
hf : AEMeasurable f ν
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (x : α) in s, μ.rnDeriv ν x * f x ∂ν = ∫⁻ (x : α) in s, f x ∂ν.withDensity (μ.rnDeriv ν)

tactic: rw [setLIntegral_withDensity_eq_lintegral_mul₀ (measurable_rnDeriv μ ν).aemeasurable hf hs]
state_before: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
α : Type u_3
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
hμν : μ ≪ ν
f : α → ℝ≥0∞
hf : AEMeasurable f ν
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (x : α) in s, μ.rnDeriv ν x * f x ∂ν = ∫⁻ (x : α) in s, f x ∂ν.withDensity (μ.rnDeriv ν)
state_after: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
α : Type u_3
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
hμν : μ ≪ ν
f : α → ℝ≥0∞
hf : AEMeasurable f ν
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (x : α) in s, μ.rnDeriv ν x * f x ∂ν = ∫⁻ (a : α) in s, (μ.rnDeriv ν * f) a ∂ν

tactic: simp only [Pi.mul_apply]
state_before: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
α : Type u_3
m : MeasurableSpace α
μ ν : Measure α
inst✝ : μ.HaveLebesgueDecomposition ν
hμν : μ ≪ ν
f : α → ℝ≥0∞
hf : AEMeasurable f ν
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (x : α) in s, μ.rnDeriv ν x * f x ∂ν = ∫⁻ (a : α) in s, (μ.rnDeriv ν * f) a ∂ν
state_after: no goals
Theorem: Prop.forall
File: Mathlib/Logic/Lemmas.lean

tactic: rintro ⟨h₁, h₀⟩ p
state_before: α : Sort u_1
p q r : Prop
inst✝¹ : Decidable p
inst✝ : Decidable q
a b c : α
f : Prop → Prop
⊢ f True ∧ f False → ∀ (p : Prop), f p
state_after: case intro
α : Sort u_1
p✝ q r : Prop
inst✝¹ : Decidable p✝
inst✝ : Decidable q
a b c : α
f : Prop → Prop
h₁ : f True
h₀ : f False
p : Prop
⊢ f p

tactic: by_cases hp : p <;> simp only [hp] <;> assumption
state_before: case intro
α : Sort u_1
p✝ q r : Prop
inst✝¹ : Decidable p✝
inst✝ : Decidable q
a b c : α
f : Prop → Prop
h₁ : f True
h₀ : f False
p : Prop
⊢ f p
state_after: no goals
Theorem: sup_left_comm
File: Mathlib/Order/Lattice.lean

tactic: rw [← sup_assoc, ← sup_assoc, @sup_comm α _ a]
state_before: α : Type u
β : Type v
inst✝ : SemilatticeSup α
a✝ b✝ c✝ d a b c : α
⊢ a ⊔ (b ⊔ c) = b ⊔ (a ⊔ c)
state_after: no goals
Theorem: Set.Iic_iInf₂
File: Mathlib/Data/Set/Lattice.lean

tactic: simp_rw [Iic_iInf]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
inst✝ : CompleteLattice α
f : (i : ι) → κ i → α
⊢ Iic (⨅ i, ⨅ j, f i j) = ⋂ i, ⋂ j, Iic (f i j)
state_after: no goals