1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: uncountable_iff_forall_not_surjective
File: Mathlib/Data/Countable/Defs.lean

tactic: rw [← not_countable_iff, countable_iff_exists_surjective, not_exists]
state_before: α : Sort u
β : Sort v
inst✝ : Nonempty α
⊢ Uncountable α ↔ ∀ (f : ℕ → α), ¬Surjective f
state_after: no goals
Theorem: ProbabilityTheory.kernel.lintegral_withDensity
File: Mathlib/Probability/Kernel/WithDensity.lean

tactic: rw [kernel.withDensity_apply _ hf,
  lintegral_withDensity_eq_lintegral_mul _ (Measurable.of_uncurry_left hf) hg]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf : Measurable (Function.uncurry f)
a : α
g : β → ℝ≥0∞
hg : Measurable g
⊢ ∫⁻ (b : β), g b ∂(withDensity κ f) a = ∫⁻ (b : β), f a b * g b ∂κ a
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf : Measurable (Function.uncurry f)
a : α
g : β → ℝ≥0∞
hg : Measurable g
⊢ ∫⁻ (a_1 : β), (f a * g) a_1 ∂κ a = ∫⁻ (b : β), f a b * g b ∂κ a

tactic: simp_rw [Pi.mul_apply]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf : Measurable (Function.uncurry f)
a : α
g : β → ℝ≥0∞
hg : Measurable g
⊢ ∫⁻ (a_1 : β), (f a * g) a_1 ∂κ a = ∫⁻ (b : β), f a b * g b ∂κ a
state_after: no goals
Theorem: Complex.tendsto_log_nhdsWithin_im_neg_of_re_neg_of_im_zero
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: convert
  (continuous_ofReal.continuousAt.comp_continuousWithinAt
          (continuous_abs.continuousWithinAt.log _)).tendsto.add
    (((continuous_ofReal.tendsto _).comp <|
          tendsto_arg_nhdsWithin_im_neg_of_re_neg_of_im_zero hre him).mul
      tendsto_const_nhds) using 1
