1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: AddCircle.continuousAt_equivIco
File: Mathlib/Topology/Instances/AddCircle.lean

tactic: induction x using QuotientAddGroup.induction_on'
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
x : AddCircle p
hx : x ≠ ↑a
⊢ ContinuousAt (⇑(equivIco p a)) x
state_after: case H
𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
x : AddCircle p
z✝ : 𝕜
hx : ↑z✝ ≠ ↑a
⊢ ContinuousAt ⇑(equivIco p a) ↑z✝

tactic: rw [ContinuousAt, Filter.Tendsto, QuotientAddGroup.nhds_eq, Filter.map_map]
state_before: case H
𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
x : AddCircle p
z✝ : 𝕜
hx : ↑z✝ ≠ ↑a
⊢ ContinuousAt ⇑(equivIco p a) ↑z✝
state_after: case H
𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
x : AddCircle p
z✝ : 𝕜
hx : ↑z✝ ≠ ↑a
⊢ Filter.map (⇑(equivIco p a) ∘ QuotientAddGroup.mk) (𝓝 z✝) ≤ 𝓝 ((equivIco p a) ↑z✝)

tactic: exact (continuousAt_toIcoMod hp.out a hx).codRestrict _
state_before: case H
𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
x : AddCircle p
z✝ : 𝕜
hx : ↑z✝ ≠ ↑a
⊢ Filter.map (⇑(equivIco p a) ∘ QuotientAddGroup.mk) (𝓝 z✝) ≤ 𝓝 ((equivIco p a) ↑z✝)
state_after: no goals
Theorem: CategoryTheory.exact_zero_left_of_mono
File: Mathlib/Algebra/Homology/Exact.lean

tactic: simp
state_before: V : Type u
inst✝⁵ : Category.{v, u} V
inst✝⁴ : HasImages V
A B C D : V
f : A ⟶ B
g : B ⟶ C
h : C ⟶ D
inst✝³ : HasZeroMorphisms V
inst✝² : HasEqualizers V
inst✝¹ : HasZeroObject V
inst✝ : Mono g
⊢ 0 ≫ g = 0
state_after: no goals
Theorem: CategoryTheory.Limits.imageSubobject_zero
File: Mathlib/CategoryTheory/Subobject/Limits.lean

tactic: simp
state_before: C : Type u
inst✝³ : Category.{v, u} C
X Y Z : C
f : X ⟶ Y
inst✝² : HasImage f
inst✝¹ : HasZeroMorphisms C
inst✝ : HasZeroObject C
A B : C
⊢ (imageSubobjectIso 0 ≪≫ imageZero ≪≫ botCoeIsoZero.symm).hom ≫ ⊥.arrow = (imageSubobject 0).arrow
state_after: no goals
Theorem: TruncatedWittVector.coeff_zero
File: Mathlib/RingTheory/WittVector/Truncated.lean

tactic: show coeff i (truncateFun _ 0 : TruncatedWittVector p n R) = 0
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
i : Fin n
⊢ coeff i 0 = 0
state_after: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
i : Fin n
⊢ coeff i (truncateFun n 0) = 0

tactic: rw [coeff_truncateFun, WittVector.zero_coeff]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
i : Fin n
⊢ coeff i (truncateFun n 0) = 0
state_after: no goals
Theorem: Finset.mul_card_image_le_card_of_maps_to
File: Mathlib/Algebra/Order/BigOperators/Group/Finset.lean

tactic: simp [mul_comm]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝ : DecidableEq β
f : α → β
s : Finset α
t : Finset β
Hf : ∀ a ∈ s, f a ∈ t
n : ℕ
hn : ∀ a ∈ t, n ≤ (filter (fun x => f x = a) s).card
⊢ n * t.card = ∑ _a ∈ t, n
state_after: no goals

tactic: rw [← card_eq_sum_card_fiberwise Hf]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝ : DecidableEq β
f : α → β
s : Finset α
t : Finset β
Hf : ∀ a ∈ s, f a ∈ t
n : ℕ
hn : ∀ a ∈ t, n ≤ (filter (fun x => f x = a) s).card
⊢ ∑ a ∈ t, (filter (fun x => f x = a) s).card = s.card
state_after: no goals
Theorem: IsAdjoinRoot.lift_root
File: Mathlib/RingTheory/IsAdjoinRoot.lean

