1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.Functor.preservesMonomorphisms_of_adjunction
File: Mathlib/CategoryTheory/Functor/EpiMono.lean

tactic: intro Z g h H
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X Y : D
f : X ⟶ Y
hf : Mono f
⊢ ∀ {Z : C} (g h : Z ⟶ G.obj X), g ≫ G.map f = h ≫ G.map f → g = h
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X Y : D
f : X ⟶ Y
hf : Mono f
Z : C
g h : Z ⟶ G.obj X
H : g ≫ G.map f = h ≫ G.map f
⊢ g = h

tactic: replace H := congr_arg (adj.homEquiv Z Y).symm H
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X Y : D
f : X ⟶ Y
hf : Mono f
Z : C
g h : Z ⟶ G.obj X
H : g ≫ G.map f = h ≫ G.map f
⊢ g = h
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X Y : D
f : X ⟶ Y
hf : Mono f
Z : C
g h : Z ⟶ G.obj X
H : (adj.homEquiv Z Y).symm (g ≫ G.map f) = (adj.homEquiv Z Y).symm (h ≫ G.map f)
⊢ g = h

tactic: rwa [adj.homEquiv_naturality_right_symm, adj.homEquiv_naturality_right_symm, cancel_mono,
  Equiv.apply_eq_iff_eq] at H
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X Y : D
f : X ⟶ Y
hf : Mono f
Z : C
g h : Z ⟶ G.obj X
H : (adj.homEquiv Z Y).symm (g ≫ G.map f) = (adj.homEquiv Z Y).symm (h ≫ G.map f)
⊢ g = h
state_after: no goals
Theorem: spectrum.one_eq
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: rw [Algebra.algebraMap_eq_smul_one, one_smul]
state_before: 𝕜 : Type u
A : Type v
inst✝³ : Field 𝕜
inst✝² : Ring A
inst✝¹ : Algebra 𝕜 A
inst✝ : Nontrivial A
⊢ σ 1 = σ (↑ₐ 1)
state_after: no goals
Theorem: AlgebraicGeometry.StructureSheaf.stalkToFiberRingHom_germ
File: Mathlib/AlgebraicGeometry/StructureSheaf.lean

tactic: cases x
state_before: R : Type u
inst✝ : CommRing R
U : Opens ↑(PrimeSpectrum.Top R)
x : ↥U
s : ↑((structureSheaf R).val.obj { unop := U })
⊢ (stalkToFiberRingHom R ↑x) (((structureSheaf R).presheaf.germ x) s) = ↑s x
state_after: case mk
R : Type u
inst✝ : CommRing R
U : Opens ↑(PrimeSpectrum.Top R)
s : ↑((structureSheaf R).val.obj { unop := U })
val✝ : ↑(PrimeSpectrum.Top R)
property✝ : val✝ ∈ U
⊢ (stalkToFiberRingHom R ↑⟨val✝, property✝⟩) (((structureSheaf R).presheaf.germ ⟨val✝, property✝⟩) s) =
    ↑s ⟨val✝, property✝⟩

tactic: exact stalkToFiberRingHom_germ' R U _ _ _
state_before: case mk
R : Type u
inst✝ : CommRing R
U : Opens ↑(PrimeSpectrum.Top R)
s : ↑((structureSheaf R).val.obj { unop := U })
val✝ : ↑(PrimeSpectrum.Top R)
property✝ : val✝ ∈ U
⊢ (stalkToFiberRingHom R ↑⟨val✝, property✝⟩) (((structureSheaf R).presheaf.germ ⟨val✝, property✝⟩) s) =
    ↑s ⟨val✝, property✝⟩
state_after: no goals
Theorem: Filter.Eventually.diag_of_prod
File: Mathlib/Order/Filter/Prod.lean

tactic: obtain ⟨t, ht, s, hs, hst⟩ := eventually_prod_iff.1 h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
s : Set α
t : Set β
f : Filter α
g : Filter β
p : α × α → Prop
h : ∀ᶠ (i : α × α) in f ×ˢ f, p i
⊢ ∀ᶠ (i : α) in f, p (i, i)
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
s✝ : Set α
t✝ : Set β
f : Filter α
g : Filter β
p : α × α → Prop
h : ∀ᶠ (i : α × α) in f ×ˢ f, p i
t : α → Prop
ht : ∀ᶠ (x : α) in f, t x
s : α → Prop
hs : ∀ᶠ (y : α) in f, s y
hst : ∀ {x : α}, t x → ∀ {y : α}, s y → p (x, y)
⊢ ∀ᶠ (i : α) in f, p (i, i)

