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

tactic: ext i
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✝³ : NonUnitalNonAssocSemiring α
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : NonUnitalNonAssocSemiring R
v : n → R
j : n
x : R
⊢ Pi.single j x ᵥ* diagonal v = Pi.single j (x * v j)
state_after: case h
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✝³ : NonUnitalNonAssocSemiring α
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : NonUnitalNonAssocSemiring R
v : n → R
j : n
x : R
i : n
⊢ (Pi.single j x ᵥ* diagonal v) i = Pi.single j (x * v j) i

tactic: rw [vecMul_diagonal]
state_before: case h
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✝³ : NonUnitalNonAssocSemiring α
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : NonUnitalNonAssocSemiring R
v : n → R
j : n
x : R
i : n
⊢ (Pi.single j x ᵥ* diagonal v) i = Pi.single j (x * v j) i
state_after: case h
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✝³ : NonUnitalNonAssocSemiring α
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : NonUnitalNonAssocSemiring R
v : n → R
j : n
x : R
i : n
⊢ Pi.single j x i * v i = Pi.single j (x * v j) i

tactic: exact Pi.apply_single (fun i x => x * v i) (fun i => zero_mul _) j x i
state_before: case h
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✝³ : NonUnitalNonAssocSemiring α
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : NonUnitalNonAssocSemiring R
v : n → R
j : n
x : R
i : n
⊢ Pi.single j x i * v i = Pi.single j (x * v j) i
state_after: no goals
Theorem: ENNReal.tendsto_toNNReal
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: lift a to ℝ≥0 using ha
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
a : ℝ≥0∞
ha : a ≠ ⊤
⊢ Tendsto ENNReal.toNNReal (𝓝 a) (𝓝 a.toNNReal)
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
a : ℝ≥0
⊢ Tendsto ENNReal.toNNReal (𝓝 ↑a) (𝓝 (↑a).toNNReal)