tactic: rw [← h.map_X, lift_map, eval₂_X]
state_before: R : Type u
S : Type v
inst✝³ : CommRing R
inst✝² : Ring S
f : R[X]
inst✝¹ : Algebra R S
T : Type u_1
inst✝ : CommRing T
i : R →+* T
x : T
hx : eval₂ i x f = 0
h : IsAdjoinRoot S f
⊢ (lift i x hx h) h.root = x
state_after: no goals
Theorem: HomotopyCategory.Pretriangulated.distinguished_cocone_triangle
File: Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean

tactic: obtain ⟨X⟩ := X
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
X Y : HomotopyCategory C (ComplexShape.up ℤ)
f : X ⟶ Y
⊢ ∃ Z g h, Triangle.mk f g h ∈ distinguishedTriangles C
state_after: case mk
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
Y : HomotopyCategory C (ComplexShape.up ℤ)
X : HomologicalComplex C (ComplexShape.up ℤ)
f : { as := X } ⟶ Y
⊢ ∃ Z g h, Triangle.mk f g h ∈ distinguishedTriangles C

tactic: obtain ⟨Y⟩ := Y
state_before: case mk
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
Y : HomotopyCategory C (ComplexShape.up ℤ)
X : HomologicalComplex C (ComplexShape.up ℤ)
f : { as := X } ⟶ Y
⊢ ∃ Z g h, Triangle.mk f g h ∈ distinguishedTriangles C
state_after: case mk.mk
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
X Y : HomologicalComplex C (ComplexShape.up ℤ)
f : { as := X } ⟶ { as := Y }
⊢ ∃ Z g h, Triangle.mk f g h ∈ distinguishedTriangles C

tactic: obtain ⟨f, rfl⟩ := (quotient _ _).map_surjective f
state_before: case mk.mk
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
X Y : HomologicalComplex C (ComplexShape.up ℤ)
f : { as := X } ⟶ { as := Y }
⊢ ∃ Z g h, Triangle.mk f g h ∈ distinguishedTriangles C
state_after: case mk.mk.intro
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
X Y : HomologicalComplex C (ComplexShape.up ℤ)
f : X ⟶ Y
⊢ ∃ Z g h, Triangle.mk ((quotient C (ComplexShape.up ℤ)).map f) g h ∈ distinguishedTriangles C

tactic: exact ⟨_, _, _, ⟨_, _, f, ⟨Iso.refl _⟩⟩⟩
state_before: case mk.mk.intro
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
X Y : HomologicalComplex C (ComplexShape.up ℤ)
f : X ⟶ Y
⊢ ∃ Z g h, Triangle.mk ((quotient C (ComplexShape.up ℤ)).map f) g h ∈ distinguishedTriangles C
state_after: no goals
Theorem: Commute.inv_sub_inv
File: Mathlib/Algebra/Field/Basic.lean

tactic: simp only [inv_eq_one_div, (Commute.one_right a).div_sub_div hab ha hb, one_mul, mul_one]
state_before: α : Type u_1
β : Type u_2
K : Type u_3
inst✝ : DivisionRing K
a b c d : K
hab : Commute a b
ha : a ≠ 0
hb : b ≠ 0
⊢ a⁻¹ - b⁻¹ = (b - a) / (a * b)
state_after: no goals
Theorem: Ideal.map_eq_top_or_isMaximal_of_surjective
File: Mathlib/RingTheory/Ideal/Maps.lean

