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

tactic: rw [Finsupp.mem_support_iff, Finsupp.onFinset_apply]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
s : Finset α
f : α → M
hf : ∀ (a : α), f a ≠ 0 → a ∈ s
a : α
⊢ a ∈ (onFinset s f hf).support ↔ f a ≠ 0
state_after: no goals
Theorem: Ordinal.div_le_of_le_mul
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: simp only [b0, div_zero, Ordinal.zero_le]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b c : Ordinal.{u_4}
h : a ≤ b * c
b0 : b = 0
⊢ a / b ≤ c
state_after: no goals
Theorem: ite_eq_mem_stdSimplex
File: Mathlib/Analysis/Convex/Basic.lean

tactic: simpa only [@eq_comm _ i, ← Pi.single_apply] using single_mem_stdSimplex 𝕜 i
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝² : OrderedSemiring 𝕜
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
i : ι
⊢ (fun x => if i = x then 1 else 0) ∈ stdSimplex 𝕜 ι
state_after: no goals
Theorem: LieSubalgebra.subset_lieSpan
File: Mathlib/Algebra/Lie/Subalgebra.lean

tactic: intro m hm
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
s : Set L
⊢ s ⊆ ↑(lieSpan R L s)
state_after: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
s : Set L
m : L
hm : m ∈ s
⊢ m ∈ ↑(lieSpan R L s)

tactic: erw [mem_lieSpan]
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
s : Set L
m : L
hm : m ∈ s
⊢ m ∈ ↑(lieSpan R L s)
state_after: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
s : Set L
m : L
hm : m ∈ s
⊢ ∀ (K : LieSubalgebra R L), s ⊆ ↑K → m ∈ K

tactic: intro K hK
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
s : Set L
m : L
hm : m ∈ s
⊢ ∀ (K : LieSubalgebra R L), s ⊆ ↑K → m ∈ K
state_after: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K✝ K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
s : Set L
m : L
hm : m ∈ s
K : LieSubalgebra R L
hK : s ⊆ ↑K
⊢ m ∈ K

tactic: exact hK hm
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K✝ K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
s : Set L
m : L
hm : m ∈ s
K : LieSubalgebra R L
hK : s ⊆ ↑K
⊢ m ∈ K
state_after: no goals
Theorem: Valued.extension_extends
File: Mathlib/Topology/Algebra/ValuedField.lean

tactic: refine Completion.denseInducing_coe.extend_eq_of_tendsto ?_
state_before: K : Type u_1
inst✝¹ : Field K
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
hv : Valued K Γ₀
x : K
⊢ extension (↑K x) = v x
state_after: K : Type u_1
inst✝¹ : Field K
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
hv : Valued K Γ₀
x : K
⊢ Tendsto (⇑v) (Filter.comap (↑K) (𝓝 (↑K x))) (𝓝 (v x))

tactic: rw [← Completion.denseInducing_coe.nhds_eq_comap]
state_before: K : Type u_1
inst✝¹ : Field K
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
hv : Valued K Γ₀
x : K
⊢ Tendsto (⇑v) (Filter.comap (↑K) (𝓝 (↑K x))) (𝓝 (v x))
state_after: K : Type u_1
inst✝¹ : Field K
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
hv : Valued K Γ₀
x : K
⊢ Tendsto (⇑v) (𝓝 x) (𝓝 (v x))

tactic: exact Valued.continuous_valuation.continuousAt
state_before: K : Type u_1
inst✝¹ : Field K
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
hv : Valued K Γ₀
x : K
⊢ Tendsto (⇑v) (𝓝 x) (𝓝 (v x))
state_after: no goals
Theorem: QuadraticForm.polarBilin_baseChange
File: Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean

tactic: rw [QuadraticForm.baseChange, BilinForm.baseChange, polarBilin_tmul, BilinForm.tmul,
  ← LinearMap.map_smul, smul_tmul', ← two_nsmul_associated R, coe_associatedHom, associated_sq,
  smul_comm, ← smul_assoc, two_smul, invOf_two_add_invOf_two, one_smul]
