1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.ae_smul_measure
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: rw [smul_apply, ae_iff.1 h, smul_zero]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
inst✝² : Monoid R
inst✝¹ : DistribMulAction R ℝ≥0∞
inst✝ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
h : ∀ᵐ (x : α) ∂μ, p x
c : R
⊢ (c • μ) {a | ¬p a} = 0
state_after: no goals
Theorem: PartialEquiv.refl_restr_target
File: Mathlib/Logic/Equiv/PartialEquiv.lean

tactic: change univ ∩ id ⁻¹' s = s
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e' : PartialEquiv β γ
s : Set α
⊢ ((PartialEquiv.refl α).restr s).target = s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e' : PartialEquiv β γ
s : Set α
⊢ univ ∩ id ⁻¹' s = s

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e' : PartialEquiv β γ
s : Set α
⊢ univ ∩ id ⁻¹' s = s
state_after: no goals
Theorem: Primrec.list_map
File: Mathlib/Computability/Primrec.lean

tactic: induction f a <;> simp [*]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
f : α → List β
g : α → β → σ
hf : Primrec f
hg : Primrec₂ g
a : α
⊢ List.foldr (fun b s => g (a, b, s).1 (a, b, s).2.1 :: (a, b, s).2.2) [] (f a) = List.map (g a) (f a)
state_after: no goals
Theorem: Sublattice.mem_iInf
File: Mathlib/Order/Sublattice.lean

tactic: rw [← SetLike.mem_coe]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Lattice α
inst✝¹ : Lattice β
inst✝ : Lattice γ
L M : Sublattice α
f✝ : LatticeHom α β
s t : Set α
a : α
f : ι → Sublattice α
⊢ a ∈ ⨅ i, f i ↔ ∀ (i : ι), a ∈ f i
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Lattice α
inst✝¹ : Lattice β
inst✝ : Lattice γ
L M : Sublattice α
f✝ : LatticeHom α β
s t : Set α
a : α
f : ι → Sublattice α
⊢ a ∈ ↑(⨅ i, f i) ↔ ∀ (i : ι), a ∈ f i

tactic: simp
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Lattice α
inst✝¹ : Lattice β
inst✝ : Lattice γ
L M : Sublattice α
f✝ : LatticeHom α β
s t : Set α
a : α
f : ι → Sublattice α
⊢ a ∈ ↑(⨅ i, f i) ↔ ∀ (i : ι), a ∈ f i
state_after: no goals
Theorem: spectrum.units_conjugate'
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: simpa using spectrum.units_conjugate (u := u⁻¹)
state_before: R : Type u_1
A : Type u_2
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
u : Aˣ
⊢ spectrum R (↑u⁻¹ * a * ↑u) = spectrum R a
state_after: no goals
Theorem: StructureGroupoid.LocalInvariantProp.liftProp_id
File: Mathlib/Geometry/Manifold/LocalInvariantProperties.lean