tactic: rw [nhds_coe, tendsto_map'_iff]
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
a : ℝ≥0
⊢ Tendsto ENNReal.toNNReal (𝓝 ↑a) (𝓝 (↑a).toNNReal)
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
a : ℝ≥0
⊢ Tendsto (ENNReal.toNNReal ∘ ofNNReal) (𝓝 a) (𝓝 (↑a).toNNReal)

tactic: exact tendsto_id
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
a : ℝ≥0
⊢ Tendsto (ENNReal.toNNReal ∘ ofNNReal) (𝓝 a) (𝓝 (↑a).toNNReal)
state_after: no goals
Theorem: Int.log_one_right
File: Mathlib/Data/Int/Log.lean

tactic: rw [log_of_one_le_right _ le_rfl, Nat.floor_one, Nat.log_one_right, Int.ofNat_zero]
state_before: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
⊢ log b 1 = 0
state_after: no goals
Theorem: Lists.Equiv.antisymm_iff
File: Mathlib/SetTheory/Lists.lean

tactic: refine ⟨fun h => ?_, fun ⟨h₁, h₂⟩ => Equiv.antisymm h₁ h₂⟩
state_before: α : Type u_1
l₁ l₂ : Lists' α true
⊢ of' l₁ ~ of' l₂ ↔ l₁ ⊆ l₂ ∧ l₂ ⊆ l₁
state_after: α : Type u_1
l₁ l₂ : Lists' α true
h : of' l₁ ~ of' l₂
⊢ l₁ ⊆ l₂ ∧ l₂ ⊆ l₁

tactic: cases' h with _ _ _ h₁ h₂
state_before: α : Type u_1
l₁ l₂ : Lists' α true
h : of' l₁ ~ of' l₂
⊢ l₁ ⊆ l₂ ∧ l₂ ⊆ l₁
state_after: case refl
α : Type u_1
l₁ : Lists' α true
⊢ l₁ ⊆ l₁ ∧ l₁ ⊆ l₁

case antisymm
α : Type u_1
l₁ l₂ : Lists' α true
h₁ : l₁.Subset l₂
h₂ : l₂.Subset l₁
⊢ l₁ ⊆ l₂ ∧ l₂ ⊆ l₁

tactic: simp [Lists'.Subset.refl]
state_before: case refl
α : Type u_1
l₁ : Lists' α true
⊢ l₁ ⊆ l₁ ∧ l₁ ⊆ l₁
state_after: no goals

tactic: exact ⟨h₁, h₂⟩
state_before: case antisymm
α : Type u_1
l₁ l₂ : Lists' α true
h₁ : l₁.Subset l₂
h₂ : l₂.Subset l₁
⊢ l₁ ⊆ l₂ ∧ l₂ ⊆ l₁
state_after: no goals
Theorem: Filter.rtendsto'_def
File: Mathlib/Order/Filter/Partial.lean

tactic: unfold RTendsto' rcomap'
state_before: α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ RTendsto' r l₁ l₂ ↔ ∀ s ∈ l₂, r.preimage s ∈ l₁
state_after: α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ l₁ ≤
      { sets := Rel.image (fun s t => r.preimage s ⊆ t) l₂.sets, univ_sets := ⋯, sets_of_superset := ⋯,
        inter_sets := ⋯ } ↔
    ∀ s ∈ l₂, r.preimage s ∈ l₁

tactic: simp [le_def, Rel.mem_image]
state_before: α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ l₁ ≤
      { sets := Rel.image (fun s t => r.preimage s ⊆ t) l₂.sets, univ_sets := ⋯, sets_of_superset := ⋯,
        inter_sets := ⋯ } ↔
    ∀ s ∈ l₂, r.preimage s ∈ l₁
state_after: α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ (∀ (x : Set α), ∀ x_1 ∈ l₂, r.preimage x_1 ⊆ x → x ∈ l₁) ↔ ∀ s ∈ l₂, r.preimage s ∈ l₁

tactic: constructor
state_before: α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ (∀ (x : Set α), ∀ x_1 ∈ l₂, r.preimage x_1 ⊆ x → x ∈ l₁) ↔ ∀ s ∈ l₂, r.preimage s ∈ l₁
state_after: case mp
α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ (∀ (x : Set α), ∀ x_1 ∈ l₂, r.preimage x_1 ⊆ x → x ∈ l₁) → ∀ s ∈ l₂, r.preimage s ∈ l₁

case mpr
α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ (∀ s ∈ l₂, r.preimage s ∈ l₁) → ∀ (x : Set α), ∀ x_1 ∈ l₂, r.preimage x_1 ⊆ x → x ∈ l₁

tactic: exact fun h s hs => h _ _ hs Set.Subset.rfl
state_before: case mp
α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ (∀ (x : Set α), ∀ x_1 ∈ l₂, r.preimage x_1 ⊆ x → x ∈ l₁) → ∀ s ∈ l₂, r.preimage s ∈ l₁
state_after: no goals

tactic: exact fun h s t ht => mem_of_superset (h t ht)
state_before: case mpr
α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ (∀ s ∈ l₂, r.preimage s ∈ l₁) → ∀ (x : Set α), ∀ x_1 ∈ l₂, r.preimage x_1 ⊆ x → x ∈ l₁
state_after: no goals
Theorem: QPF.supp_map
File: Mathlib/Data/QPF/Univariate/Basic.lean

tactic: rw [← abs_repr x]
state_before: F : Type u → Type u
q : QPF F
h : IsUniform
α β : Type u
g : α → β
x : F α
⊢ supp (g <$> x) = g '' supp x
state_after: F : Type u → Type u
q : QPF F
h : IsUniform
α β : Type u
g : α → β
x : F α
⊢ supp (g <$> abs (repr x)) = g '' supp (abs (repr x))

tactic: cases' repr x with a f
state_before: F : Type u → Type u
q : QPF F
h : IsUniform
α β : Type u
g : α → β
x : F α
⊢ supp (g <$> abs (repr x)) = g '' supp (abs (repr x))
state_after: case mk
F : Type u → Type u
q : QPF F
h : IsUniform
α β : Type u
g : α → β
x : F α
a : (P F).A
f : (P F).B a → α
⊢ supp (g <$> abs ⟨a, f⟩) = g '' supp (abs ⟨a, f⟩)

tactic: rw [← abs_map, PFunctor.map_eq]
state_before: case mk
F : Type u → Type u
q : QPF F
h : IsUniform
α β : Type u
g : α → β
x : F α
a : (P F).A
f : (P F).B a → α
⊢ supp (g <$> abs ⟨a, f⟩) = g '' supp (abs ⟨a, f⟩)
state_after: case mk
F : Type u → Type u
q : QPF F
h : IsUniform
α β : Type u
g : α → β
x : F α
a : (P F).A
f : (P F).B a → α
⊢ supp (abs ⟨a, g ∘ f⟩) = g '' supp (abs ⟨a, f⟩)

tactic: rw [supp_eq_of_isUniform h, supp_eq_of_isUniform h, image_comp]
state_before: case mk
F : Type u → Type u
q : QPF F
h : IsUniform
α β : Type u
g : α → β
x : F α
a : (P F).A
f : (P F).B a → α
⊢ supp (abs ⟨a, g ∘ f⟩) = g '' supp (abs ⟨a, f⟩)
state_after: no goals
Theorem: wittStructureInt_prop
File: Mathlib/RingTheory/WittVector/StructurePolynomial.lean

tactic: apply MvPolynomial.map_injective (Int.castRingHom ℚ) Int.cast_injective
state_before: p : ℕ
R : Type u_1
idx : Type u_2
inst✝ : CommRing R
hp : Fact (Nat.Prime p)
Φ : MvPolynomial idx ℤ
n : ℕ
⊢ (bind₁ (wittStructureInt p Φ)) (W_ ℤ n) = (bind₁ fun i => (rename (Prod.mk i)) (W_ ℤ n)) Φ
state_after: case a
p : ℕ
R : Type u_1
idx : Type u_2
inst✝ : CommRing R
hp : Fact (Nat.Prime p)
Φ : MvPolynomial idx ℤ
n : ℕ
⊢ (map (Int.castRingHom ℚ)) ((bind₁ (wittStructureInt p Φ)) (W_ ℤ n)) =
    (map (Int.castRingHom ℚ)) ((bind₁ fun i => (rename (Prod.mk i)) (W_ ℤ n)) Φ)

tactic: have := wittStructureRat_prop p (map (Int.castRingHom ℚ) Φ) n
state_before: case a
p : ℕ
R : Type u_1
idx : Type u_2
inst✝ : CommRing R
hp : Fact (Nat.Prime p)
Φ : MvPolynomial idx ℤ
n : ℕ
⊢ (map (Int.castRingHom ℚ)) ((bind₁ (wittStructureInt p Φ)) (W_ ℤ n)) =
    (map (Int.castRingHom ℚ)) ((bind₁ fun i => (rename (Prod.mk i)) (W_ ℤ n)) Φ)
state_after: case a
p : ℕ
R : Type u_1
idx : Type u_2
inst✝ : CommRing R
hp : Fact (Nat.Prime p)
Φ : MvPolynomial idx ℤ
n : ℕ
this :
  (bind₁ (wittStructureRat p ((map (Int.castRingHom ℚ)) Φ))) (W_ ℚ n) =
    (bind₁ fun i => (rename (Prod.mk i)) (W_ ℚ n)) ((map (Int.castRingHom ℚ)) Φ)
⊢ (map (Int.castRingHom ℚ)) ((bind₁ (wittStructureInt p Φ)) (W_ ℤ n)) =
    (map (Int.castRingHom ℚ)) ((bind₁ fun i => (rename (Prod.mk i)) (W_ ℤ n)) Φ)

tactic: simpa only [map_bind₁, ← eval₂Hom_map_hom, eval₂Hom_C_left, map_rename, map_wittPolynomial,
  AlgHom.coe_toRingHom, map_wittStructureInt]
state_before: case a
p : ℕ
R : Type u_1
idx : Type u_2
inst✝ : CommRing R
hp : Fact (Nat.Prime p)
Φ : MvPolynomial idx ℤ
n : ℕ
this :
  (bind₁ (wittStructureRat p ((map (Int.castRingHom ℚ)) Φ))) (W_ ℚ n) =
    (bind₁ fun i => (rename (Prod.mk i)) (W_ ℚ n)) ((map (Int.castRingHom ℚ)) Φ)
⊢ (map (Int.castRingHom ℚ)) ((bind₁ (wittStructureInt p Φ)) (W_ ℤ n)) =
    (map (Int.castRingHom ℚ)) ((bind₁ fun i => (rename (Prod.mk i)) (W_ ℤ n)) Φ)
state_after: no goals
Theorem: MultilinearMap.uncurry_curryRight
File: Mathlib/LinearAlgebra/Multilinear/Basic.lean

tactic: ext m
state_before: R : Type uR
S : Type uS
ι : Type uι
n : ℕ
M : Fin n.succ → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝⁶ : CommSemiring R
inst✝⁵ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M₂
inst✝² : (i : Fin n.succ) → Module R (M i)
inst✝¹ : Module R M'
inst✝ : Module R M₂
f : MultilinearMap R M M₂
⊢ f.curryRight.uncurryRight = f
state_after: case H
R : Type uR
S : Type uS
ι : Type uι
n : ℕ
M : Fin n.succ → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝⁶ : CommSemiring R
inst✝⁵ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M₂
inst✝² : (i : Fin n.succ) → Module R (M i)
inst✝¹ : Module R M'
inst✝ : Module R M₂
f : MultilinearMap R M M₂
m : (i : Fin n.succ) → M i
⊢ f.curryRight.uncurryRight m = f m

tactic: simp
state_before: case H
R : Type uR
S : Type uS
ι : Type uι
n : ℕ
M : Fin n.succ → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝⁶ : CommSemiring R
inst✝⁵ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M₂
inst✝² : (i : Fin n.succ) → Module R (M i)
inst✝¹ : Module R M'
inst✝ : Module R M₂
f : MultilinearMap R M M₂
m : (i : Fin n.succ) → M i
⊢ f.curryRight.uncurryRight m = f m
state_after: no goals
Theorem: left_lt_add_div_two
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: simp [lt_div_iff, mul_two]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
⊢ a < (a + b) / 2 ↔ a < b
state_after: no goals
Theorem: essSup_measure_zero
File: Mathlib/MeasureTheory/Function/EssSup.lean

tactic: simp [Set.mem_setOf_eq, EventuallyLE, ae_iff]
state_before: α : Type u_1
β : Type u_2
m✝ : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
m : MeasurableSpace α
f : α → β
⊢ ⊥ ∈ {a | ∀ᶠ (n : β) in map f (ae 0), n ≤ a}
state_after: no goals
Theorem: Matrix.IsSymm.pow
File: Mathlib/LinearAlgebra/Matrix/Symmetric.lean

tactic: rw [IsSymm, transpose_pow, h]
state_before: α : Type u_1
β : Type u_2
n : Type u_3
m : Type u_4
R : Type u_5
inst✝² : CommSemiring α
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n α
h : A.IsSymm
k : ℕ
⊢ (A ^ k).IsSymm
state_after: no goals
Theorem: BoxIntegral.Prepartition.biUnion_top
File: Mathlib/Analysis/BoxIntegral/Partition/Basic.lean

tactic: ext
state_before: ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
⊢ (π.biUnion fun x => ⊤) = π
state_after: case h
ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
J✝ : Box ι
⊢ (J✝ ∈ π.biUnion fun x => ⊤) ↔ J✝ ∈ π

tactic: simp
state_before: case h
ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
J✝ : Box ι
⊢ (J✝ ∈ π.biUnion fun x => ⊤) ↔ J✝ ∈ π
state_after: no goals
Theorem: BoxIntegral.integralSum_sub_partitions
File: Mathlib/Analysis/BoxIntegral/Basic.lean

tactic: rw [← integralSum_inf_partition f vol π₁ h₂, ← integralSum_inf_partition f vol π₂ h₁,
  integralSum, integralSum, Finset.sum_sub_distrib]
state_before: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J : Box ι
π : TaggedPrepartition I
f : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π₁ π₂ : TaggedPrepartition I
h₁ : π₁.IsPartition
h₂ : π₂.IsPartition
⊢ integralSum f vol π₁ - integralSum f vol π₂ =
    ∑ J ∈ (π₁.toPrepartition ⊓ π₂.toPrepartition).boxes,
      ((vol J) (f ((π₁.infPrepartition π₂.toPrepartition).tag J)) -
        (vol J) (f ((π₂.infPrepartition π₁.toPrepartition).tag J)))
state_after: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J : Box ι
π : TaggedPrepartition I
f : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π₁ π₂ : TaggedPrepartition I
h₁ : π₁.IsPartition
h₂ : π₂.IsPartition
⊢ ∑ J ∈ (π₁.infPrepartition π₂.toPrepartition).boxes, (vol J) (f ((π₁.infPrepartition π₂.toPrepartition).tag J)) -
      ∑ J ∈ (π₂.infPrepartition π₁.toPrepartition).boxes, (vol J) (f ((π₂.infPrepartition π₁.toPrepartition).tag J)) =
    ∑ x ∈ (π₁.toPrepartition ⊓ π₂.toPrepartition).boxes, (vol x) (f ((π₁.infPrepartition π₂.toPrepartition).tag x)) -
      ∑ x ∈ (π₁.toPrepartition ⊓ π₂.toPrepartition).boxes, (vol x) (f ((π₂.infPrepartition π₁.toPrepartition).tag x))

tactic: simp only [infPrepartition_toPrepartition, inf_comm]
state_before: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J : Box ι
π : TaggedPrepartition I
f : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π₁ π₂ : TaggedPrepartition I
h₁ : π₁.IsPartition
h₂ : π₂.IsPartition
⊢ ∑ J ∈ (π₁.infPrepartition π₂.toPrepartition).boxes, (vol J) (f ((π₁.infPrepartition π₂.toPrepartition).tag J)) -
      ∑ J ∈ (π₂.infPrepartition π₁.toPrepartition).boxes, (vol J) (f ((π₂.infPrepartition π₁.toPrepartition).tag J)) =
    ∑ x ∈ (π₁.toPrepartition ⊓ π₂.toPrepartition).boxes, (vol x) (f ((π₁.infPrepartition π₂.toPrepartition).tag x)) -
      ∑ x ∈ (π₁.toPrepartition ⊓ π₂.toPrepartition).boxes, (vol x) (f ((π₂.infPrepartition π₁.toPrepartition).tag x))
state_after: no goals
Theorem: Isometry.hausdorffMeasure_image
File: Mathlib/MeasureTheory/Measure/Hausdorff.lean

tactic: simp only [hausdorffMeasure, ← OuterMeasure.coe_mkMetric, ← OuterMeasure.comap_apply]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁵ : EMetricSpace X
inst✝⁴ : EMetricSpace Y
inst✝³ : MeasurableSpace X
inst✝² : BorelSpace X
inst✝¹ : MeasurableSpace Y
inst✝ : BorelSpace Y
f : X → Y
d : ℝ
hf : Isometry f
hd : 0 ≤ d ∨ Surjective f
s : Set X
⊢ μH[d] (f '' s) = μH[d] s
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁵ : EMetricSpace X
inst✝⁴ : EMetricSpace Y
inst✝³ : MeasurableSpace X
inst✝² : BorelSpace X
inst✝¹ : MeasurableSpace Y
inst✝ : BorelSpace Y
f : X → Y
d : ℝ
hf : Isometry f
hd : 0 ≤ d ∨ Surjective f
s : Set X
⊢ ((OuterMeasure.comap f) (OuterMeasure.mkMetric fun r => r ^ d)) s = (OuterMeasure.mkMetric fun r => r ^ d) s

tactic: rw [OuterMeasure.isometry_comap_mkMetric _ hf (hd.imp_left _)]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁵ : EMetricSpace X
inst✝⁴ : EMetricSpace Y
inst✝³ : MeasurableSpace X
inst✝² : BorelSpace X
inst✝¹ : MeasurableSpace Y
inst✝ : BorelSpace Y
f : X → Y
d : ℝ
hf : Isometry f
hd : 0 ≤ d ∨ Surjective f
s : Set X
⊢ ((OuterMeasure.comap f) (OuterMeasure.mkMetric fun r => r ^ d)) s = (OuterMeasure.mkMetric fun r => r ^ d) s
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁵ : EMetricSpace X
inst✝⁴ : EMetricSpace Y
inst✝³ : MeasurableSpace X
inst✝² : BorelSpace X
inst✝¹ : MeasurableSpace Y
inst✝ : BorelSpace Y
f : X → Y
d : ℝ
hf : Isometry f
hd : 0 ≤ d ∨ Surjective f
s : Set X
⊢ 0 ≤ d → Monotone fun r => r ^ d

tactic: exact ENNReal.monotone_rpow_of_nonneg
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁵ : EMetricSpace X
inst✝⁴ : EMetricSpace Y
inst✝³ : MeasurableSpace X
inst✝² : BorelSpace X
inst✝¹ : MeasurableSpace Y
inst✝ : BorelSpace Y
f : X → Y
d : ℝ
hf : Isometry f
hd : 0 ≤ d ∨ Surjective f
s : Set X
⊢ 0 ≤ d → Monotone fun r => r ^ d
state_after: no goals
Theorem: List.sym2_eq_nil_iff
File: Mathlib/Data/List/Sym.lean

tactic: cases xs <;> simp [List.sym2]
state_before: α : Type u_1
xs : List α
⊢ xs.sym2 = [] ↔ xs = []
state_after: no goals
Theorem: Polynomial.trailingDegree_one_le
File: Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean

tactic: rw [← C_1]
state_before: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
⊢ 0 ≤ trailingDegree 1
state_after: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
⊢ 0 ≤ (C 1).trailingDegree

tactic: exact le_trailingDegree_C
state_before: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
⊢ 0 ≤ (C 1).trailingDegree
state_after: no goals
Theorem: cauchy_iInf_uniformSpace
File: Mathlib/Topology/UniformSpace/Cauchy.lean

tactic: unfold Cauchy
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
ι : Sort u_1
inst✝ : Nonempty ι
u : ι → UniformSpace β
l : Filter β
⊢ Cauchy l ↔ ∀ (i : ι), Cauchy l
state_after: α : Type u
β : Type v
uniformSpace : UniformSpace α
ι : Sort u_1
inst✝ : Nonempty ι
u : ι → UniformSpace β
l : Filter β
⊢ l.NeBot ∧ l ×ˢ l ≤ 𝓤 β ↔ ∀ (i : ι), l.NeBot ∧ l ×ˢ l ≤ 𝓤 β

tactic: rw [iInf_uniformity, le_iInf_iff, forall_and, forall_const]
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
ι : Sort u_1
inst✝ : Nonempty ι
u : ι → UniformSpace β
l : Filter β
⊢ l.NeBot ∧ l ×ˢ l ≤ 𝓤 β ↔ ∀ (i : ι), l.NeBot ∧ l ×ˢ l ≤ 𝓤 β
state_after: no goals
Theorem: smul_inv
File: Mathlib/GroupTheory/GroupAction/Group.lean

tactic: rw [inv_eq_iff_mul_eq_one, smul_mul_smul, mul_right_inv, mul_right_inv, one_smul]
state_before: α : Type u
β : Type v
γ : Type w
inst✝⁴ : Group α
inst✝³ : MulAction α β
inst✝² : Group β
inst✝¹ : SMulCommClass α β β
inst✝ : IsScalarTower α β β
c : α
x : β
⊢ (c • x)⁻¹ = c⁻¹ • x⁻¹
state_after: no goals
Theorem: Nat.add_mod_eq_add_mod_right
File: Mathlib/Data/Nat/Defs.lean

tactic: rw [← mod_add_mod, ← mod_add_mod b, H]
state_before: a b c✝ d m n k : ℕ
p q : ℕ → Prop
c : ℕ
H : a % d = b % d
⊢ (a + c) % d = (b + c) % d
state_after: no goals
Theorem: Equiv.Perm.mem_finPairsLT
File: Mathlib/GroupTheory/Perm/Sign.lean

tactic: simp only [finPairsLT, Fin.lt_iff_val_lt_val, true_and_iff, mem_attachFin, mem_range, mem_univ,
  mem_sigma]
state_before: α : Type u
inst✝ : DecidableEq α
β : Type v
n : ℕ
a : (_ : Fin n) × Fin n
⊢ a ∈ finPairsLT n ↔ a.snd < a.fst
state_after: no goals
Theorem: Sum.elim_map
File: .lake/packages/batteries/Batteries/Data/Sum/Lemmas.lean

tactic: cases x <;> rfl
state_before: α : Type u_1
β : Type u_2
ε : Sort u_3
γ : Type u_4
δ : Type u_5
f₁ : α → β
f₂ : β → ε
g₁ : γ → δ
g₂ : δ → ε
x : α ⊕ γ
⊢ Sum.elim f₂ g₂ (Sum.map f₁ g₁ x) = Sum.elim (f₂ ∘ f₁) (g₂ ∘ g₁) x
state_after: no goals
Theorem: Metric.thickening_union
File: Mathlib/Topology/MetricSpace/Thickening.lean

tactic: simp_rw [thickening, infEdist_union, inf_eq_min, min_lt_iff, setOf_or]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s✝ t✝ : Set α
x : α
δ : ℝ
s t : Set α
⊢ thickening δ (s ∪ t) = thickening δ s ∪ thickening δ t
state_after: no goals
Theorem: Polynomial.eval₂_C_X_eq_coe
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: nth_rw 2 [← eval₂_C_X (p := φ)]
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
⊢ eval₂ (PowerSeries.C R) PowerSeries.X φ = ↑φ
state_after: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
⊢ eval₂ (PowerSeries.C R) PowerSeries.X φ = ↑(eval₂ C X φ)

tactic: rw [← coeToPowerSeries.ringHom_apply, eval₂_eq_sum_range, eval₂_eq_sum_range, map_sum]
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
⊢ eval₂ (PowerSeries.C R) PowerSeries.X φ = ↑(eval₂ C X φ)
state_after: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
⊢ ∑ i ∈ Finset.range (φ.natDegree + 1), (PowerSeries.C R) (φ.coeff i) * PowerSeries.X ^ i =
    ∑ x ∈ Finset.range (φ.natDegree + 1), coeToPowerSeries.ringHom (C (φ.coeff x) * X ^ x)

tactic: apply Finset.sum_congr rfl
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
⊢ ∑ i ∈ Finset.range (φ.natDegree + 1), (PowerSeries.C R) (φ.coeff i) * PowerSeries.X ^ i =
    ∑ x ∈ Finset.range (φ.natDegree + 1), coeToPowerSeries.ringHom (C (φ.coeff x) * X ^ x)
state_after: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
⊢ ∀ x ∈ Finset.range (φ.natDegree + 1),
    (PowerSeries.C R) (φ.coeff x) * PowerSeries.X ^ x = coeToPowerSeries.ringHom (C (φ.coeff x) * X ^ x)

tactic: intros
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
⊢ ∀ x ∈ Finset.range (φ.natDegree + 1),
    (PowerSeries.C R) (φ.coeff x) * PowerSeries.X ^ x = coeToPowerSeries.ringHom (C (φ.coeff x) * X ^ x)
state_after: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
x✝ : ℕ
a✝ : x✝ ∈ Finset.range (φ.natDegree + 1)
⊢ (PowerSeries.C R) (φ.coeff x✝) * PowerSeries.X ^ x✝ = coeToPowerSeries.ringHom (C (φ.coeff x✝) * X ^ x✝)

tactic: rw [map_mul, map_pow, coeToPowerSeries.ringHom_apply,
  coeToPowerSeries.ringHom_apply, coe_C, coe_X]
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
x✝ : ℕ
a✝ : x✝ ∈ Finset.range (φ.natDegree + 1)
⊢ (PowerSeries.C R) (φ.coeff x✝) * PowerSeries.X ^ x✝ = coeToPowerSeries.ringHom (C (φ.coeff x✝) * X ^ x✝)
state_after: no goals
Theorem: MeasureTheory.Measure.integral_comp_mul_right
File: Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean

tactic: simpa only [mul_comm] using integral_comp_mul_left g a
state_before: E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : MeasurableSpace E
inst✝⁴ : BorelSpace E
inst✝³ : FiniteDimensional ℝ E
μ : Measure E
inst✝² : μ.IsAddHaarMeasure
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
g : ℝ → F
a : ℝ
⊢ ∫ (x : ℝ), g (x * a) = |a⁻¹| • ∫ (y : ℝ), g y
state_after: no goals
Theorem: WeierstrassCurve.coeff_preΨ'
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean

tactic: convert (W.natDegree_coeff_preΨ' n).right using 1
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n : ℕ
⊢ (W.preΨ' n).coeff ((n ^ 2 - if Even n then 4 else 1) / 2) = ↑(if Even n then n / 2 else n)
state_after: case h.e'_3
R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n : ℕ
⊢ ↑(if Even n then n / 2 else n) = ↑(WeierstrassCurve.expCoeff n)

tactic: rcases n.even_or_odd' with ⟨n, rfl | rfl⟩ <;> simp [expCoeff, n.not_even_two_mul_add_one]
state_before: case h.e'_3
R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n : ℕ
⊢ ↑(if Even n then n / 2 else n) = ↑(WeierstrassCurve.expCoeff n)
state_after: no goals
Theorem: CategoryTheory.Limits.PreservesPullback.iso_inv_snd
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean

tactic: simp [PreservesPullback.iso, Iso.inv_comp_eq]
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
G : C ⥤ D
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
h : W ⟶ X
k : W ⟶ Y
comm : h ≫ f = k ≫ g
inst✝² : PreservesLimit (cospan f g) G
inst✝¹ : HasPullback f g
inst✝ : HasPullback (G.map f) (G.map g)
⊢ (iso G f g).inv ≫ G.map pullback.snd = pullback.snd
state_after: no goals