state_before: R : Type uR
A : Type uA
M₁ : Type uM₁
M₂ : Type uM₂
inst✝¹² : CommRing R
inst✝¹¹ : CommRing A
inst✝¹⁰ : AddCommGroup M₁
inst✝⁹ : AddCommGroup M₂
inst✝⁸ : Algebra R A
inst✝⁷ : Module R M₁
inst✝⁶ : Module A M₁
inst✝⁵ : SMulCommClass R A M₁
inst✝⁴ : SMulCommClass A R M₁
inst✝³ : IsScalarTower R A M₁
inst✝² : Module R M₂
inst✝¹ : Invertible 2
inst✝ : Invertible 2
Q : QuadraticForm R M₂
⊢ (QuadraticForm.baseChange A Q).polarBilin = BilinForm.baseChange A Q.polarBilin
state_after: no goals
Theorem: groupCohomology.resolution.d_of
File: Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean

tactic: simp [d]
state_before: k G✝ : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G✝
G : Type u
n : ℕ
c : Fin (n + 1) → G
⊢ (d k G n) (Finsupp.single c 1) = ∑ p : Fin (n + 1), Finsupp.single (c ∘ p.succAbove) ((-1) ^ ↑p)
state_after: no goals
Theorem: AlgebraicTopology.DoldKan.comp_P_eq_self_iff
File: Mathlib/AlgebraicTopology/DoldKan/Projections.lean

tactic: constructor
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y : C
n q : ℕ
φ : Y ⟶ X _[n + 1]
⊢ φ ≫ (P q).f (n + 1) = φ ↔ HigherFacesVanish q φ
state_after: case mp
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y : C
n q : ℕ
φ : Y ⟶ X _[n + 1]
⊢ φ ≫ (P q).f (n + 1) = φ → HigherFacesVanish q φ

case mpr
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y : C
n q : ℕ
φ : Y ⟶ X _[n + 1]
⊢ HigherFacesVanish q φ → φ ≫ (P q).f (n + 1) = φ

tactic: intro hφ
state_before: case mp
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y : C
n q : ℕ
φ : Y ⟶ X _[n + 1]
⊢ φ ≫ (P q).f (n + 1) = φ → HigherFacesVanish q φ
state_after: case mp
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y : C
n q : ℕ
φ : Y ⟶ X _[n + 1]
hφ : φ ≫ (P q).f (n + 1) = φ
⊢ HigherFacesVanish q φ

tactic: rw [← hφ]
state_before: case mp
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y : C
n q : ℕ
φ : Y ⟶ X _[n + 1]
hφ : φ ≫ (P q).f (n + 1) = φ
⊢ HigherFacesVanish q φ
state_after: case mp
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y : C
n q : ℕ
φ : Y ⟶ X _[n + 1]
hφ : φ ≫ (P q).f (n + 1) = φ
⊢ HigherFacesVanish q (φ ≫ (P q).f (n + 1))

tactic: apply HigherFacesVanish.of_comp
state_before: case mp
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y : C
n q : ℕ
φ : Y ⟶ X _[n + 1]
hφ : φ ≫ (P q).f (n + 1) = φ
⊢ HigherFacesVanish q (φ ≫ (P q).f (n + 1))
state_after: case mp.v
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y : C
n q : ℕ
φ : Y ⟶ X _[n + 1]
hφ : φ ≫ (P q).f (n + 1) = φ
⊢ HigherFacesVanish q ((P q).f (n + 1))

tactic: apply HigherFacesVanish.of_P
state_before: case mp.v
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y : C
n q : ℕ
φ : Y ⟶ X _[n + 1]
hφ : φ ≫ (P q).f (n + 1) = φ
⊢ HigherFacesVanish q ((P q).f (n + 1))
state_after: no goals

tactic: exact HigherFacesVanish.comp_P_eq_self
state_before: case mpr
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y : C
n q : ℕ
φ : Y ⟶ X _[n + 1]
⊢ HigherFacesVanish q φ → φ ≫ (P q).f (n + 1) = φ
state_after: no goals
Theorem: AddCommGroup.modEq_zero
File: Mathlib/Algebra/ModEq.lean