tactic: refine or_iff_not_imp_left.2 fun ne_top => ⟨⟨fun h => ne_top h, fun J hJ => ?_⟩⟩
state_before: R : Type u
S : Type v
F : Type u_1
inst✝³ : Ring R
inst✝² : Ring S
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
I✝ : Ideal R
hf : Function.Surjective ⇑f
I : Ideal R
H : I.IsMaximal
⊢ map f I = ⊤ ∨ (map f I).IsMaximal
state_after: R : Type u
S : Type v
F : Type u_1
inst✝³ : Ring R
inst✝² : Ring S
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
I✝ : Ideal R
hf : Function.Surjective ⇑f
I : Ideal R
H : I.IsMaximal
ne_top : ¬map f I = ⊤
J : Ideal S
hJ : map f I < J
⊢ J = ⊤

tactic: refine
  (relIsoOfSurjective f hf).injective
    (Subtype.ext_iff.2 (Eq.trans (H.1.2 (comap f J) (lt_of_le_of_ne ?_ ?_)) comap_top.symm))
state_before: R : Type u
S : Type v
F : Type u_1
inst✝³ : Ring R
inst✝² : Ring S
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
I✝ : Ideal R
hf : Function.Surjective ⇑f
I : Ideal R
H : I.IsMaximal
ne_top : ¬map f I = ⊤
J : Ideal S
hJ : map f I < J
⊢ J = ⊤
state_after: case refine_1
R : Type u
S : Type v
F : Type u_1
inst✝³ : Ring R
inst✝² : Ring S
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
I✝ : Ideal R
hf : Function.Surjective ⇑f
I : Ideal R
H : I.IsMaximal
ne_top : ¬map f I = ⊤
J : Ideal S
hJ : map f I < J
⊢ I ≤ comap f J

case refine_2
R : Type u
S : Type v
F : Type u_1
inst✝³ : Ring R
inst✝² : Ring S
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
I✝ : Ideal R
hf : Function.Surjective ⇑f
I : Ideal R
H : I.IsMaximal
ne_top : ¬map f I = ⊤
J : Ideal S
hJ : map f I < J
⊢ I ≠ comap f J

tactic: exact map_le_iff_le_comap.1 (le_of_lt hJ)
state_before: case refine_1
R : Type u
S : Type v
F : Type u_1
inst✝³ : Ring R
inst✝² : Ring S
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
I✝ : Ideal R
hf : Function.Surjective ⇑f
I : Ideal R
H : I.IsMaximal
ne_top : ¬map f I = ⊤
J : Ideal S
hJ : map f I < J
⊢ I ≤ comap f J
state_after: no goals

tactic: exact fun h => hJ.right (le_map_of_comap_le_of_surjective f hf (le_of_eq h.symm))
state_before: case refine_2
R : Type u
S : Type v
F : Type u_1
inst✝³ : Ring R
inst✝² : Ring S
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
I✝ : Ideal R
hf : Function.Surjective ⇑f
I : Ideal R
H : I.IsMaximal
ne_top : ¬map f I = ⊤
J : Ideal S
hJ : map f I < J
⊢ I ≠ comap f J
state_after: no goals
Theorem: Finsupp.update_eq_sub_add_single
File: Mathlib/Data/Finsupp/Defs.lean

tactic: rw [update_eq_erase_add_single, erase_eq_sub_single]
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✝ : AddGroup G
f : α →₀ G
a : α
b : G
⊢ f.update a b = f - single a (f a) + single a b
state_after: no goals
Theorem: SlashAction.neg_slash
File: Mathlib/NumberTheory/ModularForms/SlashActions.lean

tactic: rw [← SlashAction.add_slash, add_left_neg, SlashAction.zero_slash]
state_before: β : Type u_1
G : Type u_2
α : Type u_3
γ : Type u_4
inst✝³ : Group G
inst✝² : AddGroup α
inst✝¹ : SMul γ α
inst✝ : SlashAction β G α γ
k : β
g : G
a : α
⊢ (-a) ∣[k;γ] g + a ∣[k;γ] g = 0
state_after: no goals
Theorem: Path.delayReflLeft_one
File: Mathlib/Topology/Homotopy/HSpaces.lean

tactic: simp only [delayReflLeft, delayReflRight_one, Path.symm_symm]
state_before: X : Type u
inst✝ : TopologicalSpace X
x y : X
γ : Path x y
⊢ delayReflLeft 1 γ = γ
state_after: no goals
Theorem: MvPolynomial.mem_ideal_span_X_image
File: Mathlib/RingTheory/MvPolynomial/Ideal.lean

