1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.lintegral_coe_le_coe_iff_integral_le
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: rw [lintegral_coe_eq_integral f hfi, ENNReal.ofReal, ENNReal.coe_le_coe,
  Real.toNNReal_le_iff_le_coe]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : SMulCommClass ℝ 𝕜 E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace ℝ F
inst✝⁴ : CompleteSpace F
G : Type u_5
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ≥0
hfi : Integrable (fun x => ↑(f x)) μ
b : ℝ≥0
⊢ ∫⁻ (a : α), ↑(f a) ∂μ ≤ ↑b ↔ ∫ (a : α), ↑(f a) ∂μ ≤ ↑b
state_after: no goals
Theorem: LieModule.iSup_ucs_eq_weightSpace_zero
File: Mathlib/Algebra/Lie/Weights/Basic.lean

tactic: obtain ⟨k, hk⟩ := (LieSubmodule.isNilpotent_iff_exists_self_le_ucs
  <| weightSpace M (0 : L → R)).mp inferInstance
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : LieRing L
inst✝⁶ : LieAlgebra R L
inst✝⁵ : LieAlgebra.IsNilpotent R L
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : IsNoetherian R M
⊢ ⨆ k, LieSubmodule.ucs k ⊥ = weightSpace M 0
state_after: case intro
K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : LieRing L
inst✝⁶ : LieAlgebra R L
inst✝⁵ : LieAlgebra.IsNilpotent R L
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : IsNoetherian R M
k : ℕ
hk : weightSpace M 0 ≤ LieSubmodule.ucs k ⊥
⊢ ⨆ k, LieSubmodule.ucs k ⊥ = weightSpace M 0

tactic: refine le_antisymm (iSup_ucs_le_weightSpace_zero R L M) (le_trans hk ?_)
state_before: case intro
K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : LieRing L
inst✝⁶ : LieAlgebra R L
inst✝⁵ : LieAlgebra.IsNilpotent R L
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : IsNoetherian R M
k : ℕ
hk : weightSpace M 0 ≤ LieSubmodule.ucs k ⊥
⊢ ⨆ k, LieSubmodule.ucs k ⊥ = weightSpace M 0
state_after: case intro
K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : LieRing L
inst✝⁶ : LieAlgebra R L
inst✝⁵ : LieAlgebra.IsNilpotent R L
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : IsNoetherian R M
k : ℕ
hk : weightSpace M 0 ≤ LieSubmodule.ucs k ⊥
⊢ LieSubmodule.ucs k ⊥ ≤ ⨆ k, LieSubmodule.ucs k ⊥

tactic: exact le_iSup (fun k ↦ (⊥ : LieSubmodule R L M).ucs k) k
state_before: case intro
K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : LieRing L
inst✝⁶ : LieAlgebra R L
inst✝⁵ : LieAlgebra.IsNilpotent R L
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : IsNoetherian R M
k : ℕ
hk : weightSpace M 0 ≤ LieSubmodule.ucs k ⊥
⊢ LieSubmodule.ucs k ⊥ ≤ ⨆ k, LieSubmodule.ucs k ⊥
state_after: no goals
Theorem: Substring.ValidFor.all
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: simp [Substring.all, h.any, List.all_eq_not_any_not]
state_before: l m r : List Char
f : Char → Bool
x✝ : Substring
h : ValidFor l m r x✝
⊢ x✝.all f = m.all f
state_after: no goals
Theorem: IsLocalization.eq_zero_of_fst_eq_zero
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: rw [hx, (algebraMap R S).map_zero] at h
state_before: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
z : S
x : R
y : ↥M
h : z * (algebraMap R S) ↑y = (algebraMap R S) x
hx : x = 0
⊢ z = 0
state_after: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
z : S
x : R
y : ↥M
h : z * (algebraMap R S) ↑y = 0
hx : x = 0
⊢ z = 0