tactic: simp [ModEq, sub_eq_zero, eq_comm]
state_before: α : Type u_1
inst✝ : AddCommGroup α
p a a₁ a₂ b b₁ b₂ c : α
n : ℕ
z : ℤ
⊢ a ≡ b [PMOD 0] ↔ a = b
state_after: no goals
Theorem: rootsOfUnity_one
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: ext
state_before: M✝ : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝³ : CommMonoid M✝
inst✝² : CommMonoid N
inst✝¹ : DivisionCommMonoid G
k l : ℕ+
M : Type u_7
inst✝ : CommMonoid M
⊢ rootsOfUnity 1 M = ⊥
state_after: case h
M✝ : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝³ : CommMonoid M✝
inst✝² : CommMonoid N
inst✝¹ : DivisionCommMonoid G
k l : ℕ+
M : Type u_7
inst✝ : CommMonoid M
x✝ : Mˣ
⊢ x✝ ∈ rootsOfUnity 1 M ↔ x✝ ∈ ⊥

tactic: simp
state_before: case h
M✝ : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝³ : CommMonoid M✝
inst✝² : CommMonoid N
inst✝¹ : DivisionCommMonoid G
k l : ℕ+
M : Type u_7
inst✝ : CommMonoid M
x✝ : Mˣ
⊢ x✝ ∈ rootsOfUnity 1 M ↔ x✝ ∈ ⊥
state_after: no goals
Theorem: le_nhds_of_cauchy_adhp
File: Mathlib/Topology/UniformSpace/Cauchy.lean

tactic: obtain ⟨t, t_mem, ht⟩ : ∃ t ∈ f, t ×ˢ t ⊆ s := (cauchy_iff.1 hf).2 s hs
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
x : α
hf : Cauchy f
adhs : ClusterPt x f
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ ∃ t ∈ f, t ×ˢ t ⊆ s ∧ ∃ y, (x, y) ∈ s ∧ y ∈ t
state_after: case intro.intro
α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
x : α
hf : Cauchy f
adhs : ClusterPt x f
s : Set (α × α)
hs : s ∈ 𝓤 α
t : Set α
t_mem : t ∈ f
ht : t ×ˢ t ⊆ s
⊢ ∃ t ∈ f, t ×ˢ t ⊆ s ∧ ∃ y, (x, y) ∈ s ∧ y ∈ t

tactic: use t, t_mem, ht
state_before: case intro.intro
α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
x : α
hf : Cauchy f
adhs : ClusterPt x f
s : Set (α × α)
hs : s ∈ 𝓤 α
t : Set α
t_mem : t ∈ f
ht : t ×ˢ t ⊆ s
⊢ ∃ t ∈ f, t ×ˢ t ⊆ s ∧ ∃ y, (x, y) ∈ s ∧ y ∈ t
state_after: case right
α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
x : α
hf : Cauchy f
adhs : ClusterPt x f
s : Set (α × α)
hs : s ∈ 𝓤 α
t : Set α
t_mem : t ∈ f
ht : t ×ˢ t ⊆ s
⊢ ∃ y, (x, y) ∈ s ∧ y ∈ t

tactic: exact forall_mem_nonempty_iff_neBot.2 adhs _ (inter_mem_inf (mem_nhds_left x hs) t_mem)
state_before: case right
α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
x : α
hf : Cauchy f
adhs : ClusterPt x f
s : Set (α × α)
hs : s ∈ 𝓤 α
t : Set α
t_mem : t ∈ f
ht : t ×ˢ t ⊆ s
⊢ ∃ y, (x, y) ∈ s ∧ y ∈ t
state_after: no goals
Theorem: SimpleGraph.Partition.partOfVertex_mem
File: Mathlib/Combinatorics/SimpleGraph/Partition.lean

tactic: obtain ⟨h, -⟩ := (P.isPartition.2 v).choose_spec.1
state_before: V : Type u
G : SimpleGraph V
P : G.Partition
v : V
⊢ P.partOfVertex v ∈ P.parts
state_after: case intro
V : Type u
G : SimpleGraph V
P : G.Partition
v : V
h : Exists.choose ⋯ ∈ P.parts
⊢ P.partOfVertex v ∈ P.parts

tactic: exact h
state_before: case intro
V : Type u
G : SimpleGraph V
P : G.Partition
v : V
h : Exists.choose ⋯ ∈ P.parts
⊢ P.partOfVertex v ∈ P.parts
state_after: no goals
Theorem: Dioph.diophFn_iff_pFun
File: Mathlib/NumberTheory/Dioph.lean