state_before: z : ℂ
hre : z.re < 0
him : z.im = 0
⊢ Tendsto log (𝓝[{z | z.im < 0}] z) (𝓝 (↑(Real.log (abs z)) - ↑π * I))
state_after: case h.e'_5
z : ℂ
hre : z.re < 0
him : z.im = 0
⊢ 𝓝 (↑(Real.log (abs z)) - ↑π * I) = 𝓝 ((ofReal' ∘ fun x => Real.log (abs x)) z + ↑(-π) * I)

case convert_1
z : ℂ
hre : z.re < 0
him : z.im = 0
⊢ abs z ≠ 0

tactic: simp [sub_eq_add_neg]
state_before: case h.e'_5
z : ℂ
hre : z.re < 0
him : z.im = 0
⊢ 𝓝 (↑(Real.log (abs z)) - ↑π * I) = 𝓝 ((ofReal' ∘ fun x => Real.log (abs x)) z + ↑(-π) * I)
state_after: no goals

tactic: lift z to ℝ using him
state_before: case convert_1
z : ℂ
hre : z.re < 0
him : z.im = 0
⊢ abs z ≠ 0
state_after: case convert_1.intro
z : ℝ
hre : (↑z).re < 0
⊢ abs ↑z ≠ 0

tactic: simpa using hre.ne
state_before: case convert_1.intro
z : ℝ
hre : (↑z).re < 0
⊢ abs ↑z ≠ 0
state_after: no goals
Theorem: AdicCompletion.sum_of
File: Mathlib/RingTheory/AdicCompletion/Functoriality.lean

tactic: rw [← lof_eq_of R]
state_before: R : Type u_1
inst✝¹¹ : CommRing R
I : Ideal R
M✝ : Type u_2
inst✝¹⁰ : AddCommGroup M✝
inst✝⁹ : Module R M✝
N : Type u_3
inst✝⁸ : AddCommGroup N
inst✝⁷ : Module R N
P : Type u_4
inst✝⁶ : AddCommGroup P
inst✝⁵ : Module R P
T : Type u_5
inst✝⁴ : AddCommGroup T
inst✝³ : Module (AdicCompletion I R) T
ι : Type u_6
inst✝² : DecidableEq ι
M : ι → Type u_7
inst✝¹ : (i : ι) → AddCommGroup (M i)
inst✝ : (i : ι) → Module R (M i)
j : ι
x : AdicCompletion I (M j)
⊢ (sum I M) ((DirectSum.of (fun i => AdicCompletion I (M i)) j) x) = (map I (lof R ι M j)) x
state_after: R : Type u_1
inst✝¹¹ : CommRing R
I : Ideal R
M✝ : Type u_2
inst✝¹⁰ : AddCommGroup M✝
inst✝⁹ : Module R M✝
N : Type u_3
inst✝⁸ : AddCommGroup N
inst✝⁷ : Module R N
P : Type u_4
inst✝⁶ : AddCommGroup P
inst✝⁵ : Module R P
T : Type u_5
inst✝⁴ : AddCommGroup T
inst✝³ : Module (AdicCompletion I R) T
ι : Type u_6
inst✝² : DecidableEq ι
M : ι → Type u_7
inst✝¹ : (i : ι) → AddCommGroup (M i)
inst✝ : (i : ι) → Module R (M i)
j : ι
x : AdicCompletion I (M j)
⊢ (sum I M) ((lof R ι (fun i => AdicCompletion I (M i)) j) x) = (map I (lof R ι M j)) x

tactic: apply sum_lof
state_before: R : Type u_1
inst✝¹¹ : CommRing R
I : Ideal R
M✝ : Type u_2
inst✝¹⁰ : AddCommGroup M✝
inst✝⁹ : Module R M✝
N : Type u_3
inst✝⁸ : AddCommGroup N
inst✝⁷ : Module R N
P : Type u_4
inst✝⁶ : AddCommGroup P
inst✝⁵ : Module R P
T : Type u_5
inst✝⁴ : AddCommGroup T
inst✝³ : Module (AdicCompletion I R) T
ι : Type u_6
inst✝² : DecidableEq ι
M : ι → Type u_7
inst✝¹ : (i : ι) → AddCommGroup (M i)
inst✝ : (i : ι) → Module R (M i)
j : ι
x : AdicCompletion I (M j)
⊢ (sum I M) ((lof R ι (fun i => AdicCompletion I (M i)) j) x) = (map I (lof R ι M j)) x
state_after: no goals
Theorem: Int.testBit_bitwise
File: Mathlib/Data/Int/Bitwise.lean

tactic: cases m <;> cases n <;> simp only [testBit, bitwise, natBitwise]
state_before: f : Bool → Bool → Bool
m n : ℤ
k : ℕ
⊢ (bitwise f m n).testBit k = f (m.testBit k) (n.testBit k)
state_after: case ofNat.ofNat
f : Bool → Bool → Bool
k a✝¹ a✝ : ℕ
⊢ (match bif f false false then -[Nat.bitwise (fun x y => !f x y) a✝¹ a✝+1] else ↑(Nat.bitwise f a✝¹ a✝), k with
    | ofNat m, n => m.testBit n
    | -[m+1], n => !m.testBit n) =
    f (a✝¹.testBit k) (a✝.testBit k)

case ofNat.negSucc
f : Bool → Bool → Bool
k a✝¹ a✝ : ℕ
⊢ (match
      bif f false !false then -[Nat.bitwise (fun x y => !f x !y) a✝¹ a✝+1]
      else ↑(Nat.bitwise (fun x y => f x !y) a✝¹ a✝),
      k with
    | ofNat m, n => m.testBit n
    | -[m+1], n => !m.testBit n) =
    f (a✝¹.testBit k) !a✝.testBit k

case negSucc.ofNat
f : Bool → Bool → Bool
k a✝¹ a✝ : ℕ
⊢ (match
      bif f (!false) false then -[Nat.bitwise (fun x y => !f (!x) y) a✝¹ a✝+1]
      else ↑(Nat.bitwise (fun x y => f (!x) y) a✝¹ a✝),
      k with
    | ofNat m, n => m.testBit n
    | -[m+1], n => !m.testBit n) =
    f (!a✝¹.testBit k) (a✝.testBit k)

case negSucc.negSucc
f : Bool → Bool → Bool
k a✝¹ a✝ : ℕ
⊢ (match
      bif f (!false) !false then -[Nat.bitwise (fun x y => !f (!x) !y) a✝¹ a✝+1]
      else ↑(Nat.bitwise (fun x y => f (!x) !y) a✝¹ a✝),
      k with
    | ofNat m, n => m.testBit n
    | -[m+1], n => !m.testBit n) =
    f (!a✝¹.testBit k) !a✝.testBit k

tactic: by_cases h : f false false <;> simp [h]
state_before: case ofNat.ofNat
f : Bool → Bool → Bool
k a✝¹ a✝ : ℕ
⊢ (match bif f false false then -[Nat.bitwise (fun x y => !f x y) a✝¹ a✝+1] else ↑(Nat.bitwise f a✝¹ a✝), k with
    | ofNat m, n => m.testBit n
    | -[m+1], n => !m.testBit n) =
    f (a✝¹.testBit k) (a✝.testBit k)
state_after: no goals

tactic: by_cases h : f false true <;> simp [h]
state_before: case ofNat.negSucc
f : Bool → Bool → Bool
k a✝¹ a✝ : ℕ
⊢ (match
      bif f false !false then -[Nat.bitwise (fun x y => !f x !y) a✝¹ a✝+1]
      else ↑(Nat.bitwise (fun x y => f x !y) a✝¹ a✝),
      k with
    | ofNat m, n => m.testBit n
    | -[m+1], n => !m.testBit n) =
    f (a✝¹.testBit k) !a✝.testBit k
state_after: no goals

tactic: by_cases h : f true false <;> simp [h]
state_before: case negSucc.ofNat
f : Bool → Bool → Bool
k a✝¹ a✝ : ℕ
⊢ (match
      bif f (!false) false then -[Nat.bitwise (fun x y => !f (!x) y) a✝¹ a✝+1]
      else ↑(Nat.bitwise (fun x y => f (!x) y) a✝¹ a✝),
      k with
    | ofNat m, n => m.testBit n
    | -[m+1], n => !m.testBit n) =
    f (!a✝¹.testBit k) (a✝.testBit k)
state_after: no goals

tactic: by_cases h : f true true <;> simp [h]
state_before: case negSucc.negSucc
f : Bool → Bool → Bool
k a✝¹ a✝ : ℕ
⊢ (match
      bif f (!false) !false then -[Nat.bitwise (fun x y => !f (!x) !y) a✝¹ a✝+1]
      else ↑(Nat.bitwise (fun x y => f (!x) !y) a✝¹ a✝),
      k with
    | ofNat m, n => m.testBit n
    | -[m+1], n => !m.testBit n) =
    f (!a✝¹.testBit k) !a✝.testBit k
state_after: no goals
Theorem: PartENat.lt_wf
File: Mathlib/Data/Nat/PartENat.lean

tactic: classical
  change WellFounded fun a b : PartENat => a < b
  simp_rw [← withTopEquiv_lt]
  exact InvImage.wf _ wellFounded_lt
state_before: ⊢ WellFounded fun x x_1 => x < x_1
state_after: no goals

tactic: change WellFounded fun a b : PartENat => a < b
state_before: ⊢ WellFounded fun x x_1 => x < x_1
state_after: ⊢ WellFounded fun a b => a < b

tactic: simp_rw [← withTopEquiv_lt]
state_before: ⊢ WellFounded fun a b => a < b
state_after: ⊢ WellFounded fun a b => withTopEquiv a < withTopEquiv b

tactic: exact InvImage.wf _ wellFounded_lt
state_before: ⊢ WellFounded fun a b => withTopEquiv a < withTopEquiv b
state_after: no goals
Theorem: Matrix.conjTranspose_ratCast_smul
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝³ : DivisionRing R
inst✝² : AddCommGroup α
inst✝¹ : StarAddMonoid α
inst✝ : Module R α
c : ℚ
M : Matrix m n α
⊢ ∀ (i : n) (j : m), (↑c • M)ᴴ i j = (↑c • Mᴴ) i j
state_after: no goals
Theorem: Order.Ideal.IsPrime.of_mem_or_mem
File: Mathlib/Order/PrimeIdeal.lean

tactic: rw [isPrime_iff]
state_before: P : Type u_1
inst✝¹ : SemilatticeInf P
x y : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
⊢ I.IsPrime
state_after: P : Type u_1
inst✝¹ : SemilatticeInf P
x y : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
⊢ I.IsProper ∧ IsPFilter (↑I)ᶜ

tactic: use ‹_›
state_before: P : Type u_1
inst✝¹ : SemilatticeInf P
x y : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
⊢ I.IsProper ∧ IsPFilter (↑I)ᶜ
state_after: case right
P : Type u_1
inst✝¹ : SemilatticeInf P
x y : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
⊢ IsPFilter (↑I)ᶜ

tactic: refine .of_def ?_ ?_ ?_
state_before: case right
P : Type u_1
inst✝¹ : SemilatticeInf P
x y : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
⊢ IsPFilter (↑I)ᶜ
state_after: case right.refine_1
P : Type u_1
inst✝¹ : SemilatticeInf P
x y : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
⊢ (↑I)ᶜ.Nonempty

case right.refine_2
P : Type u_1
inst✝¹ : SemilatticeInf P
x y : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
⊢ DirectedOn (fun x x_1 => x ≥ x_1) (↑I)ᶜ

case right.refine_3
P : Type u_1
inst✝¹ : SemilatticeInf P
x y : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
⊢ ∀ {x y : P}, x ≤ y → x ∈ (↑I)ᶜ → y ∈ (↑I)ᶜ

tactic: exact Set.nonempty_compl.2 (I.isProper_iff.1 ‹_›)
state_before: case right.refine_1
P : Type u_1
inst✝¹ : SemilatticeInf P
x y : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
⊢ (↑I)ᶜ.Nonempty
state_after: no goals

tactic: intro x hx y hy
state_before: case right.refine_2
P : Type u_1
inst✝¹ : SemilatticeInf P
x y : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
⊢ DirectedOn (fun x x_1 => x ≥ x_1) (↑I)ᶜ
state_after: case right.refine_2
P : Type u_1
inst✝¹ : SemilatticeInf P
x✝ y✝ : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
x : P
hx : x ∈ (↑I)ᶜ
y : P
hy : y ∈ (↑I)ᶜ
⊢ ∃ z ∈ (↑I)ᶜ, (fun x x_1 => x ≥ x_1) x z ∧ (fun x x_1 => x ≥ x_1) y z

tactic: exact ⟨x ⊓ y, fun h => (hI h).elim hx hy, inf_le_left, inf_le_right⟩
state_before: case right.refine_2
P : Type u_1
inst✝¹ : SemilatticeInf P
x✝ y✝ : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
x : P
hx : x ∈ (↑I)ᶜ
y : P
hy : y ∈ (↑I)ᶜ
⊢ ∃ z ∈ (↑I)ᶜ, (fun x x_1 => x ≥ x_1) x z ∧ (fun x x_1 => x ≥ x_1) y z
state_after: no goals

tactic: exact @mem_compl_of_ge _ _ _
state_before: case right.refine_3
P : Type u_1
inst✝¹ : SemilatticeInf P
x y : P
I : Ideal P
inst✝ : I.IsProper
hI : ∀ {x y : P}, x ⊓ y ∈ I → x ∈ I ∨ y ∈ I
⊢ ∀ {x y : P}, x ≤ y → x ∈ (↑I)ᶜ → y ∈ (↑I)ᶜ
state_after: no goals
Theorem: Int.clog_natCast
File: Mathlib/Data/Int/Log.lean

tactic: cases' n with n
state_before: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b n : ℕ
⊢ clog b ↑n = ↑(Nat.clog b n)
state_after: case zero
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
⊢ clog b ↑0 = ↑(Nat.clog b 0)

case succ
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b n : ℕ
⊢ clog b ↑(n + 1) = ↑(Nat.clog b (n + 1))

tactic: simp [clog_of_right_le_one]
state_before: case zero
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
⊢ clog b ↑0 = ↑(Nat.clog b 0)
state_after: no goals

tactic: rw [clog_of_one_le_right, (Nat.ceil_eq_iff (Nat.succ_ne_zero n)).mpr] <;> simp
state_before: case succ
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b n : ℕ
⊢ clog b ↑(n + 1) = ↑(Nat.clog b (n + 1))
state_after: no goals
Theorem: GeneralizedContinuedFraction.terminatedAt_iff_part_num_none
File: Mathlib/Algebra/ContinuedFractions/Translations.lean

tactic: rw [terminatedAt_iff_s_none, part_num_none_iff_s_none]
state_before: α : Type u_1
g : GeneralizedContinuedFraction α
n : ℕ
⊢ g.TerminatedAt n ↔ g.partialNumerators.get? n = none
state_after: no goals
Theorem: homology'.condition_π'
File: Mathlib/CategoryTheory/Abelian/Homology.lean

tactic: dsimp [π']
state_before: A : Type u
inst✝¹ : Category.{v, u} A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
⊢ kernel.lift g f w ≫ π' f g w = 0
state_after: A : Type u
inst✝¹ : Category.{v, u} A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
⊢ kernel.lift g f w ≫ cokernel.π (kernel.lift g f w) ≫ (homology'IsoCokernelLift f g w).inv = 0

tactic: simp
state_before: A : Type u
inst✝¹ : Category.{v, u} A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
⊢ kernel.lift g f w ≫ cokernel.π (kernel.lift g f w) ≫ (homology'IsoCokernelLift f g w).inv = 0
state_after: no goals
Theorem: supClosed_singleton
File: Mathlib/Order/SupClosed.lean

tactic: simp [SupClosed]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
ι : Sort u_4
S : Set (Set α)
f : ι → Set α
s t : Set α
a : α
⊢ SupClosed {a}
state_after: no goals
Theorem: Derivation.compAEval_eq
File: Mathlib/Algebra/Polynomial/Derivation.lean

tactic: rw [← mkDerivation_apply]
state_before: R : Type u_1
A : Type u_2
M : Type u_3
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : Algebra R A
inst✝³ : AddCommMonoid M
inst✝² : Module A M
inst✝¹ : Module R M
inst✝ : IsScalarTower R A M
d✝ : Derivation R A M
a : A
d : Derivation R A M
f : R[X]
⊢ (d.compAEval a) f = derivative f • (AEval.of R M a) (d a)
state_after: R : Type u_1
A : Type u_2
M : Type u_3
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : Algebra R A
inst✝³ : AddCommMonoid M
inst✝² : Module A M
inst✝¹ : Module R M
inst✝ : IsScalarTower R A M
d✝ : Derivation R A M
a : A
d : Derivation R A M
f : R[X]
⊢ (d.compAEval a) f = ((mkDerivation R) ((AEval.of R M a) (d a))) f

tactic: congr
state_before: R : Type u_1
A : Type u_2
M : Type u_3
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : Algebra R A
inst✝³ : AddCommMonoid M
inst✝² : Module A M
inst✝¹ : Module R M
inst✝ : IsScalarTower R A M
d✝ : Derivation R A M
a : A
d : Derivation R A M
f : R[X]
⊢ (d.compAEval a) f = ((mkDerivation R) ((AEval.of R M a) (d a))) f
state_after: case e_a
R : Type u_1
A : Type u_2
M : Type u_3
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : Algebra R A
inst✝³ : AddCommMonoid M
inst✝² : Module A M
inst✝¹ : Module R M
inst✝ : IsScalarTower R A M
d✝ : Derivation R A M
a : A
d : Derivation R A M
f : R[X]
⊢ d.compAEval a = (mkDerivation R) ((AEval.of R M a) (d a))

tactic: apply derivation_ext
state_before: case e_a
R : Type u_1
A : Type u_2
M : Type u_3
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : Algebra R A
inst✝³ : AddCommMonoid M
inst✝² : Module A M
inst✝¹ : Module R M
inst✝ : IsScalarTower R A M
d✝ : Derivation R A M
a : A
d : Derivation R A M
f : R[X]
⊢ d.compAEval a = (mkDerivation R) ((AEval.of R M a) (d a))
state_after: case e_a.h
R : Type u_1
A : Type u_2
M : Type u_3
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : Algebra R A
inst✝³ : AddCommMonoid M
inst✝² : Module A M
inst✝¹ : Module R M
inst✝ : IsScalarTower R A M
d✝ : Derivation R A M
a : A
d : Derivation R A M
f : R[X]
⊢ (d.compAEval a) X = ((mkDerivation R) ((AEval.of R M a) (d a))) X

tactic: simp
state_before: case e_a.h
R : Type u_1
A : Type u_2
M : Type u_3
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : Algebra R A
inst✝³ : AddCommMonoid M
inst✝² : Module A M
inst✝¹ : Module R M
inst✝ : IsScalarTower R A M
d✝ : Derivation R A M
a : A
d : Derivation R A M
f : R[X]
⊢ (d.compAEval a) X = ((mkDerivation R) ((AEval.of R M a) (d a))) X
state_after: no goals
Theorem: Nat.prod_divisorsAntidiagonal
File: Mathlib/NumberTheory/Divisors.lean

tactic: rw [← map_div_right_divisors, Finset.prod_map]
state_before: n✝ : ℕ
M : Type u_1
inst✝ : CommMonoid M
f : ℕ → ℕ → M
n : ℕ
⊢ ∏ i ∈ n.divisorsAntidiagonal, f i.1 i.2 = ∏ i ∈ n.divisors, f i (n / i)
state_after: n✝ : ℕ
M : Type u_1
inst✝ : CommMonoid M
f : ℕ → ℕ → M
n : ℕ
⊢ ∏ x ∈ n.divisors,
      f ({ toFun := fun d => (d, n / d), inj' := ⋯ } x).1 ({ toFun := fun d => (d, n / d), inj' := ⋯ } x).2 =
    ∏ i ∈ n.divisors, f i (n / i)

tactic: rfl
state_before: n✝ : ℕ
M : Type u_1
inst✝ : CommMonoid M
f : ℕ → ℕ → M
n : ℕ
⊢ ∏ x ∈ n.divisors,
      f ({ toFun := fun d => (d, n / d), inj' := ⋯ } x).1 ({ toFun := fun d => (d, n / d), inj' := ⋯ } x).2 =
    ∏ i ∈ n.divisors, f i (n / i)
state_after: no goals
Theorem: Down.card_compression
File: Mathlib/Combinatorics/SetFamily/Compression/Down.lean

tactic: rw [compression, card_disjUnion, filter_image,
  card_image_of_injOn ((erase_injOn' _).mono fun s hs => _), ← card_union_of_disjoint]
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
⊢ (𝓓 a 𝒜).card = 𝒜.card
state_after: α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
⊢ (filter (fun s => s.erase a ∈ 𝒜) 𝒜 ∪ filter (fun a_1 => a_1.erase a ∉ 𝒜) 𝒜).card = 𝒜.card

α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
⊢ Disjoint (filter (fun s => s.erase a ∈ 𝒜) 𝒜) (filter (fun a_1 => a_1.erase a ∉ 𝒜) 𝒜)

α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
⊢ ∀ s ∈ ↑(filter (fun a_1 => a_1.erase a ∉ 𝒜) 𝒜), s ∈ {s | a ∈ s}

tactic: intro s hs
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
⊢ ∀ s ∈ ↑(filter (fun a_1 => a_1.erase a ∉ 𝒜) 𝒜), s ∈ {s | a ∈ s}
state_after: α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
hs : s ∈ ↑(filter (fun a_1 => a_1.erase a ∉ 𝒜) 𝒜)
⊢ s ∈ {s | a ∈ s}

tactic: rw [mem_coe, mem_filter] at hs
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
hs : s ∈ ↑(filter (fun a_1 => a_1.erase a ∉ 𝒜) 𝒜)
⊢ s ∈ {s | a ∈ s}
state_after: α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
hs : s ∈ 𝒜 ∧ s.erase a ∉ 𝒜
⊢ s ∈ {s | a ∈ s}

tactic: exact not_imp_comm.1 erase_eq_of_not_mem (ne_of_mem_of_not_mem hs.1 hs.2).symm
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s✝ : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
s : Finset α
hs : s ∈ 𝒜 ∧ s.erase a ∉ 𝒜
⊢ s ∈ {s | a ∈ s}
state_after: no goals

tactic: conv_rhs => rw [← filter_union_filter_neg_eq (fun s => (erase s a ∈ 𝒜)) 𝒜]
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
⊢ (filter (fun s => s.erase a ∈ 𝒜) 𝒜 ∪ filter (fun a_1 => a_1.erase a ∉ 𝒜) 𝒜).card = 𝒜.card
state_after: no goals

tactic: exact disjoint_filter_filter_neg 𝒜 𝒜 (fun s => (erase s a ∈ 𝒜))
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
a✝ a : α
𝒜 : Finset (Finset α)
⊢ Disjoint (filter (fun s => s.erase a ∈ 𝒜) 𝒜) (filter (fun a_1 => a_1.erase a ∉ 𝒜) 𝒜)
state_after: no goals
Theorem: PadicInt.p_nonnunit
File: Mathlib/NumberTheory/Padics/PadicIntegers.lean

tactic: have : (p : ℝ)⁻¹ < 1 := inv_lt_one <| mod_cast hp.1.one_lt
state_before: p : ℕ
hp : Fact (Nat.Prime p)
⊢ ↑p ∈ nonunits ℤ_[p]
state_after: p : ℕ
hp : Fact (Nat.Prime p)
this : (↑p)⁻¹ < 1
⊢ ↑p ∈ nonunits ℤ_[p]

tactic: rwa [← norm_p, ← mem_nonunits] at this
state_before: p : ℕ
hp : Fact (Nat.Prime p)
this : (↑p)⁻¹ < 1
⊢ ↑p ∈ nonunits ℤ_[p]
state_after: no goals
Theorem: Submodule.set_smul_bot
File: Mathlib/Algebra/Module/Submodule/Pointwise.lean

tactic: induction x, hx using set_smul_inductionOn <;> aesop
state_before: α : Type u_1
R : Type u_2
M : Type u_3
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
S : Type u_4
inst✝³ : Monoid S
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DistribMulAction S M
sR : Set R
s : Set S
N : Submodule R M
x : M
hx : x ∈ s • ⊥
⊢ x ∈ ⊥
state_after: no goals
Theorem: WittVector.map_verschiebung
File: Mathlib/RingTheory/WittVector/Verschiebung.lean

tactic: ext ⟨-, -⟩
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
x : 𝕎 R
⊢ (map f) (verschiebung x) = verschiebung ((map f) x)
state_after: case h.zero
p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
x : 𝕎 R
⊢ ((map f) (verschiebung x)).coeff 0 = (verschiebung ((map f) x)).coeff 0

case h.succ
p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
x : 𝕎 R
n✝ : ℕ
⊢ ((map f) (verschiebung x)).coeff (n✝ + 1) = (verschiebung ((map f) x)).coeff (n✝ + 1)

tactic: exact f.map_zero
state_before: case h.zero
p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
x : 𝕎 R
⊢ ((map f) (verschiebung x)).coeff 0 = (verschiebung ((map f) x)).coeff 0
state_after: no goals

tactic: rfl
state_before: case h.succ
p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
x : 𝕎 R
n✝ : ℕ
⊢ ((map f) (verschiebung x)).coeff (n✝ + 1) = (verschiebung ((map f) x)).coeff (n✝ + 1)
state_after: no goals
Theorem: Bornology.isVonNBounded_iff_tendsto_smallSets_nhds
File: Mathlib/Analysis/LocallyConvex/Bounded.lean

tactic: rw [tendsto_smallSets_iff]
state_before: 𝕜✝ : Type u_1
𝕜' : Type u_2
E✝ : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜 : Type u_7
E : Type u_8
inst✝³ : NormedDivisionRing 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
inst✝ : TopologicalSpace E
S : Set E
⊢ IsVonNBounded 𝕜 S ↔ Tendsto (fun x => x • S) (𝓝 0) (𝓝 0).smallSets
state_after: 𝕜✝ : Type u_1
𝕜' : Type u_2
E✝ : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜 : Type u_7
E : Type u_8
inst✝³ : NormedDivisionRing 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
inst✝ : TopologicalSpace E
S : Set E
⊢ IsVonNBounded 𝕜 S ↔ ∀ t ∈ 𝓝 0, ∀ᶠ (x : 𝕜) in 𝓝 0, x • S ⊆ t

tactic: refine forall₂_congr fun V hV ↦ ?_
state_before: 𝕜✝ : Type u_1
𝕜' : Type u_2
E✝ : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜 : Type u_7
E : Type u_8
inst✝³ : NormedDivisionRing 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
inst✝ : TopologicalSpace E
S : Set E
⊢ IsVonNBounded 𝕜 S ↔ ∀ t ∈ 𝓝 0, ∀ᶠ (x : 𝕜) in 𝓝 0, x • S ⊆ t
state_after: 𝕜✝ : Type u_1
𝕜' : Type u_2
E✝ : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜 : Type u_7
E : Type u_8
inst✝³ : NormedDivisionRing 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
inst✝ : TopologicalSpace E
S V : Set E
hV : V ∈ 𝓝 0
⊢ Absorbs 𝕜 V S ↔ ∀ᶠ (x : 𝕜) in 𝓝 0, x • S ⊆ V

tactic: simp only [absorbs_iff_eventually_nhds_zero (mem_of_mem_nhds hV), mapsTo', image_smul]
state_before: 𝕜✝ : Type u_1
𝕜' : Type u_2
E✝ : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜 : Type u_7
E : Type u_8
inst✝³ : NormedDivisionRing 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
inst✝ : TopologicalSpace E
S V : Set E
hV : V ∈ 𝓝 0
⊢ Absorbs 𝕜 V S ↔ ∀ᶠ (x : 𝕜) in 𝓝 0, x • S ⊆ V
state_after: no goals
Theorem: isNowhereDense_empty
File: Mathlib/Topology/GDelta.lean

tactic: rw [IsNowhereDense, closure_empty, interior_empty]
state_before: X✝ : Type u_1
Y : Type u_2
ι : Type u_3
ι' : Sort u_4
X : Type u_5
inst✝ : TopologicalSpace X
⊢ IsNowhereDense ∅
state_after: no goals