tactic: exact (IsUnit.mul_left_eq_zero (IsLocalization.map_units S y)).1 h
state_before: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
z : S
x : R
y : ↥M
h : z * (algebraMap R S) ↑y = 0
hx : x = 0
⊢ z = 0
state_after: no goals
Theorem: FormalMultilinearSeries.leftInv_coeff_one
File: Mathlib/Analysis/Analytic/Inverse.lean

tactic: rw [leftInv]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
⊢ p.leftInv i 1 = (continuousMultilinearCurryFin1 𝕜 F E).symm ↑i.symm
state_after: no goals
Theorem: CategoryTheory.Limits.kernelSubobject_arrow
File: Mathlib/CategoryTheory/Subobject/Limits.lean

tactic: simp [kernelSubobjectIso]
state_before: C : Type u
inst✝² : Category.{v, u} C
X Y Z : C
inst✝¹ : HasZeroMorphisms C
f : X ⟶ Y
inst✝ : HasKernel f
⊢ (kernelSubobjectIso f).hom ≫ kernel.ι f = (kernelSubobject f).arrow
state_after: no goals
Theorem: IsClosed.exists_nat_bool_injection_of_not_countable
File: Mathlib/Topology/MetricSpace/Perfect.lean

tactic: letI := upgradePolishSpace α
state_before: α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : PolishSpace α
C : Set α
hC : IsClosed C
hunc : ¬C.Countable
⊢ ∃ f, range f ⊆ C ∧ Continuous f ∧ Function.Injective f
state_after: α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : PolishSpace α
C : Set α
hC : IsClosed C
hunc : ¬C.Countable
this : UpgradedPolishSpace α := upgradePolishSpace α
⊢ ∃ f, range f ⊆ C ∧ Continuous f ∧ Function.Injective f

tactic: obtain ⟨D, hD, Dnonempty, hDC⟩ := exists_perfect_nonempty_of_isClosed_of_not_countable hC hunc
state_before: α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : PolishSpace α
C : Set α
hC : IsClosed C
hunc : ¬C.Countable
this : UpgradedPolishSpace α := upgradePolishSpace α
⊢ ∃ f, range f ⊆ C ∧ Continuous f ∧ Function.Injective f
state_after: case intro.intro.intro
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : PolishSpace α
C : Set α
hC : IsClosed C
hunc : ¬C.Countable
this : UpgradedPolishSpace α := upgradePolishSpace α
D : Set α
hD : Perfect D
Dnonempty : D.Nonempty
hDC : D ⊆ C
⊢ ∃ f, range f ⊆ C ∧ Continuous f ∧ Function.Injective f

tactic: obtain ⟨f, hfD, hf⟩ := hD.exists_nat_bool_injection Dnonempty
state_before: case intro.intro.intro
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : PolishSpace α
C : Set α
hC : IsClosed C
hunc : ¬C.Countable
this : UpgradedPolishSpace α := upgradePolishSpace α
D : Set α
hD : Perfect D
Dnonempty : D.Nonempty
hDC : D ⊆ C
⊢ ∃ f, range f ⊆ C ∧ Continuous f ∧ Function.Injective f
state_after: case intro.intro.intro.intro.intro
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : PolishSpace α
C : Set α
hC : IsClosed C
hunc : ¬C.Countable
this : UpgradedPolishSpace α := upgradePolishSpace α
D : Set α
hD : Perfect D
Dnonempty : D.Nonempty
hDC : D ⊆ C
f : (ℕ → Bool) → α
hfD : range f ⊆ D
hf : Continuous f ∧ Function.Injective f
⊢ ∃ f, range f ⊆ C ∧ Continuous f ∧ Function.Injective f