tactic: refine congr_arg Dioph (Set.ext fun v => ?_)
state_before: α β γ : Type u
S S' : Set (α → ℕ)
f : (α → ℕ) → ℕ
⊢ DiophFn f = DiophPFun ↑f
state_after: α β γ : Type u
S S' : Set (α → ℕ)
f : (α → ℕ) → ℕ
v : Option α → ℕ
⊢ v ∈ {v | f (v ∘ some) = v none} ↔ v ∈ {v | (↑f).graph (v ∘ some, v none)}

tactic: exact PFun.lift_graph.symm
state_before: α β γ : Type u
S S' : Set (α → ℕ)
f : (α → ℕ) → ℕ
v : Option α → ℕ
⊢ v ∈ {v | f (v ∘ some) = v none} ↔ v ∈ {v | (↑f).graph (v ∘ some, v none)}
state_after: no goals
Theorem: FirstOrder.Language.Substructure.lift_card_closure_le
File: Mathlib/ModelTheory/Substructures.lean

tactic: rw [← lift_umax]
state_before: 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
S : L.Substructure M
s : Set M
⊢ lift.{u, w} #↥((closure L).toFun s) ≤ max ℵ₀ (lift.{u, w} #↑s + lift.{w, u} #((i : ℕ) × L.Functions i))
state_after: 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
S : L.Substructure M
s : Set M
⊢ lift.{max w u, w} #↥((closure L).toFun s) ≤ max ℵ₀ (lift.{max w u, w} #↑s + lift.{w, u} #((i : ℕ) × L.Functions i))

tactic: refine lift_card_closure_le_card_term.trans (Term.card_le.trans ?_)
state_before: 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
S : L.Substructure M
s : Set M
⊢ lift.{max w u, w} #↥((closure L).toFun s) ≤ max ℵ₀ (lift.{max w u, w} #↑s + lift.{w, u} #((i : ℕ) × L.Functions i))
state_after: 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
S : L.Substructure M
s : Set M
⊢ max ℵ₀ #(↑s ⊕ (i : ℕ) × L.Functions i) ≤ max ℵ₀ (lift.{max w u, w} #↑s + lift.{w, u} #((i : ℕ) × L.Functions i))

tactic: rw [mk_sum, lift_umax.{w, u}]
state_before: 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
S : L.Substructure M
s : Set M
⊢ max ℵ₀ #(↑s ⊕ (i : ℕ) × L.Functions i) ≤ max ℵ₀ (lift.{max w u, w} #↑s + lift.{w, u} #((i : ℕ) × L.Functions i))
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.LeftFractionRel.op
File: Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean

tactic: obtain ⟨Z, t₁, t₂, hs, hf, ht⟩ := h
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.133286, u_2} D
L : C ⥤ D
W : MorphismProperty C
inst✝ : L.IsLocalization W
X Y : C
z₁ z₂ : W.LeftFraction X Y
h : LeftFractionRel z₁ z₂
⊢ RightFractionRel z₁.op z₂.op
state_after: case intro.intro.intro.intro.intro
C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.133286, u_2} D
L : C ⥤ D
W : MorphismProperty C
inst✝ : L.IsLocalization W
X Y : C
z₁ z₂ : W.LeftFraction X Y
Z : C
t₁ : z₁.Y' ⟶ Z
t₂ : z₂.Y' ⟶ Z
hs : z₁.s ≫ t₁ = z₂.s ≫ t₂
hf : z₁.f ≫ t₁ = z₂.f ≫ t₂
ht : W (z₁.s ≫ t₁)
⊢ RightFractionRel z₁.op z₂.op

tactic: exact ⟨Opposite.op Z, t₁.op, t₂.op, Quiver.Hom.unop_inj hs,
  Quiver.Hom.unop_inj hf, ht⟩