tactic: have := @mem_ideal_span_monomial_image σ R _ x ((fun i => Finsupp.single i 1) '' s)
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
x : MvPolynomial σ R
s : Set σ
⊢ x ∈ Ideal.span (X '' s) ↔ ∀ m ∈ x.support, ∃ i ∈ s, m i ≠ 0
state_after: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
x : MvPolynomial σ R
s : Set σ
this :
  x ∈ Ideal.span ((fun s => (monomial s) 1) '' ((fun i => Finsupp.single i 1) '' s)) ↔
    ∀ xi ∈ x.support, ∃ si ∈ (fun i => Finsupp.single i 1) '' s, si ≤ xi
⊢ x ∈ Ideal.span (X '' s) ↔ ∀ m ∈ x.support, ∃ i ∈ s, m i ≠ 0

tactic: rw [Set.image_image] at this
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
x : MvPolynomial σ R
s : Set σ
this :
  x ∈ Ideal.span ((fun s => (monomial s) 1) '' ((fun i => Finsupp.single i 1) '' s)) ↔
    ∀ xi ∈ x.support, ∃ si ∈ (fun i => Finsupp.single i 1) '' s, si ≤ xi
⊢ x ∈ Ideal.span (X '' s) ↔ ∀ m ∈ x.support, ∃ i ∈ s, m i ≠ 0
state_after: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
x : MvPolynomial σ R
s : Set σ
this :
  x ∈ Ideal.span ((fun x => (monomial (Finsupp.single x 1)) 1) '' s) ↔
    ∀ xi ∈ x.support, ∃ si ∈ (fun i => Finsupp.single i 1) '' s, si ≤ xi
⊢ x ∈ Ideal.span (X '' s) ↔ ∀ m ∈ x.support, ∃ i ∈ s, m i ≠ 0

tactic: refine this.trans ?_
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
x : MvPolynomial σ R
s : Set σ
this :
  x ∈ Ideal.span ((fun x => (monomial (Finsupp.single x 1)) 1) '' s) ↔
    ∀ xi ∈ x.support, ∃ si ∈ (fun i => Finsupp.single i 1) '' s, si ≤ xi
⊢ x ∈ Ideal.span (X '' s) ↔ ∀ m ∈ x.support, ∃ i ∈ s, m i ≠ 0
state_after: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
x : MvPolynomial σ R
s : Set σ
this :
  x ∈ Ideal.span ((fun x => (monomial (Finsupp.single x 1)) 1) '' s) ↔
    ∀ xi ∈ x.support, ∃ si ∈ (fun i => Finsupp.single i 1) '' s, si ≤ xi
⊢ (∀ xi ∈ x.support, ∃ si ∈ (fun i => Finsupp.single i 1) '' s, si ≤ xi) ↔ ∀ m ∈ x.support, ∃ i ∈ s, m i ≠ 0

tactic: simp [Nat.one_le_iff_ne_zero]
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
x : MvPolynomial σ R
s : Set σ
this :
  x ∈ Ideal.span ((fun x => (monomial (Finsupp.single x 1)) 1) '' s) ↔
    ∀ xi ∈ x.support, ∃ si ∈ (fun i => Finsupp.single i 1) '' s, si ≤ xi
⊢ (∀ xi ∈ x.support, ∃ si ∈ (fun i => Finsupp.single i 1) '' s, si ≤ xi) ↔ ∀ m ∈ x.support, ∃ i ∈ s, m i ≠ 0
state_after: no goals
Theorem: GroupFilterBasis.nhds_one_hasBasis
File: Mathlib/Topology/Algebra/FilterBasis.lean

tactic: rw [B.nhds_one_eq]
state_before: G : Type u
inst✝ : Group G
B✝ B : GroupFilterBasis G
⊢ (𝓝 1).HasBasis (fun V => V ∈ B) id
state_after: G : Type u
inst✝ : Group G
B✝ B : GroupFilterBasis G
⊢ toFilterBasis.filter.HasBasis (fun V => V ∈ B) id

