1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: LinearMap.submoduleImage_apply_of_le
File: Mathlib/Algebra/Module/Submodule/Range.lean

tactic: rw [submoduleImage, range_comp, Submodule.range_inclusion]
state_before: R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
K : Type u_4
K₂ : Type u_5
M : Type u_6
M₂ : Type u_7
M₃ : Type u_8
V : Type u_9
V₂ : Type u_10
inst✝¹¹ : Semiring R
inst✝¹⁰ : Semiring R₂
inst✝⁹ : Semiring R₃
inst✝⁸ : AddCommMonoid M
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : Module R M
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝² : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
M' : Type u_11
inst✝¹ : AddCommGroup M'
inst✝ : Module R M'
O : Submodule R M
ϕ : ↥O →ₗ[R] M'
N : Submodule R M
hNO : N ≤ O
⊢ ϕ.submoduleImage N = range (ϕ ∘ₗ Submodule.inclusion hNO)
state_after: no goals
Theorem: List.range'_succ
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: simp [range', Nat.add_succ, Nat.mul_succ]
state_before: s n step : Nat
⊢ range' s (n + 1) step = s :: range' (s + step) n step
state_after: no goals
Theorem: WeierstrassCurve.C_Ψ₂Sq
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean

tactic: rw [Ψ₂Sq, ψ₂, b₂, b₄, b₆, Affine.polynomialY, Affine.polynomial]
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ C W.Ψ₂Sq = W.ψ₂ ^ 2 - 4 * W.toAffine.polynomial
state_after: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ C (C 4 * X ^ 3 + C (W.a₁ ^ 2 + 4 * W.a₂) * X ^ 2 + C (2 * (2 * W.a₄ + W.a₁ * W.a₃)) * X + C (W.a₃ ^ 2 + 4 * W.a₆)) =
    (C (C 2) * Y + C (C W.toAffine.a₁ * X + C W.toAffine.a₃)) ^ 2 -
      4 *
        (Y ^ 2 + C (C W.toAffine.a₁ * X + C W.toAffine.a₃) * Y -
          C (X ^ 3 + C W.toAffine.a₂ * X ^ 2 + C W.toAffine.a₄ * X + C W.toAffine.a₆))

tactic: C_simp
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ C (C 4 * X ^ 3 + C (W.a₁ ^ 2 + 4 * W.a₂) * X ^ 2 + C (2 * (2 * W.a₄ + W.a₁ * W.a₃)) * X + C (W.a₃ ^ 2 + 4 * W.a₆)) =
    (C (C 2) * Y + C (C W.toAffine.a₁ * X + C W.toAffine.a₃)) ^ 2 -
      4 *
        (Y ^ 2 + C (C W.toAffine.a₁ * X + C W.toAffine.a₃) * Y -
          C (X ^ 3 + C W.toAffine.a₂ * X ^ 2 + C W.toAffine.a₄ * X + C W.toAffine.a₆))
state_after: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ 4 * C X ^ 3 + (C (C W.a₁) ^ 2 + 4 * C (C W.a₂)) * C X ^ 2 + 2 * (2 * C (C W.a₄) + C (C W.a₁) * C (C W.a₃)) * C X +
      (C (C W.a₃) ^ 2 + 4 * C (C W.a₆)) =
    (2 * Y + (C (C W.toAffine.a₁) * C X + C (C W.toAffine.a₃))) ^ 2 -
      4 *
        (Y ^ 2 + (C (C W.toAffine.a₁) * C X + C (C W.toAffine.a₃)) * Y -
          (C X ^ 3 + C (C W.toAffine.a₂) * C X ^ 2 + C (C W.toAffine.a₄) * C X + C (C W.toAffine.a₆)))

tactic: ring1
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ 4 * C X ^ 3 + (C (C W.a₁) ^ 2 + 4 * C (C W.a₂)) * C X ^ 2 + 2 * (2 * C (C W.a₄) + C (C W.a₁) * C (C W.a₃)) * C X +
      (C (C W.a₃) ^ 2 + 4 * C (C W.a₆)) =
    (2 * Y + (C (C W.toAffine.a₁) * C X + C (C W.toAffine.a₃))) ^ 2 -
      4 *
        (Y ^ 2 + (C (C W.toAffine.a₁) * C X + C (C W.toAffine.a₃)) * Y -
          (C X ^ 3 + C (C W.toAffine.a₂) * C X ^ 2 + C (C W.toAffine.a₄) * C X + C (C W.toAffine.a₆)))
state_after: no goals
Theorem: irreducible_iff_prime_of_exists_prime_factors
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: by_cases hp0 : p = 0
state_before: α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
⊢ Irreducible p ↔ Prime p
state_after: case pos
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : p = 0
⊢ Irreducible p ↔ Prime p

case neg
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : ¬p = 0
⊢ Irreducible p ↔ Prime p

tactic: refine ⟨fun h => ?_, Prime.irreducible⟩
state_before: case neg
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : ¬p = 0
⊢ Irreducible p ↔ Prime p
state_after: case neg
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : ¬p = 0
h : Irreducible p
⊢ Prime p

tactic: obtain ⟨f, hf⟩ := pf p hp0
state_before: case neg
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : ¬p = 0
h : Irreducible p
⊢ Prime p
state_after: case neg.intro
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : ¬p = 0
h : Irreducible p
f : Multiset α
hf : (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ p
⊢ Prime p

tactic: obtain ⟨q, hq, rfl⟩ := prime_factors_irreducible h hf
state_before: case neg.intro
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : ¬p = 0
h : Irreducible p
f : Multiset α
hf : (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ p
⊢ Prime p
state_after: case neg.intro.intro.intro
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : ¬p = 0
h : Irreducible p
q : α
hq : p ~ᵤ q
hf : (∀ b ∈ {q}, Prime b) ∧ {q}.prod ~ᵤ p
⊢ Prime p

tactic: rw [hq.prime_iff]
state_before: case neg.intro.intro.intro
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : ¬p = 0
h : Irreducible p
q : α
hq : p ~ᵤ q
hf : (∀ b ∈ {q}, Prime b) ∧ {q}.prod ~ᵤ p
⊢ Prime p
state_after: case neg.intro.intro.intro
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : ¬p = 0
h : Irreducible p
q : α
hq : p ~ᵤ q
hf : (∀ b ∈ {q}, Prime b) ∧ {q}.prod ~ᵤ p
⊢ Prime q

tactic: exact hf.1 q (Multiset.mem_singleton_self _)
state_before: case neg.intro.intro.intro
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : ¬p = 0
h : Irreducible p
q : α
hq : p ~ᵤ q
hf : (∀ b ∈ {q}, Prime b) ∧ {q}.prod ~ᵤ p
⊢ Prime q
state_after: no goals

tactic: simp [hp0]
state_before: case pos
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
pf : ∀ (a : α), a ≠ 0 → ∃ f, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a
p : α
hp0 : p = 0
⊢ Irreducible p ↔ Prime p
state_after: no goals
Theorem: CategoryTheory.ShortComplex.Splitting.s_r
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

tactic: have := s.epi_g
state_before: C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.83761, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
s : S.Splitting
⊢ s.s ≫ s.r = 0
state_after: C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.83761, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
s : S.Splitting
this : Epi S.g
⊢ s.s ≫ s.r = 0

tactic: simp only [← cancel_epi S.g, comp_zero, g_s_assoc, sub_comp, id_comp,
  assoc, f_r, comp_id, sub_self]
state_before: C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.83761, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
s : S.Splitting
this : Epi S.g
⊢ s.s ≫ s.r = 0
state_after: no goals
Theorem: Sym2.perm_card_two_iff
File: Mathlib/Data/Sym/Sym2.lean

tactic: simp only [← Multiset.coe_eq_coe, ← Multiset.cons_coe, Multiset.coe_nil, Multiset.cons_zero,
  Multiset.cons_eq_cons, Multiset.singleton_inj, ne_eq, Multiset.singleton_eq_cons_iff,
  exists_eq_right_right, and_true]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a₁ b₁ a₂ b₂ : α
⊢ [a₁, b₁].Perm [a₂, b₂] → a₁ = a₂ ∧ b₁ = b₂ ∨ a₁ = b₂ ∧ b₁ = a₂
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a₁ b₁ a₂ b₂ : α
⊢ a₁ = a₂ ∧ b₁ = b₂ ∨ ¬a₁ = a₂ ∧ b₁ = a₂ ∧ b₂ = a₁ → a₁ = a₂ ∧ b₁ = b₂ ∨ a₁ = b₂ ∧ b₁ = a₂

tactic: tauto
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a₁ b₁ a₂ b₂ : α
⊢ a₁ = a₂ ∧ b₁ = b₂ ∨ ¬a₁ = a₂ ∧ b₁ = a₂ ∧ b₂ = a₁ → a₁ = a₂ ∧ b₁ = b₂ ∨ a₁ = b₂ ∧ b₁ = a₂
state_after: no goals

tactic: rw [h₁, h₂]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [a₁, b₁].Perm [a₂, b₂]
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [b₂, a₂].Perm [a₂, b₂]

tactic: first | done | apply List.Perm.swap'; rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [b₂, a₂].Perm [a₂, b₂]
state_after: no goals

tactic: done
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [b₂, a₂].Perm [a₂, b₂]
state_after: no goals

tactic: apply List.Perm.swap'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [b₂, a₂].Perm [a₂, b₂]
state_after: case p
α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [].Perm []

tactic: rfl
state_before: case p
α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [].Perm []
state_after: no goals
Theorem: MeasureTheory.trim_trim
File: Mathlib/MeasureTheory/Measure/Trim.lean

tactic: refine @Measure.ext _ m₁ _ _ (fun t ht => ?_)
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
m₁ m₂ : MeasurableSpace α
hm₁₂ : m₁ ≤ m₂
hm₂ : m₂ ≤ m0
⊢ (μ.trim hm₂).trim hm₁₂ = μ.trim ⋯
state_after: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
m₁ m₂ : MeasurableSpace α
hm₁₂ : m₁ ≤ m₂
hm₂ : m₂ ≤ m0
t : Set α
ht : MeasurableSet t
⊢ ((μ.trim hm₂).trim hm₁₂) t = (μ.trim ⋯) t

tactic: rw [trim_measurableSet_eq hm₁₂ ht, trim_measurableSet_eq (hm₁₂.trans hm₂) ht,
  trim_measurableSet_eq hm₂ (hm₁₂ t ht)]
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
m₁ m₂ : MeasurableSpace α
hm₁₂ : m₁ ≤ m₂
hm₂ : m₂ ≤ m0
t : Set α
ht : MeasurableSet t
⊢ ((μ.trim hm₂).trim hm₁₂) t = (μ.trim ⋯) t
state_after: no goals
Theorem: tendsto_floor_atTop
File: Mathlib/Topology/Algebra/Order/Floor.lean

tactic: rw [floor_intCast]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
b : ℤ
⊢ b ≤ ⌊↑(b + 1)⌋
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
b : ℤ
⊢ b ≤ b + 1

tactic: exact (lt_add_one _).le
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
b : ℤ
⊢ b ≤ b + 1
state_after: no goals
Theorem: ContinuousAffineEquiv.symm_symm
File: Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean

tactic: ext x
state_before: k : Type u_1
P₁ : Type u_2
P₂ : Type u_3
P₃ : Type u_4
P₄ : Type u_5
V₁ : Type u_6
V₂ : Type u_7
V₃ : Type u_8
V₄ : Type u_9
inst✝²⁰ : Ring k
inst✝¹⁹ : AddCommGroup V₁
inst✝¹⁸ : Module k V₁
inst✝¹⁷ : AddTorsor V₁ P₁
inst✝¹⁶ : AddCommGroup V₂
inst✝¹⁵ : Module k V₂
inst✝¹⁴ : AddTorsor V₂ P₂
inst✝¹³ : AddCommGroup V₃
inst✝¹² : Module k V₃
inst✝¹¹ : AddTorsor V₃ P₃
inst✝¹⁰ : AddCommGroup V₄
inst✝⁹ : Module k V₄
inst✝⁸ : AddTorsor V₄ P₄
inst✝⁷ : TopologicalSpace P₁
inst✝⁶ : AddCommMonoid P₁
inst✝⁵ : Module k P₁
inst✝⁴ : TopologicalSpace P₂
inst✝³ : AddCommMonoid P₂
inst✝² : Module k P₂
inst✝¹ : TopologicalSpace P₃
inst✝ : TopologicalSpace P₄
e : P₁ ≃ᵃL[k] P₂
⊢ e.symm.symm = e
state_after: case h
k : Type u_1
P₁ : Type u_2
P₂ : Type u_3
P₃ : Type u_4
P₄ : Type u_5
V₁ : Type u_6
V₂ : Type u_7
V₃ : Type u_8
V₄ : Type u_9
inst✝²⁰ : Ring k
inst✝¹⁹ : AddCommGroup V₁
inst✝¹⁸ : Module k V₁
inst✝¹⁷ : AddTorsor V₁ P₁
inst✝¹⁶ : AddCommGroup V₂
inst✝¹⁵ : Module k V₂
inst✝¹⁴ : AddTorsor V₂ P₂
inst✝¹³ : AddCommGroup V₃
inst✝¹² : Module k V₃
inst✝¹¹ : AddTorsor V₃ P₃
inst✝¹⁰ : AddCommGroup V₄
inst✝⁹ : Module k V₄
inst✝⁸ : AddTorsor V₄ P₄
inst✝⁷ : TopologicalSpace P₁
inst✝⁶ : AddCommMonoid P₁
inst✝⁵ : Module k P₁
inst✝⁴ : TopologicalSpace P₂
inst✝³ : AddCommMonoid P₂
inst✝² : Module k P₂
inst✝¹ : TopologicalSpace P₃
inst✝ : TopologicalSpace P₄
e : P₁ ≃ᵃL[k] P₂
x : P₁
⊢ e.symm.symm x = e x

tactic: rfl
state_before: case h
k : Type u_1
P₁ : Type u_2
P₂ : Type u_3
P₃ : Type u_4
P₄ : Type u_5
V₁ : Type u_6
V₂ : Type u_7
V₃ : Type u_8
V₄ : Type u_9
inst✝²⁰ : Ring k
inst✝¹⁹ : AddCommGroup V₁
inst✝¹⁸ : Module k V₁
inst✝¹⁷ : AddTorsor V₁ P₁
inst✝¹⁶ : AddCommGroup V₂
inst✝¹⁵ : Module k V₂
inst✝¹⁴ : AddTorsor V₂ P₂
inst✝¹³ : AddCommGroup V₃
inst✝¹² : Module k V₃
inst✝¹¹ : AddTorsor V₃ P₃
inst✝¹⁰ : AddCommGroup V₄
inst✝⁹ : Module k V₄
inst✝⁸ : AddTorsor V₄ P₄
inst✝⁷ : TopologicalSpace P₁
inst✝⁶ : AddCommMonoid P₁
inst✝⁵ : Module k P₁
inst✝⁴ : TopologicalSpace P₂
inst✝³ : AddCommMonoid P₂
inst✝² : Module k P₂
inst✝¹ : TopologicalSpace P₃
inst✝ : TopologicalSpace P₄
e : P₁ ≃ᵃL[k] P₂
x : P₁
⊢ e.symm.symm x = e x
state_after: no goals
Theorem: CategoryTheory.regularTopology.equalizerCondition_w'
File: Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean

tactic: simp only [← Functor.map_comp, ← op_comp, pullback.condition]
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝³ : Category.{u_5, u_1} C
inst✝² : Category.{?u.33684, u_2} D
inst✝¹ : Category.{?u.33688, u_3} E
P : Cᵒᵖ ⥤ Type u_4
X B : C
π : X ⟶ B
inst✝ : HasPullback π π
⊢ P.map π.op ≫ P.map pullback.fst.op = P.map π.op ≫ P.map pullback.snd.op
state_after: no goals
Theorem: Nat.prod_Icc_factorial
File: Mathlib/Data/Nat/Factorial/SuperFactorial.lean

tactic: rw [← Ico_succ_right 1 n.succ, prod_Ico_succ_top <| Nat.succ_le_succ <| Nat.zero_le n,
Nat.factorial_succ, Ico_succ_right 1 n, prod_Icc_factorial n, superFactorial, factorial,
Nat.succ_eq_add_one, mul_comm]
state_before: n✝ n : ℕ
⊢ ∏ x ∈ Icc 1 (n + 1), x ! = sf n + 1
state_after: no goals
Theorem: uniformEmbedding_iff'
File: Mathlib/Topology/UniformSpace/UniformEmbedding.lean

tactic: rw [uniformEmbedding_iff, and_comm, uniformInducing_iff']
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : α → β
⊢ UniformEmbedding f ↔ Injective f ∧ UniformContinuous f ∧ comap (Prod.map f f) (𝓤 β) ≤ 𝓤 α
state_after: no goals
Theorem: Set.Countable.isGδ_compl
File: Mathlib/Topology/Separation.lean

tactic: rw [← biUnion_of_singleton s, compl_iUnion₂]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
s : Set X
inst✝ : T1Space X
hs : s.Countable
⊢ IsGδ sᶜ
state_after: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
s : Set X
inst✝ : T1Space X
hs : s.Countable
⊢ IsGδ (⋂ i ∈ s, {i}ᶜ)

tactic: exact .biInter hs fun x _ => .compl_singleton x
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
s : Set X
inst✝ : T1Space X
hs : s.Countable
⊢ IsGδ (⋂ i ∈ s, {i}ᶜ)
state_after: no goals
Theorem: OrderEmbedding.infIrredUpperSet_surjective
File: Mathlib/Order/Birkhoff.lean

tactic: aesop (add simp Surjective)
state_before: α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : Finite α
⊢ Surjective ⇑infIrredUpperSet
state_after: no goals
Theorem: Cardinal.ofENat_mul
File: Mathlib/SetTheory/Cardinal/ENat.lean

tactic: simp
state_before: m n : ℕ∞
⊢ ↑(m * n) ∈ Iic ℵ₀
state_after: no goals

tactic: simp
state_before: m n : ℕ∞
⊢ toENat ↑(m * n) = toENat (↑m * ↑n)
state_after: no goals
Theorem: ProbabilityTheory.monotone_preCDF
File: Mathlib/Probability/Kernel/Disintegration/CondCdf.lean

tactic: simp_rw [Monotone, ae_all_iff]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
inst✝ : IsFiniteMeasure ρ
⊢ ∀ᵐ (a : α) ∂ρ.fst, Monotone fun r => preCDF ρ r a
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
inst✝ : IsFiniteMeasure ρ
⊢ ∀ (i i_1 : ℚ), i ≤ i_1 → ∀ᵐ (a : α) ∂ρ.fst, preCDF ρ i a ≤ preCDF ρ i_1 a

tactic: refine fun r r' hrr' ↦ ae_le_of_forall_setLIntegral_le_of_sigmaFinite measurable_preCDF
  measurable_preCDF fun s hs _ ↦ ?_
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
inst✝ : IsFiniteMeasure ρ
⊢ ∀ (i i_1 : ℚ), i ≤ i_1 → ∀ᵐ (a : α) ∂ρ.fst, preCDF ρ i a ≤ preCDF ρ i_1 a
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
inst✝ : IsFiniteMeasure ρ
r r' : ℚ
hrr' : r ≤ r'
s : Set α
hs : MeasurableSet s
x✝ : ρ.fst s < ⊤
⊢ ∫⁻ (x : α) in s, preCDF ρ r x ∂ρ.fst ≤ ∫⁻ (x : α) in s, preCDF ρ r' x ∂ρ.fst

tactic: rw [setLIntegral_preCDF_fst ρ r hs, setLIntegral_preCDF_fst ρ r' hs]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
inst✝ : IsFiniteMeasure ρ
r r' : ℚ
hrr' : r ≤ r'
s : Set α
hs : MeasurableSet s
x✝ : ρ.fst s < ⊤
⊢ ∫⁻ (x : α) in s, preCDF ρ r x ∂ρ.fst ≤ ∫⁻ (x : α) in s, preCDF ρ r' x ∂ρ.fst
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
inst✝ : IsFiniteMeasure ρ
r r' : ℚ
hrr' : r ≤ r'
s : Set α
hs : MeasurableSet s
x✝ : ρ.fst s < ⊤
⊢ (ρ.IicSnd ↑r) s ≤ (ρ.IicSnd ↑r') s

tactic: exact Measure.IicSnd_mono ρ (mod_cast hrr') s
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
inst✝ : IsFiniteMeasure ρ
r r' : ℚ
hrr' : r ≤ r'
s : Set α
hs : MeasurableSet s
x✝ : ρ.fst s < ⊤
⊢ (ρ.IicSnd ↑r) s ≤ (ρ.IicSnd ↑r') s
state_after: no goals
Theorem: MeasureTheory.SimpleFunc.tendsto_approxOn_range_L1_nnnorm
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace E
inst✝² : NormedAddCommGroup E
inst✝¹ : OpensMeasurableSpace E
f : β → E
μ : Measure β
inst✝ : SeparableSpace ↑(Set.range f ∪ {0})
fmeas : Measurable f
hf : Integrable f μ
n : ℕ
x : β
⊢ 0 ∈ Set.range f ∪ {0}
state_after: no goals

tactic: apply tendsto_approxOn_L1_nnnorm fmeas
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace E
inst✝² : NormedAddCommGroup E
inst✝¹ : OpensMeasurableSpace E
f : β → E
μ : Measure β
inst✝ : SeparableSpace ↑(Set.range f ∪ {0})
fmeas : Measurable f
hf : Integrable f μ
⊢ Tendsto (fun n => ∫⁻ (x : β), ↑‖↑(approxOn f fmeas (Set.range f ∪ {0}) 0 ⋯ n) x - f x‖₊ ∂μ) atTop (𝓝 0)
state_after: case hμ
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace E
inst✝² : NormedAddCommGroup E
inst✝¹ : OpensMeasurableSpace E
f : β → E
μ : Measure β
inst✝ : SeparableSpace ↑(Set.range f ∪ {0})
fmeas : Measurable f
hf : Integrable f μ
⊢ ∀ᵐ (x : β) ∂μ, f x ∈ closure (Set.range f ∪ {0})

case hi
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace E
inst✝² : NormedAddCommGroup E
inst✝¹ : OpensMeasurableSpace E
f : β → E
μ : Measure β
inst✝ : SeparableSpace ↑(Set.range f ∪ {0})
fmeas : Measurable f
hf : Integrable f μ
⊢ HasFiniteIntegral (fun x => f x - 0) μ

tactic: filter_upwards with x using subset_closure (by simp)
state_before: case hμ
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace E
inst✝² : NormedAddCommGroup E
inst✝¹ : OpensMeasurableSpace E
f : β → E
μ : Measure β
inst✝ : SeparableSpace ↑(Set.range f ∪ {0})
fmeas : Measurable f
hf : Integrable f μ
⊢ ∀ᵐ (x : β) ∂μ, f x ∈ closure (Set.range f ∪ {0})
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace E
inst✝² : NormedAddCommGroup E
inst✝¹ : OpensMeasurableSpace E
f : β → E
μ : Measure β
inst✝ : SeparableSpace ↑(Set.range f ∪ {0})
fmeas : Measurable f
hf : Integrable f μ
x : β
⊢ f x ∈ Set.range f ∪ {0}
state_after: no goals

tactic: simpa using hf.2
state_before: case hi
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace E
inst✝² : NormedAddCommGroup E
inst✝¹ : OpensMeasurableSpace E
f : β → E
μ : Measure β
inst✝ : SeparableSpace ↑(Set.range f ∪ {0})
fmeas : Measurable f
hf : Integrable f μ
⊢ HasFiniteIntegral (fun x => f x - 0) μ
state_after: no goals
Theorem: length_permsOfList
File: Mathlib/Data/Fintype/Perm.lean

tactic: rw [length_cons, Nat.factorial_succ]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
a : α
l : List α
⊢ (permsOfList (a :: l)).length = (a :: l).length !
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
a : α
l : List α
⊢ (permsOfList (a :: l)).length = (l.length + 1) * l.length !

tactic: simp only [permsOfList, length_append, length_permsOfList, length_bind, comp,
 length_map, map_const', sum_replicate, smul_eq_mul, succ_mul]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
a : α
l : List α
⊢ (permsOfList (a :: l)).length = (l.length + 1) * l.length !
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
a : α
l : List α
⊢ l.length ! + l.length * l.length ! = l.length * l.length ! + l.length !

tactic: ring
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
a : α
l : List α
⊢ l.length ! + l.length * l.length ! = l.length * l.length ! + l.length !
state_after: no goals
Theorem: Nat.Prime.prod_properDivisors
File: Mathlib/NumberTheory/Divisors.lean

tactic: simp [h.properDivisors]
state_before: n : ℕ
α : Type u_1
inst✝ : CommMonoid α
p : ℕ
f : ℕ → α
h : Prime p
⊢ ∏ x ∈ p.properDivisors, f x = f 1
state_after: no goals