state_before: case intro.intro.intro.intro.intro
C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.133286, u_2} D
L : C ⥤ D
W : MorphismProperty C
inst✝ : L.IsLocalization W
X Y : C
z₁ z₂ : W.LeftFraction X Y
Z : C
t₁ : z₁.Y' ⟶ Z
t₂ : z₂.Y' ⟶ Z
hs : z₁.s ≫ t₁ = z₂.s ≫ t₂
hf : z₁.f ≫ t₁ = z₂.f ≫ t₂
ht : W (z₁.s ≫ t₁)
⊢ RightFractionRel z₁.op z₂.op
state_after: no goals
Theorem: Finset.centerMass_smul_left
File: Mathlib/Analysis/Convex/Combination.lean

tactic: simp [centerMass, -smul_assoc, smul_assoc c, ← smul_sum, smul_inv₀, smul_smul_smul_comm, hc]
state_before: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι : Type u_5
ι' : Type u_6
α : Type u_7
inst✝¹⁴ : LinearOrderedField R
inst✝¹³ : LinearOrderedField R'
inst✝¹² : AddCommGroup E
inst✝¹¹ : AddCommGroup F
inst✝¹⁰ : LinearOrderedAddCommGroup α
inst✝⁹ : Module R E
inst✝⁸ : Module R F
inst✝⁷ : Module R α
inst✝⁶ : OrderedSMul R α
s : Set E
i j : ι
c✝ : R
t : Finset ι
w : ι → R
z : ι → E
c : R'
inst✝⁵ : Module R' R
inst✝⁴ : Module R' E
inst✝³ : SMulCommClass R' R R
inst✝² : IsScalarTower R' R R
inst✝¹ : SMulCommClass R R' E
inst✝ : IsScalarTower R' R E
hc : c ≠ 0
⊢ t.centerMass (c • w) z = t.centerMass w z
state_after: no goals
Theorem: Multiset.prod_map_inv
File: Mathlib/Algebra/BigOperators/Group/Multiset.lean