tactic: exact B.toFilterBasis.hasBasis
state_before: G : Type u
inst✝ : Group G
B✝ B : GroupFilterBasis G
⊢ toFilterBasis.filter.HasBasis (fun V => V ∈ B) id
state_after: no goals
Theorem: Set.projIic_of_mem
File: Mathlib/Order/Interval/Set/ProjIcc.lean

tactic: simpa [projIic]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x : α
hx : x ∈ Iic b
⊢ projIic b x = ⟨x, hx⟩
state_after: no goals
Theorem: quasispectrum_eq_spectrum_union_zero
File: Mathlib/Algebra/Algebra/Quasispectrum.lean

tactic: convert quasispectrum_eq_spectrum_union R a
state_before: R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : Semifield R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
⊢ quasispectrum R a = spectrum R a ∪ {0}
state_after: case h.e'_3.h.e'_4
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : Semifield R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
⊢ {0} = {r | ¬IsUnit r}

tactic: ext x
state_before: case h.e'_3.h.e'_4
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : Semifield R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
⊢ {0} = {r | ¬IsUnit r}
state_after: case h.e'_3.h.e'_4.h
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : Semifield R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
x : R
⊢ x ∈ {0} ↔ x ∈ {r | ¬IsUnit r}

tactic: simp
state_before: case h.e'_3.h.e'_4.h
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : Semifield R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
x : R
⊢ x ∈ {0} ↔ x ∈ {r | ¬IsUnit r}
state_after: no goals
Theorem: Left.sign_neg
File: Mathlib/Data/Sign.lean

tactic: simp_rw [sign_apply, Left.neg_pos_iff, Left.neg_neg_iff]
state_before: α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
⊢ sign (-a) = -sign a
state_after: α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
⊢ (if a < 0 then 1 else if 0 < a then -1 else 0) = -if 0 < a then 1 else if a < 0 then -1 else 0

tactic: split_ifs with h h'
state_before: α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
⊢ (if a < 0 then 1 else if 0 < a then -1 else 0) = -if 0 < a then 1 else if a < 0 then -1 else 0
state_after: case pos
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : a < 0
h' : 0 < a
⊢ False

case neg
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : a < 0
h' : ¬0 < a
⊢ 1 = - -1

case pos
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : ¬a < 0
h✝ : 0 < a
⊢ -1 = -1

case neg
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : ¬a < 0
h✝ : ¬0 < a
⊢ 0 = -0