tactic: exact ⟨f, hfD.trans hDC, hf⟩
state_before: case intro.intro.intro.intro.intro
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : PolishSpace α
C : Set α
hC : IsClosed C
hunc : ¬C.Countable
this : UpgradedPolishSpace α := upgradePolishSpace α
D : Set α
hD : Perfect D
Dnonempty : D.Nonempty
hDC : D ⊆ C
f : (ℕ → Bool) → α
hfD : range f ⊆ D
hf : Continuous f ∧ Function.Injective f
⊢ ∃ f, range f ⊆ C ∧ Continuous f ∧ Function.Injective f
state_after: no goals
Theorem: Finset.coe_disjUnion
File: Mathlib/Data/Finset/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s t : Finset α
h : _root_.Disjoint s t
⊢ ∀ (x : α), x ∈ ↑(s.disjUnion t h) ↔ x ∈ ↑s ∪ ↑t
state_after: no goals
Theorem: CochainComplex.HomComplex.Cochain.comp_assoc_of_second_degree_eq_neg_third_degree
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean

tactic: rw [← h₁₂, add_assoc, neg_add_self, add_zero]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K (-n₂)
z₃ : Cochain K L n₂
h₁₂ : n₁ + -n₂ = n₁₂
⊢ n₁₂ + n₂ = n₁
state_after: no goals

tactic: omega
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K (-n₂)
z₃ : Cochain K L n₂
h₁₂ : n₁ + -n₂ = n₁₂
⊢ n₁ + -n₂ + n₂ = n₁
state_after: no goals
Theorem: FirstOrder.Language.Term.realize_mem
File: Mathlib/ModelTheory/Substructures.lean

tactic: induction' t with a n f ts ih
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
α : Type u_3
t : L.Term α
xs : α → M
h : ∀ (a : α), xs a ∈ S
⊢ realize xs t ∈ S
state_after: case var
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
α : Type u_3
xs : α → M
h : ∀ (a : α), xs a ∈ S
a : α
⊢ realize xs (var a) ∈ S

case func
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
α : Type u_3
xs : α → M
h : ∀ (a : α), xs a ∈ S
n : ℕ
f : L.Functions n
ts : Fin n → L.Term α
ih : ∀ (a : Fin n), realize xs (ts a) ∈ S
⊢ realize xs (func f ts) ∈ S

tactic: exact h a
state_before: case var
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
α : Type u_3
xs : α → M
h : ∀ (a : α), xs a ∈ S
a : α
⊢ realize xs (var a) ∈ S
state_after: no goals

tactic: exact Substructure.fun_mem _ _ _ ih
state_before: case func
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
α : Type u_3
xs : α → M
h : ∀ (a : α), xs a ∈ S
n : ℕ
f : L.Functions n
ts : Fin n → L.Term α
ih : ∀ (a : Fin n), realize xs (ts a) ∈ S
⊢ realize xs (func f ts) ∈ S
state_after: no goals
Theorem: Rat.divInt_le_divInt
File: Mathlib/Algebra/Order/Ring/Rat.lean

tactic: rw [Rat.le_iff_sub_nonneg, ← sub_nonneg (α := ℤ)]
state_before: a✝ b✝ c✝ p q : ℚ
a b c d : ℤ
b0 : 0 < b
d0 : 0 < d
⊢ a /. b ≤ c /. d ↔ a * d ≤ c * b
state_after: a✝ b✝ c✝ p q : ℚ
a b c d : ℤ
b0 : 0 < b
d0 : 0 < d
⊢ 0 ≤ c /. d - a /. b ↔ 0 ≤ c * b - a * d

tactic: simp [sub_eq_add_neg, ne_of_gt b0, ne_of_gt d0, mul_pos d0 b0]
state_before: a✝ b✝ c✝ p q : ℚ
a b c d : ℤ
b0 : 0 < b
d0 : 0 < d
⊢ 0 ≤ c /. d - a /. b ↔ 0 ≤ c * b - a * d
state_after: no goals
Theorem: CategoryTheory.Mat_.additiveObjIsoBiproduct_naturality'
File: Mathlib/CategoryTheory/Preadditive/Mat.lean