tactic: simp_rw [← (m.map f).prod_map_inv', map_map, Function.comp_apply]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : DivisionCommMonoid α
m : Multiset ι
f g : ι → α
⊢ (map (fun i => (f i)⁻¹) m).prod = (map f m).prod⁻¹
state_after: no goals
Theorem: SeparationQuotient.continuous_lift₂
File: Mathlib/Topology/Inseparable.lean

tactic: simp only [continuous_iff_continuousOn_univ, continuousOn_lift₂, preimage_univ]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f✝ g : X → Y
t : Set (SeparationQuotient X)
f : X → Y → Z
hf : ∀ (a : X) (b : Y) (c : X) (d : Y), (a ~ᵢ c) → (b ~ᵢ d) → f a b = f c d
⊢ Continuous (uncurry (lift₂ f hf)) ↔ Continuous (uncurry f)
state_after: no goals
Theorem: MeasureTheory.toFiniteAux_apply
File: Mathlib/MeasureTheory/Measure/WithDensityFinite.lean

tactic: rw [Measure.toFiniteAux, Measure.sum_apply_of_countable]
state_before: α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
s : Set α
⊢ μ.toFiniteAux s = ∑' (n : ℕ), (2 ^ (n + 1) * (sFiniteSeq μ n) Set.univ)⁻¹ * (sFiniteSeq μ n) s
state_after: α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
s : Set α
⊢ ∑' (i : ℕ), ((2 ^ (i + 1) * (sFiniteSeq μ i) Set.univ)⁻¹ • sFiniteSeq μ i) s =
    ∑' (n : ℕ), (2 ^ (n + 1) * (sFiniteSeq μ n) Set.univ)⁻¹ * (sFiniteSeq μ n) s

tactic: rfl
state_before: α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
s : Set α
⊢ ∑' (i : ℕ), ((2 ^ (i + 1) * (sFiniteSeq μ i) Set.univ)⁻¹ • sFiniteSeq μ i) s =
    ∑' (n : ℕ), (2 ^ (n + 1) * (sFiniteSeq μ n) Set.univ)⁻¹ * (sFiniteSeq μ n) s
state_after: no goals
Theorem: PadicInt.norm_units
File: Mathlib/NumberTheory/Padics/PadicIntegers.lean

tactic: simp
state_before: p : ℕ
hp : Fact (Nat.Prime p)
u : ℤ_[p]ˣ
⊢ IsUnit ↑u
state_after: no goals
Theorem: isComplete_image_iff
File: Mathlib/Topology/UniformSpace/UniformEmbedding.lean

tactic: have fact1 : SurjOn (map m) (Iic <| 𝓟 s) (Iic <| 𝓟 <| m '' s) := surjOn_image .. |>.filter_map_Iic
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
m : α → β
s : Set α
hm : UniformInducing m
⊢ IsComplete (m '' s) ↔ IsComplete s
state_after: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
m : α → β
s : Set α
hm : UniformInducing m
fact1 : SurjOn (map m) (Iic (𝓟 s)) (Iic (𝓟 (m '' s)))
⊢ IsComplete (m '' s) ↔ IsComplete s

tactic: have fact2 : MapsTo (map m) (Iic <| 𝓟 s) (Iic <| 𝓟 <| m '' s) := mapsTo_image .. |>.filter_map_Iic
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
m : α → β
s : Set α
hm : UniformInducing m
fact1 : SurjOn (map m) (Iic (𝓟 s)) (Iic (𝓟 (m '' s)))
⊢ IsComplete (m '' s) ↔ IsComplete s
state_after: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
m : α → β
s : Set α
hm : UniformInducing m
fact1 : SurjOn (map m) (Iic (𝓟 s)) (Iic (𝓟 (m '' s)))
fact2 : MapsTo (map m) (Iic (𝓟 s)) (Iic (𝓟 (m '' s)))
⊢ IsComplete (m '' s) ↔ IsComplete s

tactic: simp_rw [IsComplete, imp.swap (a := Cauchy _), ← mem_Iic (b := 𝓟 _), fact1.forall fact2,
  hm.cauchy_map_iff, exists_mem_image, map_le_iff_le_comap, hm.inducing.nhds_eq_comap]
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
m : α → β
s : Set α
hm : UniformInducing m
fact1 : SurjOn (map m) (Iic (𝓟 s)) (Iic (𝓟 (m '' s)))
fact2 : MapsTo (map m) (Iic (𝓟 s)) (Iic (𝓟 (m '' s)))
⊢ IsComplete (m '' s) ↔ IsComplete s
state_after: no goals
Theorem: IsOpen.inter_closure
File: Mathlib/Topology/Basic.lean

tactic: simpa only [← interior_compl, compl_inter] using IsClosed.interior_union_left h.isClosed_compl
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
h : IsOpen s
⊢ (closure (s ∩ t))ᶜ ⊆ (s ∩ closure t)ᶜ
state_after: no goals
Theorem: simply_connected_iff_unique_homotopic
File: Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean

tactic: simp only [simply_connected_def, equiv_punit_iff_unique,
  FundamentalGroupoid.nonempty_iff X, and_congr_right_iff, Nonempty.forall]
state_before: X : Type u_1
inst✝ : TopologicalSpace X
⊢ SimplyConnectedSpace X ↔ Nonempty X ∧ ∀ (x y : X), Nonempty (Unique (Path.Homotopic.Quotient x y))
state_after: X : Type u_1
inst✝ : TopologicalSpace X
⊢ X →
    ((∀ (x y : FundamentalGroupoid X), Nonempty (Unique (x ⟶ y))) ↔
      ∀ (x y : X), Nonempty (Unique (Path.Homotopic.Quotient x y)))

tactic: intros
state_before: X : Type u_1
inst✝ : TopologicalSpace X
⊢ X →
    ((∀ (x y : FundamentalGroupoid X), Nonempty (Unique (x ⟶ y))) ↔
      ∀ (x y : X), Nonempty (Unique (Path.Homotopic.Quotient x y)))
state_after: X : Type u_1
inst✝ : TopologicalSpace X
a✝ : X
⊢ (∀ (x y : FundamentalGroupoid X), Nonempty (Unique (x ⟶ y))) ↔
    ∀ (x y : X), Nonempty (Unique (Path.Homotopic.Quotient x y))

tactic: exact ⟨fun h _ _ => h _ _, fun h _ _ => h _ _⟩
state_before: X : Type u_1
inst✝ : TopologicalSpace X
a✝ : X
⊢ (∀ (x y : FundamentalGroupoid X), Nonempty (Unique (x ⟶ y))) ↔
    ∀ (x y : X), Nonempty (Unique (Path.Homotopic.Quotient x y))
state_after: no goals
Theorem: integral_exp_neg_Ioi
File: Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean

tactic: simpa only [integral_comp_neg_Ioi] using integral_exp_Iic (-c)
state_before: c : ℝ
⊢ ∫ (x : ℝ) in Ioi c, rexp (-x) = rexp (-c)
state_after: no goals
Theorem: PiNat.isOpen_cylinder
File: Mathlib/Topology/MetricSpace/PiNat.lean

tactic: rw [PiNat.cylinder_eq_pi]
state_before: E : ℕ → Type u_1
inst✝¹ : (n : ℕ) → TopologicalSpace (E n)
inst✝ : ∀ (n : ℕ), DiscreteTopology (E n)
x : (n : ℕ) → E n
n : ℕ
⊢ IsOpen (cylinder x n)
state_after: E : ℕ → Type u_1
inst✝¹ : (n : ℕ) → TopologicalSpace (E n)
inst✝ : ∀ (n : ℕ), DiscreteTopology (E n)
x : (n : ℕ) → E n
n : ℕ
⊢ IsOpen ((↑(Finset.range n)).pi fun i => {x i})

tactic: exact isOpen_set_pi (Finset.range n).finite_toSet fun a _ => isOpen_discrete _
state_before: E : ℕ → Type u_1
inst✝¹ : (n : ℕ) → TopologicalSpace (E n)
inst✝ : ∀ (n : ℕ), DiscreteTopology (E n)
x : (n : ℕ) → E n
n : ℕ
⊢ IsOpen ((↑(Finset.range n)).pi fun i => {x i})
state_after: no goals
Theorem: WittVector.mapFun.add
File: Mathlib/RingTheory/WittVector/Basic.lean

tactic: map_fun_tac
state_before: p : ℕ
R : Type u_1
S : Type u_2
T : Type u_3
hp : Fact (Nat.Prime p)
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : CommRing T
α : Type u_4
β : Type u_5
f : R →+* S
x y : 𝕎 R
⊢ mapFun (⇑f) (x + y) = mapFun (⇑f) x + mapFun (⇑f) y
state_after: no goals
Theorem: RegularExpression.one_rmatch_iff
File: Mathlib/Computability/RegularExpressions.lean

tactic: induction x <;> simp [rmatch, matchEpsilon, *]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
x : List α
⊢ rmatch 1 x = true ↔ x = []
state_after: no goals
Theorem: Function.IsPeriodicPt.right_of_add
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: rw [add_comm] at hn
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hn : IsPeriodicPt f (n + m) x
hm : IsPeriodicPt f n x
⊢ IsPeriodicPt f m x
state_after: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hn : IsPeriodicPt f (m + n) x
hm : IsPeriodicPt f n x
⊢ IsPeriodicPt f m x

tactic: exact hn.left_of_add hm
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hn : IsPeriodicPt f (m + n) x
hm : IsPeriodicPt f n x
⊢ IsPeriodicPt f m x
state_after: no goals
Theorem: CategoryTheory.Preadditive.isCoseparating_iff
File: Mathlib/CategoryTheory/Preadditive/Generator.lean

tactic: simpa only [Limits.zero_comp] using hf
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Preadditive C
𝒢 : Set C
h𝒢 : IsCoseparating 𝒢
X Y : C
f : X ⟶ Y
hf : ∀ G ∈ 𝒢, ∀ (h : Y ⟶ G), f ≫ h = 0
⊢ ∀ G ∈ 𝒢, ∀ (h : Y ⟶ G), f ≫ h = 0 ≫ h
state_after: no goals

tactic: simpa only [Preadditive.sub_comp, sub_eq_zero] using hfg
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Preadditive C
𝒢 : Set C
h𝒢 : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), (∀ G ∈ 𝒢, ∀ (h : Y ⟶ G), f ≫ h = 0) → f = 0
X Y : C
f g : X ⟶ Y
hfg : ∀ G ∈ 𝒢, ∀ (h : Y ⟶ G), f ≫ h = g ≫ h
⊢ ∀ G ∈ 𝒢, ∀ (h : Y ⟶ G), (f - g) ≫ h = 0
state_after: no goals