tactic: simp_rw [liftProp_iff, continuous_id, true_and_iff]
state_before: H : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type u_5
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
e e' : PartialHomeomorph M H
f f' : PartialHomeomorph M' H'
P : (H → H') → Set H → H → Prop
g g' : M → M'
s t : Set M
x : M
Q : (H → H) → Set H → H → Prop
hG✝ : G.LocalInvariantProp G' P
hG : G.LocalInvariantProp G Q
hQ : ∀ (y : H), Q id univ y
⊢ LiftProp Q id
state_after: H : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type u_5
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
e e' : PartialHomeomorph M H
f f' : PartialHomeomorph M' H'
P : (H → H') → Set H → H → Prop
g g' : M → M'
s t : Set M
x : M
Q : (H → H) → Set H → H → Prop
hG✝ : G.LocalInvariantProp G' P
hG : G.LocalInvariantProp G Q
hQ : ∀ (y : H), Q id univ y
⊢ ∀ (x : M), Q (↑(chartAt H (id x)) ∘ id ∘ ↑(chartAt H x).symm) univ (↑(chartAt H x) x)

tactic: exact fun x ↦ hG.congr' ((chartAt H x).eventually_right_inverse <| mem_chart_target H x) (hQ _)
state_before: H : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type u_5
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
e e' : PartialHomeomorph M H
f f' : PartialHomeomorph M' H'
P : (H → H') → Set H → H → Prop
g g' : M → M'
s t : Set M
x : M
Q : (H → H) → Set H → H → Prop
hG✝ : G.LocalInvariantProp G' P
hG : G.LocalInvariantProp G Q
hQ : ∀ (y : H), Q id univ y
⊢ ∀ (x : M), Q (↑(chartAt H (id x)) ∘ id ∘ ↑(chartAt H x).symm) univ (↑(chartAt H x) x)
state_after: no goals
Theorem: MeasureTheory.ProbabilityMeasure.eq_of_forall_apply_eq
File: Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean

tactic: ext1 s s_mble
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ ν : ProbabilityMeasure Ω
h : ∀ (s : Set Ω), MeasurableSet s → μ s = ν s
⊢ μ = ν
state_after: case h
Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ ν : ProbabilityMeasure Ω
h : ∀ (s : Set Ω), MeasurableSet s → μ s = ν s
s : Set Ω
s_mble : MeasurableSet s
⊢ ↑μ s = ↑ν s

tactic: simpa [ennreal_coeFn_eq_coeFn_toMeasure] using congr_arg ((↑) : ℝ≥0 → ℝ≥0∞) (h s s_mble)
state_before: case h
Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ ν : ProbabilityMeasure Ω
h : ∀ (s : Set Ω), MeasurableSet s → μ s = ν s
s : Set Ω
s_mble : MeasurableSet s
⊢ ↑μ s = ↑ν s
state_after: no goals
Theorem: Nat.mul_eq_right
File: Mathlib/Data/Nat/Defs.lean

tactic: simpa using Nat.mul_left_inj hb (c := 1)
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
hb : b ≠ 0
⊢ a * b = b ↔ a = 1
state_after: no goals
Theorem: MeasureTheory.HasFiniteIntegral.max_zero
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp [abs_le, le_abs_self]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ
hf : HasFiniteIntegral f μ
x : α
⊢ ‖max (f x) 0‖ ≤ ‖f x‖
state_after: no goals
Theorem: ProbabilityTheory.finite_of_condCount_ne_zero
File: Mathlib/Probability/CondCount.lean

tactic: by_contra hs'
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
s t : Set Ω
h : (condCount s) t ≠ 0
⊢ s.Finite
state_after: Ω : Type u_1
inst✝ : MeasurableSpace Ω
s t : Set Ω
h : (condCount s) t ≠ 0
hs' : ¬s.Finite
⊢ False

tactic: simp [condCount, cond, Measure.count_apply_infinite hs'] at h
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
s t : Set Ω
h : (condCount s) t ≠ 0
hs' : ¬s.Finite
⊢ False
state_after: no goals
Theorem: Class.classToCong_empty
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: ext
state_before: ⊢ ∅.classToCong = ∅
state_after: case h
x✝ : Class
⊢ x✝ ∈ ∅.classToCong ↔ x✝ ∈ ∅

tactic: simp [classToCong]
state_before: case h
x✝ : Class
⊢ x✝ ∈ ∅.classToCong ↔ x✝ ∈ ∅
state_after: no goals
Theorem: Equiv.Perm.decomposeFin.symm_sign
File: Mathlib/GroupTheory/Perm/Fin.lean

tactic: refine Fin.cases ?_ ?_ p <;> simp [Equiv.Perm.decomposeFin, Fin.succ_ne_zero]
state_before: n : ℕ
p : Fin (n + 1)
e : Perm (Fin n)
⊢ sign (decomposeFin.symm (p, e)) = (if p = 0 then 1 else -1) * sign e
state_after: no goals
Theorem: List.Ico.zero_bot
File: Mathlib/Data/List/Intervals.lean

tactic: rw [Ico, Nat.sub_zero, range_eq_range']
state_before: n : ℕ
⊢ Ico 0 n = range n
state_after: no goals
Theorem: Nat.minSqFac_le_of_dvd
File: Mathlib/Data/Nat/Squarefree.lean

tactic: have := minSqFac_has_prop n
state_before: s : Finset ℕ
m✝ n✝ p n d : ℕ
h : n.minSqFac = some d
m : ℕ
m2 : 2 ≤ m
md : m * m ∣ n
⊢ d ≤ m
state_after: s : Finset ℕ
m✝ n✝ p n d : ℕ
h : n.minSqFac = some d
m : ℕ
m2 : 2 ≤ m
md : m * m ∣ n
this : n.MinSqFacProp n.minSqFac
⊢ d ≤ m

tactic: rw [h] at this
state_before: s : Finset ℕ
m✝ n✝ p n d : ℕ
h : n.minSqFac = some d
m : ℕ
m2 : 2 ≤ m
md : m * m ∣ n
this : n.MinSqFacProp n.minSqFac
⊢ d ≤ m
state_after: s : Finset ℕ
m✝ n✝ p n d : ℕ
h : n.minSqFac = some d
m : ℕ
m2 : 2 ≤ m
md : m * m ∣ n
this : n.MinSqFacProp (some d)
⊢ d ≤ m

tactic: have fd := minFac_dvd m
state_before: s : Finset ℕ
m✝ n✝ p n d : ℕ
h : n.minSqFac = some d
m : ℕ
m2 : 2 ≤ m
md : m * m ∣ n
this : n.MinSqFacProp (some d)
⊢ d ≤ m
state_after: s : Finset ℕ
m✝ n✝ p n d : ℕ
h : n.minSqFac = some d
m : ℕ
m2 : 2 ≤ m
md : m * m ∣ n
this : n.MinSqFacProp (some d)
fd : m.minFac ∣ m
⊢ d ≤ m

tactic: exact
  le_trans (this.2.2 _ (minFac_prime <| ne_of_gt m2) (dvd_trans (mul_dvd_mul fd fd) md))
    (minFac_le <| lt_of_lt_of_le (by decide) m2)
state_before: s : Finset ℕ
m✝ n✝ p n d : ℕ
h : n.minSqFac = some d
m : ℕ
m2 : 2 ≤ m
md : m * m ∣ n
this : n.MinSqFacProp (some d)
fd : m.minFac ∣ m
⊢ d ≤ m
state_after: no goals

tactic: decide
state_before: s : Finset ℕ
m✝ n✝ p n d : ℕ
h : n.minSqFac = some d
m : ℕ
m2 : 2 ≤ m
md : m * m ∣ n
this : n.MinSqFacProp (some d)
fd : m.minFac ∣ m
⊢ 0 < 2
state_after: no goals
Theorem: MeasureTheory.L1.SimpleFunc.norm_eq_integral
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: rw [norm_eq_sum_mul f, (toSimpleFunc f).map_integral norm (SimpleFunc.integrable f) norm_zero]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
f : ↥(simpleFunc E 1 μ)
⊢ ‖f‖ = SimpleFunc.integral μ (SimpleFunc.map norm (toSimpleFunc f))
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
f : ↥(simpleFunc E 1 μ)
⊢ ∑ x ∈ (toSimpleFunc f).range, (μ (↑(toSimpleFunc f) ⁻¹' {x})).toReal * ‖x‖ =
    ∑ x ∈ (toSimpleFunc f).range, (μ (↑(toSimpleFunc f) ⁻¹' {x})).toReal • ‖x‖

tactic: simp_rw [smul_eq_mul]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
f : ↥(simpleFunc E 1 μ)
⊢ ∑ x ∈ (toSimpleFunc f).range, (μ (↑(toSimpleFunc f) ⁻¹' {x})).toReal * ‖x‖ =
    ∑ x ∈ (toSimpleFunc f).range, (μ (↑(toSimpleFunc f) ⁻¹' {x})).toReal • ‖x‖
state_after: no goals
Theorem: ValuationRing.unique_irreducible
File: Mathlib/RingTheory/Valuation/ValuationRing.lean

tactic: have := dvd_total p q
state_before: R : Type u_1
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : ValuationRing R
p q : R
hp : Irreducible p
hq : Irreducible q
⊢ Associated p q
state_after: R : Type u_1
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : ValuationRing R
p q : R
hp : Irreducible p
hq : Irreducible q
this : p ∣ q ∨ q ∣ p
⊢ Associated p q

tactic: rw [Irreducible.dvd_comm hp hq, or_self_iff] at this
state_before: R : Type u_1
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : ValuationRing R
p q : R
hp : Irreducible p
hq : Irreducible q
this : p ∣ q ∨ q ∣ p
⊢ Associated p q
state_after: R : Type u_1
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : ValuationRing R
p q : R
hp : Irreducible p
hq : Irreducible q
this : q ∣ p
⊢ Associated p q

tactic: exact associated_of_dvd_dvd (Irreducible.dvd_symm hq hp this) this
state_before: R : Type u_1
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : ValuationRing R
p q : R
hp : Irreducible p
hq : Irreducible q
this : q ∣ p
⊢ Associated p q
state_after: no goals
Theorem: Polynomial.monic_mul_C_of_leadingCoeff_mul_eq_one
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: unfold Monic
state_before: R : Type u
S : Type v
a b✝ : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
b : R
hp : p.leadingCoeff * b = 1
⊢ (p * C b).Monic
state_after: R : Type u
S : Type v
a b✝ : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
b : R
hp : p.leadingCoeff * b = 1
⊢ (p * C b).leadingCoeff = 1

tactic: nontriviality
state_before: R : Type u
S : Type v
a b✝ : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
b : R
hp : p.leadingCoeff * b = 1
⊢ (p * C b).leadingCoeff = 1
state_after: R : Type u
S : Type v
a b✝ : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
b : R
hp : p.leadingCoeff * b = 1
a✝ : Nontrivial R
⊢ (p * C b).leadingCoeff = 1

tactic: rw [leadingCoeff_mul' _] <;> simp [leadingCoeff_C b, hp]
state_before: R : Type u
S : Type v
a b✝ : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
b : R
hp : p.leadingCoeff * b = 1
a✝ : Nontrivial R
⊢ (p * C b).leadingCoeff = 1
state_after: no goals
Theorem: CharP.exists
File: Mathlib/Algebra/CharP/Defs.lean

tactic: rw [zero_dvd_iff]
state_before: R : Type u_1
inst✝ : NonAssocSemiring R
this : DecidableEq R := Classical.decEq R
H : ∀ (p : ℕ), ↑p = 0 → p = 0
x : ℕ
⊢ ↑x = 0 ↔ 0 ∣ x
state_after: R : Type u_1
inst✝ : NonAssocSemiring R
this : DecidableEq R := Classical.decEq R
H : ∀ (p : ℕ), ↑p = 0 → p = 0
x : ℕ
⊢ ↑x = 0 ↔ x = 0

tactic: exact ⟨H x, by rintro rfl; simp⟩
state_before: R : Type u_1
inst✝ : NonAssocSemiring R
this : DecidableEq R := Classical.decEq R
H : ∀ (p : ℕ), ↑p = 0 → p = 0
x : ℕ
⊢ ↑x = 0 ↔ x = 0
state_after: no goals

tactic: rintro rfl
state_before: R : Type u_1
inst✝ : NonAssocSemiring R
this : DecidableEq R := Classical.decEq R
H : ∀ (p : ℕ), ↑p = 0 → p = 0
x : ℕ
⊢ x = 0 → ↑x = 0
state_after: R : Type u_1
inst✝ : NonAssocSemiring R
this : DecidableEq R := Classical.decEq R
H : ∀ (p : ℕ), ↑p = 0 → p = 0
⊢ ↑0 = 0

tactic: simp
state_before: R : Type u_1
inst✝ : NonAssocSemiring R
this : DecidableEq R := Classical.decEq R
H : ∀ (p : ℕ), ↑p = 0 → p = 0
⊢ ↑0 = 0
state_after: no goals

tactic: rwa [← Nat.mod_add_div x (Nat.find (not_forall.1 H)), Nat.cast_add,
  Nat.cast_mul,
  of_not_not (not_not_of_not_imp <| Nat.find_spec (not_forall.1 H)),
  zero_mul, add_zero] at H1
state_before: R : Type u_1
inst✝ : NonAssocSemiring R
this : DecidableEq R := Classical.decEq R
H : ¬∀ (p : ℕ), ↑p = 0 → p = 0
x : ℕ
H1 : ↑x = 0
H2 : ¬x % Nat.find ⋯ = 0
⊢ ↑(x % Nat.find ⋯) = 0
state_after: no goals

tactic: rw [← Nat.mul_div_cancel' H1, Nat.cast_mul,
  of_not_not (not_not_of_not_imp <| Nat.find_spec (not_forall.1 H)),
  zero_mul]
state_before: R : Type u_1
inst✝ : NonAssocSemiring R
this : DecidableEq R := Classical.decEq R
H : ¬∀ (p : ℕ), ↑p = 0 → p = 0
x : ℕ
H1 : Nat.find ⋯ ∣ x
⊢ ↑x = 0
state_after: no goals
Theorem: LinearMap.isCoatom_ker_of_surjective
File: Mathlib/RingTheory/SimpleModule.lean

tactic: rw [← isSimpleModule_iff_isCoatom]
state_before: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁶ : Ring R
inst✝⁵ : Ring S
M : Type u_4
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
m : Submodule R M
N : Type u_5
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsSimpleModule R N
f : M →ₗ[R] N
hf : Function.Surjective ⇑f
⊢ IsCoatom (ker f)
state_after: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁶ : Ring R
inst✝⁵ : Ring S
M : Type u_4
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
m : Submodule R M
N : Type u_5
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsSimpleModule R N
f : M →ₗ[R] N
hf : Function.Surjective ⇑f
⊢ IsSimpleModule R (M ⧸ ker f)

tactic: exact IsSimpleModule.congr (f.quotKerEquivOfSurjective hf)
state_before: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁶ : Ring R
inst✝⁵ : Ring S
M : Type u_4
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
m : Submodule R M
N : Type u_5
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsSimpleModule R N
f : M →ₗ[R] N
hf : Function.Surjective ⇑f
⊢ IsSimpleModule R (M ⧸ ker f)
state_after: no goals
Theorem: one_div_one_div
File: Mathlib/Algebra/Group/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a b c d : α
⊢ 1 / (1 / a) = a
state_after: no goals
Theorem: CategoryTheory.Idempotents.Karoubi.decomp_p
File: Mathlib/CategoryTheory/Idempotents/Karoubi.lean

tactic: ext
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
P : Karoubi C
⊢ (toKaroubi C).map P.p = P.decompId_p ≫ P.decompId_i
state_after: case h
C : Type u_1
inst✝ : Category.{u_2, u_1} C
P : Karoubi C
⊢ ((toKaroubi C).map P.p).f = (P.decompId_p ≫ P.decompId_i).f

tactic: simp only [comp_f, decompId_p_f, decompId_i_f, P.idem, toKaroubi_map_f]
state_before: case h
C : Type u_1
inst✝ : Category.{u_2, u_1} C
P : Karoubi C
⊢ ((toKaroubi C).map P.p).f = (P.decompId_p ≫ P.decompId_i).f
state_after: no goals
Theorem: ENat.toNat_add
File: Mathlib/Data/ENat/Basic.lean

tactic: lift m to ℕ using hm
state_before: m✝ n✝ m n : ℕ∞
hm : m ≠ ⊤
hn : n ≠ ⊤
⊢ (m + n).toNat = m.toNat + n.toNat
state_after: case intro
m✝ n✝ n : ℕ∞
hn : n ≠ ⊤
m : ℕ
⊢ (↑m + n).toNat = (↑m).toNat + n.toNat

tactic: lift n to ℕ using hn
state_before: case intro
m✝ n✝ n : ℕ∞
hn : n ≠ ⊤
m : ℕ
⊢ (↑m + n).toNat = (↑m).toNat + n.toNat
state_after: case intro.intro
m✝ n✝ : ℕ∞
m n : ℕ
⊢ (↑m + ↑n).toNat = (↑m).toNat + (↑n).toNat

tactic: rfl
state_before: case intro.intro
m✝ n✝ : ℕ∞
m n : ℕ
⊢ (↑m + ↑n).toNat = (↑m).toNat + (↑n).toNat
state_after: no goals
Theorem: hasFDerivAt_stereoInvFunAux_comp_coe
File: Mathlib/Geometry/Manifold/Instances/Sphere.lean

tactic: have : HasFDerivAt (stereoInvFunAux v) (ContinuousLinearMap.id ℝ E) ((ℝ ∙ v)ᗮ.subtypeL 0) :=
  hasFDerivAt_stereoInvFunAux v
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v✝ v : E
⊢ HasFDerivAt (stereoInvFunAux v ∘ Subtype.val) (Submodule.span ℝ {v})ᗮ.subtypeL 0
state_after: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v✝ v : E
this : HasFDerivAt (stereoInvFunAux v) (ContinuousLinearMap.id ℝ E) ((Submodule.span ℝ {v})ᗮ.subtypeL 0)
⊢ HasFDerivAt (stereoInvFunAux v ∘ Subtype.val) (Submodule.span ℝ {v})ᗮ.subtypeL 0

tactic: convert this.comp (0 : (ℝ ∙ v)ᗮ) (by apply ContinuousLinearMap.hasFDerivAt)
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v✝ v : E
this : HasFDerivAt (stereoInvFunAux v) (ContinuousLinearMap.id ℝ E) ((Submodule.span ℝ {v})ᗮ.subtypeL 0)
⊢ HasFDerivAt (stereoInvFunAux v ∘ Subtype.val) (Submodule.span ℝ {v})ᗮ.subtypeL 0
state_after: no goals

tactic: apply ContinuousLinearMap.hasFDerivAt
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v✝ v : E
this : HasFDerivAt (stereoInvFunAux v) (ContinuousLinearMap.id ℝ E) ((Submodule.span ℝ {v})ᗮ.subtypeL 0)
⊢ HasFDerivAt ⇑(Submodule.span ℝ {v})ᗮ.subtypeL ?m.124535 0
state_after: no goals
Theorem: lcm_mul_right
File: Mathlib/Algebra/GCDMonoid/Basic.lean

tactic: simp only [mul_comm, lcm_mul_left]
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NormalizedGCDMonoid α
a b c : α
⊢ lcm (b * a) (c * a) = lcm b c * normalize a
state_after: no goals
Theorem: OrderIso.preimage_Ico
File: Mathlib/Order/Interval/Set/OrderIso.lean

tactic: simp [← Ici_inter_Iio]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
e : α ≃o β
a b : β
⊢ ⇑e ⁻¹' Ico a b = Ico (e.symm a) (e.symm b)
state_after: no goals
Theorem: zpow_ne_zero
File: Mathlib/Algebra/GroupWithZero/Units/Basic.lean

tactic: rw [zpow_natCast]
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝¹ b c d : G₀
m n : ℕ
a : G₀
a✝ : ℕ
⊢ a ≠ 0 → a ^ ↑a✝ ≠ 0
state_after: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝¹ b c d : G₀
m n : ℕ
a : G₀
a✝ : ℕ
⊢ a ≠ 0 → a ^ a✝ ≠ 0

tactic: exact pow_ne_zero _
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝¹ b c d : G₀
m n : ℕ
a : G₀
a✝ : ℕ
⊢ a ≠ 0 → a ^ a✝ ≠ 0
state_after: no goals

tactic: rw [zpow_negSucc]
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝ b c d : G₀
m n✝ : ℕ
a : G₀
n : ℕ
ha : a ≠ 0
⊢ a ^ Int.negSucc n ≠ 0
state_after: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝ b c d : G₀
m n✝ : ℕ
a : G₀
n : ℕ
ha : a ≠ 0
⊢ (a ^ (n + 1))⁻¹ ≠ 0

tactic: exact inv_ne_zero (pow_ne_zero _ ha)
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝ b c d : G₀
m n✝ : ℕ
a : G₀
n : ℕ
ha : a ≠ 0
⊢ (a ^ (n + 1))⁻¹ ≠ 0
state_after: no goals
Theorem: not_irreducible_pow
File: Mathlib/Algebra/Associated.lean

tactic: cases n with
| zero => simp
| succ n =>
  intro ⟨h₁, h₂⟩
  have := h₂ _ _ (pow_succ _ _)
  rw [isUnit_pow_iff (Nat.succ_ne_succ.mp hn), or_self] at this
  exact h₁ (this.pow _)
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
inst✝ : Monoid α
x : α
n : ℕ
hn : n ≠ 1
⊢ ¬Irreducible (x ^ n)
state_after: no goals

tactic: simp
state_before: case zero
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
inst✝ : Monoid α
x : α
hn : 0 ≠ 1
⊢ ¬Irreducible (x ^ 0)
state_after: no goals

tactic: intro ⟨h₁, h₂⟩
state_before: case succ
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
inst✝ : Monoid α
x : α
n : ℕ
hn : n + 1 ≠ 1
⊢ ¬Irreducible (x ^ (n + 1))
state_after: case succ
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
inst✝ : Monoid α
x : α
n : ℕ
hn : n + 1 ≠ 1
h₁ : ¬IsUnit (x ^ (n + 1))
h₂ : ∀ (a b : α), x ^ (n + 1) = a * b → IsUnit a ∨ IsUnit b
⊢ False

tactic: have := h₂ _ _ (pow_succ _ _)
state_before: case succ
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
inst✝ : Monoid α
x : α
n : ℕ
hn : n + 1 ≠ 1
h₁ : ¬IsUnit (x ^ (n + 1))
h₂ : ∀ (a b : α), x ^ (n + 1) = a * b → IsUnit a ∨ IsUnit b
⊢ False
state_after: case succ
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
inst✝ : Monoid α
x : α
n : ℕ
hn : n + 1 ≠ 1
h₁ : ¬IsUnit (x ^ (n + 1))
h₂ : ∀ (a b : α), x ^ (n + 1) = a * b → IsUnit a ∨ IsUnit b
this : IsUnit (x ^ n) ∨ IsUnit x
⊢ False

tactic: rw [isUnit_pow_iff (Nat.succ_ne_succ.mp hn), or_self] at this
state_before: case succ
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
inst✝ : Monoid α
x : α
n : ℕ
hn : n + 1 ≠ 1
h₁ : ¬IsUnit (x ^ (n + 1))
h₂ : ∀ (a b : α), x ^ (n + 1) = a * b → IsUnit a ∨ IsUnit b
this : IsUnit (x ^ n) ∨ IsUnit x
⊢ False
state_after: case succ
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
inst✝ : Monoid α
x : α
n : ℕ
hn : n + 1 ≠ 1
h₁ : ¬IsUnit (x ^ (n + 1))
h₂ : ∀ (a b : α), x ^ (n + 1) = a * b → IsUnit a ∨ IsUnit b
this : IsUnit x
⊢ False

tactic: exact h₁ (this.pow _)
state_before: case succ
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
inst✝ : Monoid α
x : α
n : ℕ
hn : n + 1 ≠ 1
h₁ : ¬IsUnit (x ^ (n + 1))
h₂ : ∀ (a b : α), x ^ (n + 1) = a * b → IsUnit a ∨ IsUnit b
this : IsUnit x
⊢ False
state_after: no goals
Theorem: WithTop.preimage_coe_Ico_top
File: Mathlib/Order/Interval/Set/WithBotTop.lean

tactic: simp [← Ici_inter_Iio]
state_before: α : Type u_1
inst✝ : Preorder α
a b : α
⊢ some ⁻¹' Ico ↑a ⊤ = Ici a
state_after: no goals
Theorem: CharTwo.bit1_apply_eq_one
File: Mathlib/Algebra/CharP/Two.lean

tactic: simp
state_before: R : Type u_1
ι : Type u_2
inst✝¹ : Semiring R
inst✝ : CharP R 2
x : R
⊢ bit1 x = 1
state_after: no goals
Theorem: Set.univ_pi_update_univ
File: Mathlib/Data/Set/Prod.lean

tactic: rw [univ_pi_update i (fun j => (univ : Set (α j))) s fun j t => t, pi_univ, inter_univ, preimage]
state_before: ι : Type u_1
α : ι → Type u_2
β : ι → Type u_3
s✝ s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
i✝ : ι
inst✝ : DecidableEq ι
i : ι
s : Set (α i)
⊢ univ.pi (update (fun j => univ) i s) = eval i ⁻¹' s
state_after: no goals