tactic: exact False.elim (lt_asymm h h')
state_before: case pos
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : a < 0
h' : 0 < a
⊢ False
state_after: no goals

tactic: simp
state_before: case neg
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : a < 0
h' : ¬0 < a
⊢ 1 = - -1
state_after: no goals

tactic: simp
state_before: case pos
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : ¬a < 0
h✝ : 0 < a
⊢ -1 = -1
state_after: no goals

tactic: simp
state_before: case neg
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : ¬a < 0
h✝ : ¬0 < a
⊢ 0 = -0
state_after: no goals
Theorem: AnalyticOn.eqOn_of_preconnected_of_frequently_eq
File: Mathlib/Analysis/Analytic/IsolatedZeros.lean

tactic: have hfg' : ∃ᶠ z in 𝓝[≠] z₀, (f - g) z = 0 :=
  hfg.mono fun z h => by rw [Pi.sub_apply, h, sub_self]
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : E
p q : FormalMultilinearSeries 𝕜 𝕜 E
f g : 𝕜 → E
n : ℕ
z z₀ : 𝕜
U : Set 𝕜
hf : AnalyticOn 𝕜 f U
hg : AnalyticOn 𝕜 g U
hU : IsPreconnected U
h₀ : z₀ ∈ U
hfg : ∃ᶠ (z : 𝕜) in 𝓝[≠] z₀, f z = g z
⊢ EqOn f g U
state_after: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : E
p q : FormalMultilinearSeries 𝕜 𝕜 E
f g : 𝕜 → E
n : ℕ
z z₀ : 𝕜
U : Set 𝕜
hf : AnalyticOn 𝕜 f U
hg : AnalyticOn 𝕜 g U
hU : IsPreconnected U
h₀ : z₀ ∈ U
hfg : ∃ᶠ (z : 𝕜) in 𝓝[≠] z₀, f z = g z
hfg' : ∃ᶠ (z : 𝕜) in 𝓝[≠] z₀, (f - g) z = 0
⊢ EqOn f g U

tactic: simpa [sub_eq_zero] using fun z hz =>
  (hf.sub hg).eqOn_zero_of_preconnected_of_frequently_eq_zero hU h₀ hfg' hz
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : E
p q : FormalMultilinearSeries 𝕜 𝕜 E
f g : 𝕜 → E
n : ℕ
z z₀ : 𝕜
U : Set 𝕜
hf : AnalyticOn 𝕜 f U
hg : AnalyticOn 𝕜 g U
hU : IsPreconnected U
h₀ : z₀ ∈ U
hfg : ∃ᶠ (z : 𝕜) in 𝓝[≠] z₀, f z = g z
hfg' : ∃ᶠ (z : 𝕜) in 𝓝[≠] z₀, (f - g) z = 0
⊢ EqOn f g U
state_after: no goals

tactic: rw [Pi.sub_apply, h, sub_self]
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : E
p q : FormalMultilinearSeries 𝕜 𝕜 E
f g : 𝕜 → E
n : ℕ
z✝ z₀ : 𝕜
U : Set 𝕜
hf : AnalyticOn 𝕜 f U
hg : AnalyticOn 𝕜 g U
hU : IsPreconnected U
h₀ : z₀ ∈ U
hfg : ∃ᶠ (z : 𝕜) in 𝓝[≠] z₀, f z = g z
z : 𝕜
h : f z = g z
⊢ (f - g) z = 0
state_after: no goals
Theorem: Nat.ascFactorial_lt_pow_add
File: Mathlib/Data/Nat/Factorial/Basic.lean

tactic: rintro ⟨⟩
state_before: n : ℕ
⊢ 2 ≤ 0 → (n + 1).ascFactorial 0 < (n + 0) ^ 0
state_after: no goals

tactic: intro
state_before: n : ℕ
⊢ 2 ≤ 1 → (n + 1).ascFactorial 1 < (n + 1) ^ 1
state_after: n : ℕ
a✝ : 2 ≤ 1
⊢ (n + 1).ascFactorial 1 < (n + 1) ^ 1

tactic: contradiction
state_before: n : ℕ
a✝ : 2 ≤ 1
⊢ (n + 1).ascFactorial 1 < (n + 1) ^ 1
state_after: no goals

tactic: rw [Nat.pow_succ, Nat.mul_comm, ascFactorial_succ, succ_add_eq_add_succ n (k + 1)]
state_before: n k : ℕ
x✝ : 2 ≤ k + 2
⊢ (n + 1).ascFactorial (k + 2) < (n + (k + 2)) ^ (k + 2)
state_after: n k : ℕ
x✝ : 2 ≤ k + 2
⊢ (n + (k + 1).succ) * (n + 1).ascFactorial (k + 1) < (n + (k + 2)) * (n + (k + 2)) ^ (k + 1)

tactic: exact Nat.mul_lt_mul_of_le_of_lt (le_refl _) (Nat.lt_of_le_of_lt (ascFactorial_le_pow_add n _)
  (Nat.pow_lt_pow_left (Nat.lt_succ_self _) k.succ_ne_zero)) (succ_pos _)
state_before: n k : ℕ
x✝ : 2 ≤ k + 2
⊢ (n + (k + 1).succ) * (n + 1).ascFactorial (k + 1) < (n + (k + 2)) * (n + (k + 2)) ^ (k + 1)
state_after: no goals
Theorem: Real.toNNReal_prod_of_nonneg
File: Mathlib/Data/NNReal/Basic.lean

tactic: rw [← coe_inj, NNReal.coe_prod, Real.coe_toNNReal _ (Finset.prod_nonneg hf)]
state_before: r r₁ r₂ : ℝ≥0
x y : ℝ
α : Type u_1
s : Finset α
f : α → ℝ
hf : ∀ a ∈ s, 0 ≤ f a
⊢ (∏ a ∈ s, f a).toNNReal = ∏ a ∈ s, (f a).toNNReal
state_after: r r₁ r₂ : ℝ≥0
x y : ℝ
α : Type u_1
s : Finset α
f : α → ℝ
hf : ∀ a ∈ s, 0 ≤ f a
⊢ ∏ i ∈ s, f i = ∏ a ∈ s, ↑(f a).toNNReal

tactic: exact Finset.prod_congr rfl fun x hxs => by rw [Real.coe_toNNReal _ (hf x hxs)]
state_before: r r₁ r₂ : ℝ≥0
x y : ℝ
α : Type u_1
s : Finset α
f : α → ℝ
hf : ∀ a ∈ s, 0 ≤ f a
⊢ ∏ i ∈ s, f i = ∏ a ∈ s, ↑(f a).toNNReal
state_after: no goals

tactic: rw [Real.coe_toNNReal _ (hf x hxs)]
state_before: r r₁ r₂ : ℝ≥0
x✝ y : ℝ
α : Type u_1
s : Finset α
f : α → ℝ
hf : ∀ a ∈ s, 0 ≤ f a
x : α
hxs : x ∈ s
⊢ f x = ↑(f x).toNNReal
state_after: no goals
Theorem: InnerProductSpace.unique_continuousLinearMapOfBilin
File: Mathlib/Analysis/InnerProductSpace/Dual.lean

tactic: refine ext_inner_right 𝕜 ?_
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : CompleteSpace E
B : E →L⋆[𝕜] E →L[𝕜] 𝕜
v f : E
is_lax_milgram : ∀ (w : E), ⟪f, w⟫_𝕜 = (B v) w
⊢ f = B♯ v
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : CompleteSpace E
B : E →L⋆[𝕜] E →L[𝕜] 𝕜
v f : E
is_lax_milgram : ∀ (w : E), ⟪f, w⟫_𝕜 = (B v) w
⊢ ∀ (v_1 : E), ⟪f, v_1⟫_𝕜 = ⟪B♯ v, v_1⟫_𝕜

tactic: intro w
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : CompleteSpace E
B : E →L⋆[𝕜] E →L[𝕜] 𝕜
v f : E
is_lax_milgram : ∀ (w : E), ⟪f, w⟫_𝕜 = (B v) w
⊢ ∀ (v_1 : E), ⟪f, v_1⟫_𝕜 = ⟪B♯ v, v_1⟫_𝕜
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : CompleteSpace E
B : E →L⋆[𝕜] E →L[𝕜] 𝕜
v f : E
is_lax_milgram : ∀ (w : E), ⟪f, w⟫_𝕜 = (B v) w
w : E
⊢ ⟪f, w⟫_𝕜 = ⟪B♯ v, w⟫_𝕜

tactic: rw [continuousLinearMapOfBilin_apply]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : CompleteSpace E
B : E →L⋆[𝕜] E →L[𝕜] 𝕜
v f : E
is_lax_milgram : ∀ (w : E), ⟪f, w⟫_𝕜 = (B v) w
w : E
⊢ ⟪f, w⟫_𝕜 = ⟪B♯ v, w⟫_𝕜
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : CompleteSpace E
B : E →L⋆[𝕜] E →L[𝕜] 𝕜
v f : E
is_lax_milgram : ∀ (w : E), ⟪f, w⟫_𝕜 = (B v) w
w : E
⊢ ⟪f, w⟫_𝕜 = (B v) w

tactic: exact is_lax_milgram w
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : CompleteSpace E
B : E →L⋆[𝕜] E →L[𝕜] 𝕜
v f : E
is_lax_milgram : ∀ (w : E), ⟪f, w⟫_𝕜 = (B v) w
w : E
⊢ ⟪f, w⟫_𝕜 = (B v) w
state_after: no goals