tactic: rw [Iso.inv_comp_eq, ← Category.assoc, Iso.eq_comp_inv, additiveObjIsoBiproduct_naturality]
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : Preadditive C
D : Type u₁
inst✝³ : Category.{v₁, u₁} D
inst✝² : Preadditive D
inst✝¹ : HasFiniteBiproducts D
F : Mat_ C ⥤ D
inst✝ : F.Additive
M N : Mat_ C
f : M ⟶ N
⊢ (additiveObjIsoBiproduct F M).inv ≫ F.map f =
    (biproduct.matrix fun i j => F.map ((embedding C).map (f i j))) ≫ (additiveObjIsoBiproduct F N).inv
state_after: no goals
Theorem: Fin.prod_univ_two
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: simp [prod_univ_succ]
state_before: α : Type u_1
β : Type u_2
inst✝ : CommMonoid β
f : Fin 2 → β
⊢ ∏ i : Fin 2, f i = f 0 * f 1
state_after: no goals
Theorem: DFinsupp.support_neg
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: ext i
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → AddGroup (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
f : Π₀ (i : ι), β i
⊢ (-f).support = f.support
state_after: case a
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → AddGroup (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
f : Π₀ (i : ι), β i
i : ι
⊢ i ∈ (-f).support ↔ i ∈ f.support

tactic: simp
state_before: case a
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → AddGroup (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
f : Π₀ (i : ι), β i
i : ι
⊢ i ∈ (-f).support ↔ i ∈ f.support
state_after: no goals
Theorem: Rat.comap_cast_atTop
File: Mathlib/Order/Filter/Archimedean.lean

tactic: simpa
state_before: α : Type u_1
R : Type u_2
inst✝¹ : LinearOrderedField R
inst✝ : Archimedean R
r : R
n : ℕ
hn : r ≤ ↑n
⊢ r ≤ ↑↑n
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.addY_smul
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: simp only [addY, negY, addX_smul, negAddY_smul, addZ_smul, fin3_def_ext]
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → R
u v : R
⊢ W'.addY (u • P) (v • Q) = ((u * v) ^ 2) ^ 3 * W'.addY P Q
state_after: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → R
u v : R
⊢ -(((u * v) ^ 2) ^ 3 * W'.negAddY P Q) - W'.a₁ * (((u * v) ^ 2) ^ 2 * W'.addX P Q) * ((u * v) ^ 2 * addZ P Q) -
      W'.a₃ * ((u * v) ^ 2 * addZ P Q) ^ 3 =
    ((u * v) ^ 2) ^ 3 * (-W'.negAddY P Q - W'.a₁ * W'.addX P Q * addZ P Q - W'.a₃ * addZ P Q ^ 3)

tactic: ring1
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → R
u v : R
⊢ -(((u * v) ^ 2) ^ 3 * W'.negAddY P Q) - W'.a₁ * (((u * v) ^ 2) ^ 2 * W'.addX P Q) * ((u * v) ^ 2 * addZ P Q) -
      W'.a₃ * ((u * v) ^ 2 * addZ P Q) ^ 3 =
    ((u * v) ^ 2) ^ 3 * (-W'.negAddY P Q - W'.a₁ * W'.addX P Q * addZ P Q - W'.a₃ * addZ P Q ^ 3)
state_after: no goals
Theorem: NormedAddGroupHom.SurjectiveOnWith.exists_pos
File: Mathlib/Analysis/Normed/Group/Hom.lean

tactic: refine ⟨|C| + 1, ?_, ?_⟩
state_before: V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f✝ g f : NormedAddGroupHom V₁ V₂
K : AddSubgroup V₂
C : ℝ
h : f.SurjectiveOnWith K C
⊢ ∃ C' > 0, f.SurjectiveOnWith K C'
state_after: case refine_1
V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f✝ g f : NormedAddGroupHom V₁ V₂
K : AddSubgroup V₂
C : ℝ
h : f.SurjectiveOnWith K C
⊢ |C| + 1 > 0

case refine_2
V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f✝ g f : NormedAddGroupHom V₁ V₂
K : AddSubgroup V₂
C : ℝ
h : f.SurjectiveOnWith K C
⊢ f.SurjectiveOnWith K (|C| + 1)

tactic: linarith [abs_nonneg C]
state_before: case refine_1
V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f✝ g f : NormedAddGroupHom V₁ V₂
K : AddSubgroup V₂
C : ℝ
h : f.SurjectiveOnWith K C
⊢ |C| + 1 > 0
state_after: no goals

tactic: apply h.mono
state_before: case refine_2
V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f✝ g f : NormedAddGroupHom V₁ V₂
K : AddSubgroup V₂
C : ℝ
h : f.SurjectiveOnWith K C
⊢ f.SurjectiveOnWith K (|C| + 1)
state_after: case refine_2
V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f✝ g f : NormedAddGroupHom V₁ V₂
K : AddSubgroup V₂
C : ℝ
h : f.SurjectiveOnWith K C
⊢ C ≤ |C| + 1

tactic: linarith [le_abs_self C]
state_before: case refine_2
V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f✝ g f : NormedAddGroupHom V₁ V₂
K : AddSubgroup V₂
C : ℝ
h : f.SurjectiveOnWith K C
⊢ C ≤ |C| + 1
state_after: no goals
Theorem: Doset.bot_rel_eq_leftRel
File: Mathlib/GroupTheory/DoubleCoset.lean

tactic: ext a b
state_before: G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
⊢ (setoid ↑⊥ ↑H).Rel = (QuotientGroup.leftRel H).Rel
state_after: case h.h.a
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ (setoid ↑⊥ ↑H).Rel a b ↔ (QuotientGroup.leftRel H).Rel a b

tactic: rw [rel_iff, Setoid.Rel, QuotientGroup.leftRel_apply]
state_before: case h.h.a
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ (setoid ↑⊥ ↑H).Rel a b ↔ (QuotientGroup.leftRel H).Rel a b
state_after: case h.h.a
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ (∃ a_1 ∈ ⊥, ∃ b_1 ∈ H, b = a_1 * a * b_1) ↔ a⁻¹ * b ∈ H

tactic: constructor
state_before: case h.h.a
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ (∃ a_1 ∈ ⊥, ∃ b_1 ∈ H, b = a_1 * a * b_1) ↔ a⁻¹ * b ∈ H
state_after: case h.h.a.mp
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ (∃ a_1 ∈ ⊥, ∃ b_1 ∈ H, b = a_1 * a * b_1) → a⁻¹ * b ∈ H

case h.h.a.mpr
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ a⁻¹ * b ∈ H → ∃ a_2 ∈ ⊥, ∃ b_1 ∈ H, b = a_2 * a * b_1

tactic: rintro ⟨a, rfl : a = 1, b, hb, rfl⟩
state_before: case h.h.a.mp
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ (∃ a_1 ∈ ⊥, ∃ b_1 ∈ H, b = a_1 * a * b_1) → a⁻¹ * b ∈ H
state_after: case h.h.a.mp.intro.intro.intro.intro
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
hb : b ∈ H
⊢ a⁻¹ * (1 * a * b) ∈ H

tactic: rwa [one_mul, inv_mul_cancel_left]
state_before: case h.h.a.mp.intro.intro.intro.intro
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
hb : b ∈ H
⊢ a⁻¹ * (1 * a * b) ∈ H
state_after: no goals

tactic: rintro (h : a⁻¹ * b ∈ H)
state_before: case h.h.a.mpr
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ a⁻¹ * b ∈ H → ∃ a_2 ∈ ⊥, ∃ b_1 ∈ H, b = a_2 * a * b_1
state_after: case h.h.a.mpr
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
h : a⁻¹ * b ∈ H
⊢ ∃ a_1 ∈ ⊥, ∃ b_1 ∈ H, b = a_1 * a * b_1

tactic: exact ⟨1, rfl, a⁻¹ * b, h, by rw [one_mul, mul_inv_cancel_left]⟩
state_before: case h.h.a.mpr
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
h : a⁻¹ * b ∈ H
⊢ ∃ a_1 ∈ ⊥, ∃ b_1 ∈ H, b = a_1 * a * b_1
state_after: no goals

tactic: rw [one_mul, mul_inv_cancel_left]
state_before: G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
h : a⁻¹ * b ∈ H
⊢ b = 1 * a * (a⁻¹ * b)
state_after: no goals
Theorem: SetTheory.PGame.Impartial.exists_left_move_equiv_iff_fuzzy_zero
File: Mathlib/SetTheory/Game/Impartial.lean

tactic: refine ⟨fun ⟨i, hi⟩ => (fuzzy_zero_iff_gf G).2 (lf_of_le_moveLeft hi.2), fun hn => ?_⟩
state_before: G : PGame
inst✝ : G.Impartial
⊢ (∃ i, G.moveLeft i ≈ 0) ↔ G ‖ 0
state_after: G : PGame
inst✝ : G.Impartial
hn : G ‖ 0
⊢ ∃ i, G.moveLeft i ≈ 0

tactic: rw [fuzzy_zero_iff_gf G, zero_lf_le] at hn
state_before: G : PGame
inst✝ : G.Impartial
hn : G ‖ 0
⊢ ∃ i, G.moveLeft i ≈ 0
state_after: G : PGame
inst✝ : G.Impartial
hn : ∃ i, 0 ≤ G.moveLeft i
⊢ ∃ i, G.moveLeft i ≈ 0

tactic: cases' hn with i hi
state_before: G : PGame
inst✝ : G.Impartial
hn : ∃ i, 0 ≤ G.moveLeft i
⊢ ∃ i, G.moveLeft i ≈ 0
state_after: case intro
G : PGame
inst✝ : G.Impartial
i : G.LeftMoves
hi : 0 ≤ G.moveLeft i
⊢ ∃ i, G.moveLeft i ≈ 0

tactic: exact ⟨i, (equiv_zero_iff_ge _).2 hi⟩
state_before: case intro
G : PGame
inst✝ : G.Impartial
i : G.LeftMoves
hi : 0 ≤ G.moveLeft i
⊢ ∃ i, G.moveLeft i ≈ 0
state_after: no goals
Theorem: Algebra.discr_isIntegral
File: Mathlib/RingTheory/Discriminant.lean

tactic: classical
rw [discr_def]
exact IsIntegral.det fun i j ↦ isIntegral_trace ((h i).mul (h j))
state_before: A : Type u
B : Type v
C : Type z
ι : Type w
inst✝¹⁹ : DecidableEq ι
inst✝¹⁸ : CommRing A
inst✝¹⁷ : CommRing B
inst✝¹⁶ : Algebra A B
inst✝¹⁵ : CommRing C
inst✝¹⁴ : Algebra A C
ι' : Type u_1
inst✝¹³ : Fintype ι'
inst✝¹² : Fintype ι
inst✝¹¹ : DecidableEq ι'
K : Type u
L : Type v
E : Type z
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Field E
inst✝⁷ : Algebra K L
inst✝⁶ : Algebra K E
inst✝⁵ : Module.Finite K L
inst✝⁴ : IsAlgClosed E
b✝ : ι → L
pb : PowerBasis K L
R : Type z
inst✝³ : CommRing R
inst✝² : Algebra R K
inst✝¹ : Algebra R L
inst✝ : IsScalarTower R K L
b : ι → L
h : ∀ (i : ι), IsIntegral R (b i)
⊢ IsIntegral R (discr K b)
state_after: no goals

tactic: rw [discr_def]
state_before: A : Type u
B : Type v
C : Type z
ι : Type w
inst✝¹⁹ : DecidableEq ι
inst✝¹⁸ : CommRing A
inst✝¹⁷ : CommRing B
inst✝¹⁶ : Algebra A B
inst✝¹⁵ : CommRing C
inst✝¹⁴ : Algebra A C
ι' : Type u_1
inst✝¹³ : Fintype ι'
inst✝¹² : Fintype ι
inst✝¹¹ : DecidableEq ι'
K : Type u
L : Type v
E : Type z
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Field E
inst✝⁷ : Algebra K L
inst✝⁶ : Algebra K E
inst✝⁵ : Module.Finite K L
inst✝⁴ : IsAlgClosed E
b✝ : ι → L
pb : PowerBasis K L
R : Type z
inst✝³ : CommRing R
inst✝² : Algebra R K
inst✝¹ : Algebra R L
inst✝ : IsScalarTower R K L
b : ι → L
h : ∀ (i : ι), IsIntegral R (b i)
⊢ IsIntegral R (discr K b)
state_after: A : Type u
B : Type v
C : Type z
ι : Type w
inst✝¹⁹ : DecidableEq ι
inst✝¹⁸ : CommRing A
inst✝¹⁷ : CommRing B
inst✝¹⁶ : Algebra A B
inst✝¹⁵ : CommRing C
inst✝¹⁴ : Algebra A C
ι' : Type u_1
inst✝¹³ : Fintype ι'
inst✝¹² : Fintype ι
inst✝¹¹ : DecidableEq ι'
K : Type u
L : Type v
E : Type z
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Field E
inst✝⁷ : Algebra K L
inst✝⁶ : Algebra K E
inst✝⁵ : Module.Finite K L
inst✝⁴ : IsAlgClosed E
b✝ : ι → L
pb : PowerBasis K L
R : Type z
inst✝³ : CommRing R
inst✝² : Algebra R K
inst✝¹ : Algebra R L
inst✝ : IsScalarTower R K L
b : ι → L
h : ∀ (i : ι), IsIntegral R (b i)
⊢ IsIntegral R (traceMatrix K b).det

tactic: exact IsIntegral.det fun i j ↦ isIntegral_trace ((h i).mul (h j))
state_before: A : Type u
B : Type v
C : Type z
ι : Type w
inst✝¹⁹ : DecidableEq ι
inst✝¹⁸ : CommRing A
inst✝¹⁷ : CommRing B
inst✝¹⁶ : Algebra A B
inst✝¹⁵ : CommRing C
inst✝¹⁴ : Algebra A C
ι' : Type u_1
inst✝¹³ : Fintype ι'
inst✝¹² : Fintype ι
inst✝¹¹ : DecidableEq ι'
K : Type u
L : Type v
E : Type z
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Field E
inst✝⁷ : Algebra K L
inst✝⁶ : Algebra K E
inst✝⁵ : Module.Finite K L
inst✝⁴ : IsAlgClosed E
b✝ : ι → L
pb : PowerBasis K L
R : Type z
inst✝³ : CommRing R
inst✝² : Algebra R K
inst✝¹ : Algebra R L
inst✝ : IsScalarTower R K L
b : ι → L
h : ∀ (i : ι), IsIntegral R (b i)
⊢ IsIntegral R (traceMatrix K b).det
state_after: no goals
Theorem: Module.preReflection_apply_self
File: Mathlib/LinearAlgebra/Reflection.lean

tactic: rw [preReflection_apply, h, two_smul]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x : M
f : Dual R M
y : M
h : f x = 2
⊢ (preReflection x f) x = -x
state_after: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x : M
f : Dual R M
y : M
h : f x = 2
⊢ x - (x + x) = -x

tactic: abel
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x : M
f : Dual R M
y : M
h : f x = 2
⊢ x - (x + x) = -x
state_after: no goals