1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: PiTensorProduct.map_comp
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

tactic: ext
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝¹¹ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝¹⁰ : (i : ι) → AddCommMonoid (s i)
inst✝⁹ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
E : Type u_9
inst✝⁶ : AddCommMonoid E
inst✝⁵ : Module R E
F : Type u_10
inst✝⁴ : AddCommMonoid F
t : ι → Type u_11
t' : ι → Type u_12
inst✝³ : (i : ι) → AddCommMonoid (t i)
inst✝² : (i : ι) → Module R (t i)
inst✝¹ : (i : ι) → AddCommMonoid (t' i)
inst✝ : (i : ι) → Module R (t' i)
g : (i : ι) → t i →ₗ[R] t' i
f : (i : ι) → s i →ₗ[R] t i
⊢ (map fun i => g i ∘ₗ f i) = map g ∘ₗ map f
state_after: case H.H
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝¹¹ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝¹⁰ : (i : ι) → AddCommMonoid (s i)
inst✝⁹ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
E : Type u_9
inst✝⁶ : AddCommMonoid E
inst✝⁵ : Module R E
F : Type u_10
inst✝⁴ : AddCommMonoid F
t : ι → Type u_11
t' : ι → Type u_12
inst✝³ : (i : ι) → AddCommMonoid (t i)
inst✝² : (i : ι) → Module R (t i)
inst✝¹ : (i : ι) → AddCommMonoid (t' i)
inst✝ : (i : ι) → Module R (t' i)
g : (i : ι) → t i →ₗ[R] t' i
f : (i : ι) → s i →ₗ[R] t i
x✝ : (i : ι) → s i
⊢ ((map fun i => g i ∘ₗ f i).compMultilinearMap (tprod R)) x✝ = ((map g ∘ₗ map f).compMultilinearMap (tprod R)) x✝

tactic: simp only [LinearMap.compMultilinearMap_apply, map_tprod, LinearMap.coe_comp, Function.comp_apply]
state_before: case H.H
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝¹¹ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝¹⁰ : (i : ι) → AddCommMonoid (s i)
inst✝⁹ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
E : Type u_9
inst✝⁶ : AddCommMonoid E
inst✝⁵ : Module R E
F : Type u_10
inst✝⁴ : AddCommMonoid F
t : ι → Type u_11
t' : ι → Type u_12
inst✝³ : (i : ι) → AddCommMonoid (t i)
inst✝² : (i : ι) → Module R (t i)
inst✝¹ : (i : ι) → AddCommMonoid (t' i)
inst✝ : (i : ι) → Module R (t' i)
g : (i : ι) → t i →ₗ[R] t' i
f : (i : ι) → s i →ₗ[R] t i
x✝ : (i : ι) → s i
⊢ ((map fun i => g i ∘ₗ f i).compMultilinearMap (tprod R)) x✝ = ((map g ∘ₗ map f).compMultilinearMap (tprod R)) x✝
state_after: no goals
Theorem: FirstOrder.Language.Formula.realize_rel
File: Mathlib/ModelTheory/Semantics.lean

tactic: simp
state_before: L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
n : ℕ
φ ψ : L.Formula α
v : α → M
k : ℕ
R : L.Relations k
ts : Fin k → L.Term α
⊢ (RelMap R fun i => Term.realize (Sum.elim v default) (Term.relabel Sum.inl (ts i))) ↔
    RelMap R fun i => Term.realize v (ts i)
state_after: no goals
Theorem: WithBot.bot_lt_sum_iff
File: Mathlib/Algebra/BigOperators/WithTop.lean

tactic: simp only [WithBot.bot_lt_iff_ne_bot, ne_eq, sum_eq_bot_iff, not_exists, not_and]
state_before: ι : Type u_1
α : Type u_2
inst✝¹ : AddCommMonoid α
inst✝ : LT α
s : Finset ι
f : ι → WithBot α
⊢ ⊥ < ∑ i ∈ s, f i ↔ ∀ i ∈ s, ⊥ < f i
state_after: no goals
Theorem: prevD_comp_right
File: Mathlib/Algebra/Homology/Homotopy.lean

tactic: dsimp [prevD]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f✝ g✝ : C ⟶ D
h k : D ⟶ E
i : ι
f : (i j : ι) → C.X i ⟶ D.X j
g : D ⟶ E
j : ι
⊢ ((prevD j) fun i j => f i j ≫ g.f j) = (prevD j) f ≫ g.f j
state_after: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f✝ g✝ : C ⟶ D
h k : D ⟶ E
i : ι
f : (i j : ι) → C.X i ⟶ D.X j
g : D ⟶ E
j : ι
⊢ (f j (c.prev j) ≫ g.f (c.prev j)) ≫ E.d (c.prev j) j = (f j (c.prev j) ≫ D.d (c.prev j) j) ≫ g.f j

tactic: simp only [assoc, g.comm]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f✝ g✝ : C ⟶ D
h k : D ⟶ E
i : ι
f : (i j : ι) → C.X i ⟶ D.X j
g : D ⟶ E
j : ι
⊢ (f j (c.prev j) ≫ g.f (c.prev j)) ≫ E.d (c.prev j) j = (f j (c.prev j) ≫ D.d (c.prev j) j) ≫ g.f j
state_after: no goals
Theorem: Ordinal.CNF_lt_snd
File: Mathlib/SetTheory/Ordinal/CantorNormalForm.lean

tactic: refine CNFRec b (by simp) (fun o ho IH ↦ ?_) o
state_before: b o : Ordinal.{u}
x : Ordinal.{u} × Ordinal.{u}
⊢ x ∈ CNF b o → 0 < x.2
state_after: b o✝ : Ordinal.{u}
x : Ordinal.{u} × Ordinal.{u}
o : Ordinal.{u}
ho : o ≠ 0
IH : x ∈ CNF b (o % b ^ log b o) → 0 < x.2
⊢ x ∈ CNF b o → 0 < x.2

tactic: rw [CNF_ne_zero ho]
state_before: b o✝ : Ordinal.{u}
x : Ordinal.{u} × Ordinal.{u}
o : Ordinal.{u}
ho : o ≠ 0
IH : x ∈ CNF b (o % b ^ log b o) → 0 < x.2
⊢ x ∈ CNF b o → 0 < x.2
state_after: b o✝ : Ordinal.{u}
x : Ordinal.{u} × Ordinal.{u}
o : Ordinal.{u}
ho : o ≠ 0
IH : x ∈ CNF b (o % b ^ log b o) → 0 < x.2
⊢ x ∈ (log b o, o / b ^ log b o) :: CNF b (o % b ^ log b o) → 0 < x.2

tactic: rintro (h | ⟨_, h⟩)
state_before: b o✝ : Ordinal.{u}
x : Ordinal.{u} × Ordinal.{u}
o : Ordinal.{u}
ho : o ≠ 0
IH : x ∈ CNF b (o % b ^ log b o) → 0 < x.2
⊢ x ∈ (log b o, o / b ^ log b o) :: CNF b (o % b ^ log b o) → 0 < x.2
state_after: case head
b o✝ o : Ordinal.{u}
ho : o ≠ 0
IH : (log b o, o / b ^ log b o) ∈ CNF b (o % b ^ log b o) → 0 < (log b o, o / b ^ log b o).2
⊢ 0 < (log b o, o / b ^ log b o).2

case tail
b o✝ : Ordinal.{u}
x : Ordinal.{u} × Ordinal.{u}
o : Ordinal.{u}
ho : o ≠ 0
IH : x ∈ CNF b (o % b ^ log b o) → 0 < x.2
h : Mem x (CNF b (o % b ^ log b o))
⊢ 0 < x.2

tactic: simp
state_before: b o : Ordinal.{u}
x : Ordinal.{u} × Ordinal.{u}
⊢ x ∈ CNF b 0 → 0 < x.2
state_after: no goals

tactic: exact div_opow_log_pos b ho
state_before: case head
b o✝ o : Ordinal.{u}
ho : o ≠ 0
IH : (log b o, o / b ^ log b o) ∈ CNF b (o % b ^ log b o) → 0 < (log b o, o / b ^ log b o).2
⊢ 0 < (log b o, o / b ^ log b o).2
state_after: no goals

tactic: exact IH h
state_before: case tail
b o✝ : Ordinal.{u}
x : Ordinal.{u} × Ordinal.{u}
o : Ordinal.{u}
ho : o ≠ 0
IH : x ∈ CNF b (o % b ^ log b o) → 0 < x.2
h : Mem x (CNF b (o % b ^ log b o))
⊢ 0 < x.2
state_after: no goals
Theorem: ContinuousMultilinearMap.norm_compContinuousLinearMapL_le
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

tactic: positivity
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : (i : ι) → E i →L[𝕜] E₁ i
⊢ 0 ≤ ∏ i : ι, ‖f i‖
state_after: no goals
Theorem: ciSup_partialSups_eq
File: Mathlib/Order/PartialSups.lean

tactic: refine (ciSup_le fun n => ?_).antisymm (ciSup_mono ?_ <| le_partialSups f)
state_before: α : Type u_1
inst✝ : ConditionallyCompleteLattice α
f : ℕ → α
h : BddAbove (Set.range f)
⊢ ⨆ n, (partialSups f) n = ⨆ n, f n
state_after: case refine_1
α : Type u_1
inst✝ : ConditionallyCompleteLattice α
f : ℕ → α
h : BddAbove (Set.range f)
n : ℕ
⊢ (partialSups f) n ≤ ⨆ n, f n

case refine_2
α : Type u_1
inst✝ : ConditionallyCompleteLattice α
f : ℕ → α
h : BddAbove (Set.range f)
⊢ BddAbove (Set.range fun n => (partialSups f) n)

tactic: rw [partialSups_eq_ciSup_Iic]
state_before: case refine_1
α : Type u_1
inst✝ : ConditionallyCompleteLattice α
f : ℕ → α
h : BddAbove (Set.range f)
n : ℕ
⊢ (partialSups f) n ≤ ⨆ n, f n
state_after: case refine_1
α : Type u_1
inst✝ : ConditionallyCompleteLattice α
f : ℕ → α
h : BddAbove (Set.range f)
n : ℕ
⊢ ⨆ i, f ↑i ≤ ⨆ n, f n

tactic: exact ciSup_le fun i => le_ciSup h _
state_before: case refine_1
α : Type u_1
inst✝ : ConditionallyCompleteLattice α
f : ℕ → α
h : BddAbove (Set.range f)
n : ℕ
⊢ ⨆ i, f ↑i ≤ ⨆ n, f n
state_after: no goals

tactic: rwa [bddAbove_range_partialSups]
state_before: case refine_2
α : Type u_1
inst✝ : ConditionallyCompleteLattice α
f : ℕ → α
h : BddAbove (Set.range f)
⊢ BddAbove (Set.range fun n => (partialSups f) n)
state_after: no goals
Theorem: CategoryTheory.RelCat.Hom.rel_id_apply₂
File: Mathlib/CategoryTheory/Category/RelCat.lean

tactic: rw [RelCat.Hom.rel_id]
state_before: X : RelCat
x y : X
⊢ 𝟙 X x y ↔ x = y
state_after: no goals
Theorem: Profinite.NobelingProof.Products.max_eq_o_cons_tail
File: Mathlib/Topology/Category/Profinite/Nobeling.lean

tactic: rw [← List.cons_head!_tail hl, hlh]
state_before: I : Type u
inst✝² : LinearOrder I
inst✝¹ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
inst✝ : Inhabited I
l : Products I
hl : ↑l ≠ []
hlh : (↑l).head! = term I ho
⊢ ↑l = term I ho :: ↑l.Tail
state_after: I : Type u
inst✝² : LinearOrder I
inst✝¹ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
inst✝ : Inhabited I
l : Products I
hl : ↑l ≠ []
hlh : (↑l).head! = term I ho
⊢ term I ho :: (↑l).tail = term I ho :: ↑l.Tail

tactic: rfl
state_before: I : Type u
inst✝² : LinearOrder I
inst✝¹ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
inst✝ : Inhabited I
l : Products I
hl : ↑l ≠ []
hlh : (↑l).head! = term I ho
⊢ term I ho :: (↑l).tail = term I ho :: ↑l.Tail
state_after: no goals
Theorem: Profinite.NobelingProof.GoodProducts.linearIndependent_iff_sum
File: Mathlib/Topology/Category/Profinite/Nobeling.lean

tactic: rw [← linearIndependent_equiv (sum_equiv C hsC ho), SumEval,
  ← sum_equiv_comp_eval_eq_elim C hsC ho]
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
⊢ LinearIndependent ℤ (eval C) ↔ LinearIndependent ℤ (SumEval C ho)
state_after: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
⊢ LinearIndependent ℤ (eval C ∘ ⇑(sum_equiv C hsC ho)) ↔ LinearIndependent ℤ (eval C ∘ (sum_equiv C hsC ho).toFun)

tactic: exact Iff.rfl
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
⊢ LinearIndependent ℤ (eval C ∘ ⇑(sum_equiv C hsC ho)) ↔ LinearIndependent ℤ (eval C ∘ (sum_equiv C hsC ho).toFun)
state_after: no goals
Theorem: UniformSpace.inseparableSetoid_ring
File: Mathlib/Topology/Algebra/UniformRing.lean

tactic: rfl
state_before: α✝ : Type u_1
α : Type u_2
inst✝² : CommRing α
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalRing α
x y : α
⊢ x - y ∈ closure 0 ↔ x - y ∈ ⊥.closure
state_after: no goals
Theorem: Finset.card_mul_mul_le_card_div_mul_card_div
File: Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean

tactic: rw [div_eq_mul_inv, ← card_inv B, ← card_inv (B / C), inv_div', div_inv_eq_mul]
state_before: α : Type u_1
inst✝¹ : CommGroup α
inst✝ : DecidableEq α
A✝ B✝ C✝ A B C : Finset α
⊢ (A * C).card * B.card ≤ (A / B).card * (B / C).card
state_after: α : Type u_1
inst✝¹ : CommGroup α
inst✝ : DecidableEq α
A✝ B✝ C✝ A B C : Finset α
⊢ (A * C).card * B⁻¹.card ≤ (A * B⁻¹).card * (B⁻¹ * C).card

tactic: exact card_mul_mul_card_le_card_mul_mul_card_mul _ _ _
state_before: α : Type u_1
inst✝¹ : CommGroup α
inst✝ : DecidableEq α
A✝ B✝ C✝ A B C : Finset α
⊢ (A * C).card * B⁻¹.card ≤ (A * B⁻¹).card * (B⁻¹ * C).card
state_after: no goals
Theorem: ConcaveOn.slope_anti
File: Mathlib/Analysis/Convex/Deriv.lean

tactic: rw [← neg_neg f, slope_neg_fun]
state_before: 𝕜 : Type u_1
inst✝ : LinearOrderedField 𝕜
s : Set 𝕜
f : 𝕜 → 𝕜
x : 𝕜
hfc : ConcaveOn 𝕜 s f
hx : x ∈ s
⊢ AntitoneOn (slope f x) (s \ {x})
state_after: 𝕜 : Type u_1
inst✝ : LinearOrderedField 𝕜
s : Set 𝕜
f : 𝕜 → 𝕜
x : 𝕜
hfc : ConcaveOn 𝕜 s f
hx : x ∈ s
⊢ AntitoneOn ((-slope (-f)) x) (s \ {x})

tactic: exact (ConvexOn.slope_mono hfc.neg hx).neg
state_before: 𝕜 : Type u_1
inst✝ : LinearOrderedField 𝕜
s : Set 𝕜
f : 𝕜 → 𝕜
x : 𝕜
hfc : ConcaveOn 𝕜 s f
hx : x ∈ s
⊢ AntitoneOn ((-slope (-f)) x) (s \ {x})
state_after: no goals
Theorem: iteratedDeriv_eq_equiv_comp
File: Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean

tactic: ext x
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
⊢ iteratedDeriv n f = ⇑(ContinuousMultilinearMap.piFieldEquiv 𝕜 (Fin n) F).symm ∘ iteratedFDeriv 𝕜 n f
state_after: case h
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x✝ x : 𝕜
⊢ iteratedDeriv n f x = (⇑(ContinuousMultilinearMap.piFieldEquiv 𝕜 (Fin n) F).symm ∘ iteratedFDeriv 𝕜 n f) x

tactic: rfl
state_before: case h
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x✝ x : 𝕜
⊢ iteratedDeriv n f x = (⇑(ContinuousMultilinearMap.piFieldEquiv 𝕜 (Fin n) F).symm ∘ iteratedFDeriv 𝕜 n f) x
state_after: no goals
Theorem: Submodule.mul_mem_smul_iff
File: Mathlib/Algebra/Algebra/Operations.lean

tactic: simp [mul_cancel_left_mem_nonZeroDivisors hx]
state_before: ι : Sort uι
R : Type u
inst✝⁴ : CommSemiring R
A : Type v
inst✝³ : Semiring A
inst✝² : Algebra R A
S✝ T : Set A
M N P Q : Submodule R A
m n : A
S : Type u_1
inst✝¹ : CommRing S
inst✝ : Algebra R S
x : S
p : Submodule R S
y : S
hx : x ∈ nonZeroDivisors S
⊢ (∃ a ∈ ↑p, (DistribMulAction.toLinearMap R S x) a = x * y) ↔ y ∈ p
state_after: no goals
Theorem: Submonoid.LocalizationMap.mk'_one
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: rw [mk', MonoidHom.map_one]
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
x : M
⊢ f.mk' x 1 = f.toMap x
state_after: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
x : M
⊢ f.toMap x * ↑1⁻¹ = f.toMap x

tactic: exact mul_one _
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
x : M
⊢ f.toMap x * ↑1⁻¹ = f.toMap x
state_after: no goals
Theorem: Real.fourierIntegral_real_eq_integral_exp_smul
File: Mathlib/Analysis/Fourier/FourierTransform.lean

tactic: simp_rw [fourierIntegral_real_eq, Submonoid.smul_def, Real.fourierChar_apply, mul_neg, neg_mul,
  mul_assoc]
state_before: E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℂ E
V : Type u_2
inst✝⁹ : NormedAddCommGroup V
inst✝⁸ : InnerProductSpace ℝ V
inst✝⁷ : MeasurableSpace V
inst✝⁶ : BorelSpace V
inst✝⁵ : FiniteDimensional ℝ V
W : Type u_3
inst✝⁴ : NormedAddCommGroup W
inst✝³ : InnerProductSpace ℝ W
inst✝² : MeasurableSpace W
inst✝¹ : BorelSpace W
inst✝ : FiniteDimensional ℝ W
f : ℝ → E
w : ℝ
⊢ 𝓕 f w = ∫ (v : ℝ), Complex.exp (↑(-2 * π * v * w) * Complex.I) • f v
state_after: no goals
Theorem: Rat.toNNRat_div'
File: Mathlib/Data/NNRat/Lemmas.lean

tactic: rw [div_eq_inv_mul, div_eq_inv_mul, toNNRat_mul (inv_nonneg.2 hq), toNNRat_inv]
state_before: p q : ℚ
hq : 0 ≤ q
⊢ (p / q).toNNRat = p.toNNRat / q.toNNRat
state_after: no goals
Theorem: Submodule.comap_smul'
File: Mathlib/Algebra/Module/Submodule/Map.lean

tactic: classical by_cases h : a = 0 <;> simp [h, comap_smul]
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
K : Type u_9
V : Type u_10
V₂ : Type u_11
inst✝⁴ : Semifield K
inst✝³ : AddCommMonoid V
inst✝² : Module K V
inst✝¹ : AddCommMonoid V₂
inst✝ : Module K V₂
f : V →ₗ[K] V₂
p : Submodule K V₂
a : K
⊢ comap (a • f) p = ⨅ (_ : a ≠ 0), comap f p
state_after: no goals

tactic: by_cases h : a = 0 <;> simp [h, comap_smul]
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
K : Type u_9
V : Type u_10
V₂ : Type u_11
inst✝⁴ : Semifield K
inst✝³ : AddCommMonoid V
inst✝² : Module K V
inst✝¹ : AddCommMonoid V₂
inst✝ : Module K V₂
f : V →ₗ[K] V₂
p : Submodule K V₂
a : K
⊢ comap (a • f) p = ⨅ (_ : a ≠ 0), comap f p
state_after: no goals
Theorem: Polynomial.bernoulli_eq_sub_sum
File: Mathlib/NumberTheory/BernoulliPolynomials.lean

tactic: rw [Nat.cast_succ, ← sum_bernoulli n, sum_range_succ, add_sub_cancel_left, choose_succ_self_right,
  Nat.cast_succ]
state_before: n : ℕ
⊢ ↑n.succ • bernoulli n = (monomial n) ↑n.succ - ∑ k ∈ range n, ↑((n + 1).choose k) • bernoulli k
state_after: no goals
Theorem: Nat.sqrt_eq_zero
File: Mathlib/Data/Nat/Defs.lean

tactic: rw [h]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
h : n.sqrt = 0
⊢ n.sqrt < 1
state_after: a b c d m n k : ℕ
p q : ℕ → Prop
h : n.sqrt = 0
⊢ 0 < 1

tactic: decide
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
h : n.sqrt = 0
⊢ 0 < 1
state_after: no goals

tactic: rintro rfl
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
⊢ n = 0 → n.sqrt = 0
state_after: a b c d m k : ℕ
p q : ℕ → Prop
⊢ sqrt 0 = 0

tactic: simp
state_before: a b c d m k : ℕ
p q : ℕ → Prop
⊢ sqrt 0 = 0
state_after: no goals
Theorem: Submodule.rank_eq_zero
File: Mathlib/LinearAlgebra/Dimension/Finite.lean

tactic: rw [h, rank_bot]
state_before: R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝¹⁰ : Ring R
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup M'
inst✝⁷ : AddCommGroup M₁
inst✝⁶ : Module R M
inst✝⁵ : Module R M'
inst✝⁴ : Module R M₁
inst✝³ : Nontrivial R
inst✝² : NoZeroSMulDivisors R M
inst✝¹ : Nontrivial R
inst✝ : NoZeroSMulDivisors R M
S : Submodule R M
h : S = ⊥
⊢ Module.rank R ↥S = 0
state_after: no goals
Theorem: Set.smul_set_compl
File: Mathlib/Data/Set/Pointwise/SMul.lean

tactic: simp_rw [Set.compl_eq_univ_diff, smul_set_sdiff, smul_set_univ]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝¹ : Group α
inst✝ : MulAction α β
s t A B : Set β
a : α
x : β
⊢ a • sᶜ = (a • s)ᶜ
state_after: no goals
Theorem: LinearMap.rTensor_pow
File: Mathlib/LinearAlgebra/TensorProduct/Basic.lean

tactic: have h := TensorProduct.map_pow f (id : N →ₗ[R] N) n
state_before: R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
g : P →ₗ[R] Q
f✝ : N →ₗ[R] P
f : M →ₗ[R] M
n : ℕ
⊢ rTensor N f ^ n = rTensor N (f ^ n)
state_after: R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
g : P →ₗ[R] Q
f✝ : N →ₗ[R] P
f : M →ₗ[R] M
n : ℕ
h : map f id ^ n = map (f ^ n) (id ^ n)
⊢ rTensor N f ^ n = rTensor N (f ^ n)

tactic: rwa [id_pow] at h
state_before: R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
g : P →ₗ[R] Q
f✝ : N →ₗ[R] P
f : M →ₗ[R] M
n : ℕ
h : map f id ^ n = map (f ^ n) (id ^ n)
⊢ rTensor N f ^ n = rTensor N (f ^ n)
state_after: no goals
Theorem: YoungDiagram.row_eq_prod
File: Mathlib/Combinatorics/Young/YoungDiagram.lean

tactic: ext ⟨a, b⟩
state_before: μ : YoungDiagram
i : ℕ
⊢ μ.row i = {i} ×ˢ Finset.range (μ.rowLen i)
state_after: case a.mk
μ : YoungDiagram
i a b : ℕ
⊢ (a, b) ∈ μ.row i ↔ (a, b) ∈ {i} ×ˢ Finset.range (μ.rowLen i)

tactic: simp only [Finset.mem_product, Finset.mem_singleton, Finset.mem_range, mem_row_iff,
  mem_iff_lt_rowLen, and_comm, and_congr_right_iff]
state_before: case a.mk
μ : YoungDiagram
i a b : ℕ
⊢ (a, b) ∈ μ.row i ↔ (a, b) ∈ {i} ×ˢ Finset.range (μ.rowLen i)
state_after: case a.mk
μ : YoungDiagram
i a b : ℕ
⊢ a = i → (b < μ.rowLen a ↔ b < μ.rowLen i)

tactic: rintro rfl
state_before: case a.mk
μ : YoungDiagram
i a b : ℕ
⊢ a = i → (b < μ.rowLen a ↔ b < μ.rowLen i)
state_after: case a.mk
μ : YoungDiagram
a b : ℕ
⊢ b < μ.rowLen a ↔ b < μ.rowLen a

tactic: rfl
state_before: case a.mk
μ : YoungDiagram
a b : ℕ
⊢ b < μ.rowLen a ↔ b < μ.rowLen a
state_after: no goals
Theorem: OreLocalization.universalHom_commutes
File: Mathlib/RingTheory/OreLocalization/Ring.lean

tactic: simp [numeratorHom_apply, universalHom_apply]
state_before: R : Type u_1
inst✝⁴ : Semiring R
S : Submonoid R
inst✝³ : OreSet S
X : Type u_2
inst✝² : AddCommMonoid X
inst✝¹ : Module R X
T : Type u_3
inst✝ : Semiring T
f : R →+* T
fS : ↥S →* Tˣ
hf : ∀ (s : ↥S), f ↑s = ↑(fS s)
r : R
⊢ (universalHom f fS hf) (numeratorHom r) = f r
state_after: no goals
Theorem: MeasureTheory.MeasurePreserving.restrict_preimage
File: Mathlib/Dynamics/Ergodic/MeasurePreserving.lean

tactic: rw [← hf.map_eq, restrict_map hf.measurable hs]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
μa : Measure α
μb : Measure β
μc : Measure γ
μd : Measure δ
f : α → β
hf : MeasurePreserving f μa μb
s : Set β
hs : MeasurableSet s
⊢ map f (μa.restrict (f ⁻¹' s)) = μb.restrict s
state_after: no goals
Theorem: CategoryTheory.ShortComplex.LeftHomologyMapData.homologyMap_comm
File: Mathlib/Algebra/Homology/ShortComplex/Homology.lean

tactic: simp only [γ.homologyMap_eq, assoc, Iso.inv_hom_id, comp_id]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁✝ : S₁.HomologyData
h₂✝ : S₂.HomologyData
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
γ : LeftHomologyMapData φ h₁ h₂
inst✝¹ : S₁.HasHomology
inst✝ : S₂.HasHomology
⊢ homologyMap φ ≫ h₂.homologyIso.hom = h₁.homologyIso.hom ≫ γ.φH
state_after: no goals
Theorem: GeneralizedContinuedFraction.exists_conts_b_of_denom
File: Mathlib/Algebra/ContinuedFractions/Translations.lean

tactic: simpa
state_before: K : Type u_1
g : GeneralizedContinuedFraction K
n : ℕ
inst✝ : DivisionRing K
B : K
nth_denom_eq : g.denominators n = B
⊢ ∃ conts, g.continuants n = conts ∧ conts.b = B
state_after: no goals