tactic: apply (ht.and hs).mono fun x hx => hst hx.1 hx.2
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
s✝ : Set α
t✝ : Set β
f : Filter α
g : Filter β
p : α × α → Prop
h : ∀ᶠ (i : α × α) in f ×ˢ f, p i
t : α → Prop
ht : ∀ᶠ (x : α) in f, t x
s : α → Prop
hs : ∀ᶠ (y : α) in f, s y
hst : ∀ {x : α}, t x → ∀ {y : α}, s y → p (x, y)
⊢ ∀ᶠ (i : α) in f, p (i, i)
state_after: no goals
Theorem: Set.range_eq_iff
File: Mathlib/Data/Set/Image.lean

tactic: rw [← range_subset_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s✝ t : Set α
f : α → β
s : Set β
⊢ range f = s ↔ (∀ (a : α), f a ∈ s) ∧ ∀ b ∈ s, ∃ a, f a = b
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s✝ t : Set α
f : α → β
s : Set β
⊢ range f = s ↔ range f ⊆ s ∧ ∀ b ∈ s, ∃ a, f a = b

tactic: exact le_antisymm_iff
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s✝ t : Set α
f : α → β
s : Set β
⊢ range f = s ↔ range f ⊆ s ∧ ∀ b ∈ s, ∃ a, f a = b
state_after: no goals
Theorem: Finset.card_biUnion_le
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: simp
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : DecidableEq β
s : Finset α
t : α → Finset β
this : DecidableEq α
⊢ (∅.biUnion t).card ≤ ∑ a ∈ ∅, (t a).card
state_after: no goals

tactic: rw [biUnion_insert]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝¹ s₁ s₂ : Finset α
a✝ : α
f g : α → β
inst✝ : DecidableEq β
s✝ : Finset α
t : α → Finset β
this : DecidableEq α
a : α
s : Finset α
has : a ∉ s
ih : (s.biUnion t).card ≤ ∑ a ∈ s, (t a).card
⊢ ((insert a s).biUnion t).card ≤ (t a).card + (s.biUnion t).card
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝¹ s₁ s₂ : Finset α
a✝ : α
f g : α → β
inst✝ : DecidableEq β
s✝ : Finset α
t : α → Finset β
this : DecidableEq α
a : α
s : Finset α
has : a ∉ s
ih : (s.biUnion t).card ≤ ∑ a ∈ s, (t a).card
⊢ (t a ∪ s.biUnion t).card ≤ (t a).card + (s.biUnion t).card

tactic: exact Finset.card_union_le _ _
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝¹ s₁ s₂ : Finset α
a✝ : α
f g : α → β
inst✝ : DecidableEq β
s✝ : Finset α
t : α → Finset β
this : DecidableEq α
a : α
s : Finset α
has : a ∉ s
ih : (s.biUnion t).card ≤ ∑ a ∈ s, (t a).card
⊢ (t a ∪ s.biUnion t).card ≤ (t a).card + (s.biUnion t).card
state_after: no goals

tactic: rw [sum_insert has]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝¹ s₁ s₂ : Finset α
a✝ : α
f g : α → β
inst✝ : DecidableEq β
s✝ : Finset α
t : α → Finset β
this : DecidableEq α
a : α
s : Finset α
has : a ∉ s
ih : (s.biUnion t).card ≤ ∑ a ∈ s, (t a).card
⊢ (t a).card + (s.biUnion t).card ≤ ∑ a ∈ insert a s, (t a).card
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝¹ s₁ s₂ : Finset α
a✝ : α
f g : α → β
inst✝ : DecidableEq β
s✝ : Finset α
t : α → Finset β
this : DecidableEq α
a : α
s : Finset α
has : a ∉ s
ih : (s.biUnion t).card ≤ ∑ a ∈ s, (t a).card
⊢ (t a).card + (s.biUnion t).card ≤ (t a).card + ∑ x ∈ s, (t x).card

tactic: exact Nat.add_le_add_left ih _
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝¹ s₁ s₂ : Finset α
a✝ : α
f g : α → β
inst✝ : DecidableEq β
s✝ : Finset α
t : α → Finset β
this : DecidableEq α
a : α
s : Finset α
has : a ∉ s
ih : (s.biUnion t).card ≤ ∑ a ∈ s, (t a).card
⊢ (t a).card + (s.biUnion t).card ≤ (t a).card + ∑ x ∈ s, (t x).card
state_after: no goals
Theorem: Multiset.rel_replicate_left
File: Mathlib/Data/Multiset/Basic.lean

tactic: obtain ⟨b, hb1, hb2⟩ := exists_mem_of_rel_of_mem (rel_flip.2 h) hx
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r✝ : α → β → Prop
p : γ → δ → Prop
m : Multiset α
a : α
r : α → α → Prop
n : ℕ
h : Rel r (replicate n a) m
x : α
hx : x ∈ m
⊢ r a x
state_after: case intro.intro
α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r✝ : α → β → Prop
p : γ → δ → Prop
m : Multiset α
a : α
r : α → α → Prop
n : ℕ
h : Rel r (replicate n a) m
x : α
hx : x ∈ m
b : α
hb1 : b ∈ replicate n a
hb2 : flip r x b
⊢ r a x

tactic: rwa [eq_of_mem_replicate hb1] at hb2
state_before: case intro.intro
α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r✝ : α → β → Prop
p : γ → δ → Prop
m : Multiset α
a : α
r : α → α → Prop
n : ℕ
h : Rel r (replicate n a) m
x : α
hx : x ∈ m
b : α
hb1 : b ∈ replicate n a
hb2 : flip r x b
⊢ r a x
state_after: no goals
Theorem: SemilinearMapClass.map_smul_inv
File: Mathlib/Algebra/Module/LinearMap/Defs.lean

tactic: simp [map_smulₛₗ _]
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
F : Type u_17
inst✝¹¹ : Semiring R
inst✝¹⁰ : Semiring S
inst✝⁹ : AddCommMonoid M
inst✝⁸ : AddCommMonoid M₁
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : Module R M
inst✝⁴ : Module R M₂
inst✝³ : Module S M₃
σ : R →+* S
f : F
inst✝² : FunLike F M M₃
inst✝¹ : SemilinearMapClass F σ M M₃
σ' : S →+* R
inst✝ : RingHomInvPair σ σ'
c : S
x : M
⊢ c • f x = f (σ' c • x)
state_after: no goals
Theorem: CategoryTheory.ComposableArrows.exact₀
File: Mathlib/Algebra/Homology/ExactSequence.lean

tactic: simp [autoParam] at hi
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
n : ℕ
S✝ : ComposableArrows C n
S : ComposableArrows C 0
i : ℕ
hi : autoParam (i + 2 ≤ 0) _auto✝
⊢ (S.sc ⋯ i ⋯).Exact
state_after: no goals
Theorem: List.get?_set
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: simp [getElem?_set']
state_before: α : Type u_1
a : α
m n : Nat
l : List α
⊢ (l.set m a).get? n = if m = n then (fun x => a) <$> l.get? n else l.get? n
state_after: no goals
Theorem: FdRep.forget₂_ρ
File: Mathlib/RepresentationTheory/FdRep.lean

tactic: ext g v
state_before: k G : Type u
inst✝¹ : Field k
inst✝ : Monoid G
V : FdRep k G
⊢ ((forget₂ (FdRep k G) (Rep k G)).obj V).ρ = V.ρ
state_after: case h.h
k G : Type u
inst✝¹ : Field k
inst✝ : Monoid G
V : FdRep k G
g : G
v : CoeSort.coe ((forget₂ (FdRep k G) (Rep k G)).obj V)
⊢ (((forget₂ (FdRep k G) (Rep k G)).obj V).ρ g) v = (V.ρ g) v

tactic: rfl
state_before: case h.h
k G : Type u
inst✝¹ : Field k
inst✝ : Monoid G
V : FdRep k G
g : G
v : CoeSort.coe ((forget₂ (FdRep k G) (Rep k G)).obj V)
⊢ (((forget₂ (FdRep k G) (Rep k G)).obj V).ρ g) v = (V.ρ g) v
state_after: no goals
Theorem: SimpleGraph.dist_eq_zero_iff_eq_or_not_reachable
File: Mathlib/Combinatorics/SimpleGraph/Metric.lean

tactic: simp [dist, Nat.sInf_eq_zero, Reachable]
state_before: V : Type u_1
G : SimpleGraph V
u v : V
⊢ G.dist u v = 0 ↔ u = v ∨ ¬G.Reachable u v
state_after: no goals
Theorem: AlgebraicTopology.AlternatingCofaceMapComplex.d_eq_unop_d
File: Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean

tactic: simp only [objD, AlternatingFaceMapComplex.objD, unop_sum, unop_zsmul]
state_before: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : Preadditive C
A : Type u_2
inst✝¹ : Category.{?u.77005, u_2} A
inst✝ : Abelian A
X Y : CosimplicialObject C
n : ℕ
⊢ objD X n = (AlternatingFaceMapComplex.objD ((cosimplicialSimplicialEquiv C).functor.obj { unop := X }) n).unop
state_after: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : Preadditive C
A : Type u_2
inst✝¹ : Category.{?u.77005, u_2} A
inst✝ : Abelian A
X Y : CosimplicialObject C
n : ℕ
⊢ ∑ i : Fin (n + 2), (-1) ^ ↑i • X.δ i =
    ∑ x : Fin (n + 2), (-1) ^ ↑x • (((cosimplicialSimplicialEquiv C).functor.obj { unop := X }).δ x).unop

tactic: rfl
state_before: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : Preadditive C
A : Type u_2
inst✝¹ : Category.{?u.77005, u_2} A
inst✝ : Abelian A
X Y : CosimplicialObject C
n : ℕ
⊢ ∑ i : Fin (n + 2), (-1) ^ ↑i • X.δ i =
    ∑ x : Fin (n + 2), (-1) ^ ↑x • (((cosimplicialSimplicialEquiv C).functor.obj { unop := X }).δ x).unop
state_after: no goals
Theorem: PiTensorProduct.piTensorHomMap₂_tprod_tprod_tprod
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

tactic: simp [piTensorHomMapFun₂, piTensorHomMap₂]
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
f : (i : ι) → s i →ₗ[R] t i →ₗ[R] t' i
a : (i : ι) → s i
b : (i : ι) → t i
⊢ ((piTensorHomMap₂ ((tprod R) f)) ((tprod R) a)) ((tprod R) b) = ⨂ₜ[R] (i : ι), ((f i) (a i)) (b i)
state_after: no goals
Theorem: intervalIntegral.smul_integral_comp_mul_left
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: by_cases hc : c = 0 <;> simp [hc, integral_comp_mul_left]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c✝ d : ℝ
f : ℝ → E
c : ℝ
⊢ c • ∫ (x : ℝ) in a..b, f (c * x) = ∫ (x : ℝ) in c * a..c * b, f x
state_after: no goals
Theorem: Set.univ_pi_subset_univ_pi_iff
File: Mathlib/Data/Set/Prod.lean

tactic: simp [pi_subset_pi_iff]
state_before: ι : Type u_1
α : ι → Type u_2
β : ι → Type u_3
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
i : ι
⊢ univ.pi t₁ ⊆ univ.pi t₂ ↔ (∀ (i : ι), t₁ i ⊆ t₂ i) ∨ ∃ i, t₁ i = ∅
state_after: no goals
Theorem: Finsupp.erase_zero
File: Mathlib/Data/Finsupp/Defs.lean

tactic: classical rw [← support_eq_empty, support_erase, support_zero, erase_empty]
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
a : α
⊢ erase a 0 = 0
state_after: no goals

tactic: rw [← support_eq_empty, support_erase, support_zero, erase_empty]
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
a : α
⊢ erase a 0 = 0
state_after: no goals
Theorem: Multiset.esymm_neg
File: Mathlib/RingTheory/Polynomial/Vieta.lean

tactic: rw [esymm, esymm, ← Multiset.sum_map_mul_left, Multiset.powersetCard_map, Multiset.map_map,
  map_congr rfl]
state_before: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
⊢ (map Neg.neg s).esymm k = (-1) ^ k * s.esymm k
state_after: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
⊢ ∀ x ∈ powersetCard k s, (prod ∘ map Neg.neg) x = (-1) ^ k * x.prod

tactic: intro x hx
state_before: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
⊢ ∀ x ∈ powersetCard k s, (prod ∘ map Neg.neg) x = (-1) ^ k * x.prod
state_after: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
x : Multiset R
hx : x ∈ powersetCard k s
⊢ (prod ∘ map Neg.neg) x = (-1) ^ k * x.prod

tactic: rw [(mem_powersetCard.mp hx).right.symm, ← prod_replicate, ← Multiset.map_const]
state_before: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
x : Multiset R
hx : x ∈ powersetCard k s
⊢ (prod ∘ map Neg.neg) x = (-1) ^ k * x.prod
state_after: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
x : Multiset R
hx : x ∈ powersetCard k s
⊢ (prod ∘ map Neg.neg) x = (map (Function.const R (-1)) x).prod * x.prod

tactic: nth_rw 3 [← map_id' x]
state_before: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
x : Multiset R
hx : x ∈ powersetCard k s
⊢ (prod ∘ map Neg.neg) x = (map (Function.const R (-1)) x).prod * x.prod
state_after: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
x : Multiset R
hx : x ∈ powersetCard k s
⊢ (prod ∘ map Neg.neg) x = (map (Function.const R (-1)) x).prod * (map (fun x => x) x).prod

tactic: rw [← prod_map_mul, map_congr rfl, Function.comp_apply]
state_before: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
x : Multiset R
hx : x ∈ powersetCard k s
⊢ (prod ∘ map Neg.neg) x = (map (Function.const R (-1)) x).prod * (map (fun x => x) x).prod
state_after: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
x : Multiset R
hx : x ∈ powersetCard k s
⊢ ∀ x_1 ∈ x, Function.const R (-1) x_1 * x_1 = -x_1

tactic: exact fun z _ => neg_one_mul z
state_before: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
x : Multiset R
hx : x ∈ powersetCard k s
⊢ ∀ x_1 ∈ x, Function.const R (-1) x_1 * x_1 = -x_1
state_after: no goals
Theorem: FirstOrder.Language.Structure.cg_iff_countable
File: Mathlib/ModelTheory/FinitelyGenerated.lean

tactic: rw [cg_def, Substructure.cg_iff_countable, topEquiv.toEquiv.countable_iff]
state_before: L : Language
M : Type u_1
inst✝¹ : L.Structure M
inst✝ : Countable ((l : ℕ) × L.Functions l)
⊢ CG L M ↔ Countable M
state_after: no goals
Theorem: Subgroup.Normal.conj_mem'
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: convert nH.conj_mem n hn g⁻¹
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H K : Subgroup G
nH : H.Normal
n : G
hn : n ∈ H
g : G
⊢ g⁻¹ * n * g ∈ H
state_after: case h.e'_4.h.e'_6
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H K : Subgroup G
nH : H.Normal
n : G
hn : n ∈ H
g : G
⊢ g = g⁻¹⁻¹

tactic: rw [inv_inv]
state_before: case h.e'_4.h.e'_6
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H K : Subgroup G
nH : H.Normal
n : G
hn : n ∈ H
g : G
⊢ g = g⁻¹⁻¹
state_after: no goals
Theorem: NNReal.iInf_mul
File: Mathlib/Data/NNReal/Basic.lean

tactic: rw [← coe_inj, NNReal.coe_mul, coe_iInf, coe_iInf]
state_before: ι : Sort u_1
f✝ f : ι → ℝ≥0
a : ℝ≥0
⊢ iInf f * a = ⨅ i, f i * a
state_after: ι : Sort u_1
f✝ f : ι → ℝ≥0
a : ℝ≥0
⊢ (⨅ i, ↑(f i)) * ↑a = ⨅ i, ↑(f i * a)

tactic: exact Real.iInf_mul_of_nonneg (NNReal.coe_nonneg _) _
state_before: ι : Sort u_1
f✝ f : ι → ℝ≥0
a : ℝ≥0
⊢ (⨅ i, ↑(f i)) * ↑a = ⨅ i, ↑(f i * a)
state_after: no goals
Theorem: GeneralizedContinuedFraction.IntFractPair.coe_stream'_rat_eq
File: Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean

tactic: funext n
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
q : ℚ
v_eq_q : v = ↑q
n : ℕ
⊢ Stream'.map (Option.map (mapFr Rat.cast)) (IntFractPair.stream q) = IntFractPair.stream v
state_after: case h
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
q : ℚ
v_eq_q : v = ↑q
n✝ n : ℕ
⊢ Stream'.map (Option.map (mapFr Rat.cast)) (IntFractPair.stream q) n = IntFractPair.stream v n

tactic: exact IntFractPair.coe_stream_nth_rat_eq v_eq_q n
state_before: case h
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
q : ℚ
v_eq_q : v = ↑q
n✝ n : ℕ
⊢ Stream'.map (Option.map (mapFr Rat.cast)) (IntFractPair.stream q) n = IntFractPair.stream v n
state_after: no goals
Theorem: FormalMultilinearSeries.continuousOn
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: rcases (zero_le p.radius).eq_or_lt with h | h
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f g : E → F
p pf pg : FormalMultilinearSeries 𝕜 E F
x : E
r r' : ℝ≥0∞
inst✝ : CompleteSpace F
⊢ ContinuousOn p.sum (EMetric.ball 0 p.radius)
state_after: case inl
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f g : E → F
p pf pg : FormalMultilinearSeries 𝕜 E F
x : E
r r' : ℝ≥0∞
inst✝ : CompleteSpace F
h : 0 = p.radius
⊢ ContinuousOn p.sum (EMetric.ball 0 p.radius)

case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f g : E → F
p pf pg : FormalMultilinearSeries 𝕜 E F
x : E
r r' : ℝ≥0∞
inst✝ : CompleteSpace F
h : 0 < p.radius
⊢ ContinuousOn p.sum (EMetric.ball 0 p.radius)

tactic: simp [← h, continuousOn_empty]
state_before: case inl
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f g : E → F
p pf pg : FormalMultilinearSeries 𝕜 E F
x : E
r r' : ℝ≥0∞
inst✝ : CompleteSpace F
h : 0 = p.radius
⊢ ContinuousOn p.sum (EMetric.ball 0 p.radius)
state_after: no goals

tactic: exact (p.hasFPowerSeriesOnBall h).continuousOn
state_before: case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f g : E → F
p pf pg : FormalMultilinearSeries 𝕜 E F
x : E
r r' : ℝ≥0∞
inst✝ : CompleteSpace F
h : 0 < p.radius
⊢ ContinuousOn p.sum (EMetric.ball 0 p.radius)
state_after: no goals
Theorem: CategoryTheory.GrothendieckTopology.sheafifyMap_comp
File: Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean

tactic: dsimp [sheafifyMap, sheafify]
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P Q R : Cᵒᵖ ⥤ D
η : P ⟶ Q
γ : Q ⟶ R
⊢ J.sheafifyMap (η ≫ γ) = J.sheafifyMap η ≫ J.sheafifyMap γ
state_after: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P Q R : Cᵒᵖ ⥤ D
η : P ⟶ Q
γ : Q ⟶ R
⊢ J.plusMap (J.plusMap (η ≫ γ)) = J.plusMap (J.plusMap η) ≫ J.plusMap (J.plusMap γ)

tactic: simp
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P Q R : Cᵒᵖ ⥤ D
η : P ⟶ Q
γ : Q ⟶ R
⊢ J.plusMap (J.plusMap (η ≫ γ)) = J.plusMap (J.plusMap η) ≫ J.plusMap (J.plusMap γ)
state_after: no goals
Theorem: algebraMap_apply
File: Mathlib/Topology/ContinuousFunction/Algebra.lean

tactic: rw [Algebra.algebraMap_eq_smul_one]
state_before: α : Type u_1
inst✝⁹ : TopologicalSpace α
R : Type u_2
inst✝⁸ : CommSemiring R
A : Type u_3
inst✝⁷ : TopologicalSpace A
inst✝⁶ : Semiring A
inst✝⁵ : Algebra R A
inst✝⁴ : TopologicalSemiring A
A₂ : Type u_4
inst✝³ : TopologicalSpace A₂
inst✝² : Semiring A₂
inst✝¹ : Algebra R A₂
inst✝ : TopologicalSemiring A₂
k : R
a : α
⊢ ((algebraMap R C(α, A)) k) a = k • 1
state_after: α : Type u_1
inst✝⁹ : TopologicalSpace α
R : Type u_2
inst✝⁸ : CommSemiring R
A : Type u_3
inst✝⁷ : TopologicalSpace A
inst✝⁶ : Semiring A
inst✝⁵ : Algebra R A
inst✝⁴ : TopologicalSemiring A
A₂ : Type u_4
inst✝³ : TopologicalSpace A₂
inst✝² : Semiring A₂
inst✝¹ : Algebra R A₂
inst✝ : TopologicalSemiring A₂
k : R
a : α
⊢ (k • 1) a = k • 1

tactic: rfl
state_before: α : Type u_1
inst✝⁹ : TopologicalSpace α
R : Type u_2
inst✝⁸ : CommSemiring R
A : Type u_3
inst✝⁷ : TopologicalSpace A
inst✝⁶ : Semiring A
inst✝⁵ : Algebra R A
inst✝⁴ : TopologicalSemiring A
A₂ : Type u_4
inst✝³ : TopologicalSpace A₂
inst✝² : Semiring A₂
inst✝¹ : Algebra R A₂
inst✝ : TopologicalSemiring A₂
k : R
a : α
⊢ (k • 1) a = k • 1
state_after: no goals