1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: finrank_span_eq_card
File: Mathlib/LinearAlgebra/Dimension/Constructions.lean

tactic: have : Module.rank R (span R (Set.range b)) = #(Set.range b) := rank_span hb
state_before: R S : Type u
M : Type v
M' : Type v'
M₁ : Type v
ι✝ : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type u_1
inst✝¹⁰ : Ring R
inst✝⁹ : CommRing S
inst✝⁸ : AddCommGroup M
inst✝⁷ : AddCommGroup M'
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : Module R M
inst✝⁴ : Module R M'
inst✝³ : Module R M₁
inst✝² : StrongRankCondition R
inst✝¹ : Nontrivial R
ι : Type u_2
inst✝ : Fintype ι
b : ι → M
hb : LinearIndependent R b
⊢ Module.rank R ↥(span R (range b)) = ↑(Fintype.card ι)
state_after: R S : Type u
M : Type v
M' : Type v'
M₁ : Type v
ι✝ : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type u_1
inst✝¹⁰ : Ring R
inst✝⁹ : CommRing S
inst✝⁸ : AddCommGroup M
inst✝⁷ : AddCommGroup M'
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : Module R M
inst✝⁴ : Module R M'
inst✝³ : Module R M₁
inst✝² : StrongRankCondition R
inst✝¹ : Nontrivial R
ι : Type u_2
inst✝ : Fintype ι
b : ι → M
hb : LinearIndependent R b
this : Module.rank R ↥(span R (range b)) = #↑(range b)
⊢ Module.rank R ↥(span R (range b)) = ↑(Fintype.card ι)

tactic: rwa [← lift_inj, mk_range_eq_of_injective hb.injective, Cardinal.mk_fintype, lift_natCast,
  lift_eq_nat_iff] at this
state_before: R S : Type u
M : Type v
M' : Type v'
M₁ : Type v
ι✝ : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type u_1
inst✝¹⁰ : Ring R
inst✝⁹ : CommRing S
inst✝⁸ : AddCommGroup M
inst✝⁷ : AddCommGroup M'
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : Module R M
inst✝⁴ : Module R M'
inst✝³ : Module R M₁
inst✝² : StrongRankCondition R
inst✝¹ : Nontrivial R
ι : Type u_2
inst✝ : Fintype ι
b : ι → M
hb : LinearIndependent R b
this : Module.rank R ↥(span R (range b)) = #↑(range b)
⊢ Module.rank R ↥(span R (range b)) = ↑(Fintype.card ι)
state_after: no goals
Theorem: EllipticCurve.ofJ_1728_of_two_ne_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean

tactic: by_cases h3 : (3 : F) = 0
state_before: R : Type u
inst✝² : CommRing R
E : EllipticCurve R
F : Type u
inst✝¹ : Field F
j : F
inst✝ : DecidableEq F
h2 : NeZero 2
⊢ ofJ 1728 = ofJ1728 F
state_after: case pos
R : Type u
inst✝² : CommRing R
E : EllipticCurve R
F : Type u
inst✝¹ : Field F
j : F
inst✝ : DecidableEq F
h2 : NeZero 2
h3 : 3 = 0
⊢ ofJ 1728 = ofJ1728 F

case neg
R : Type u
inst✝² : CommRing R
E : EllipticCurve R
F : Type u
inst✝¹ : Field F
j : F
inst✝ : DecidableEq F
h2 : NeZero 2
h3 : ¬3 = 0
⊢ ofJ 1728 = ofJ1728 F

tactic: exact ofJ_1728_of_three_eq_zero h3
state_before: case pos
R : Type u
inst✝² : CommRing R
E : EllipticCurve R
F : Type u
inst✝¹ : Field F
j : F
inst✝ : DecidableEq F
h2 : NeZero 2
h3 : 3 = 0
⊢ ofJ 1728 = ofJ1728 F
state_after: no goals

tactic: have h : (1728 : F) ≠ 0 := fun h => or_iff_not_and_not.mp
  (mul_eq_zero.mp <| by rwa [show 2 ^ 6 * 3 ^ 3 = (1728 : F) by norm_num1])
  ⟨pow_ne_zero 6 h2.out, pow_ne_zero 3 h3⟩
state_before: case neg
R : Type u
inst✝² : CommRing R
E : EllipticCurve R
F : Type u
inst✝¹ : Field F
j : F
inst✝ : DecidableEq F
h2 : NeZero 2
h3 : ¬3 = 0
⊢ ofJ 1728 = ofJ1728 F
state_after: case neg
R : Type u
inst✝² : CommRing R
E : EllipticCurve R
F : Type u
inst✝¹ : Field F
j : F
inst✝ : DecidableEq F
h2 : NeZero 2
h3 : ¬3 = 0
h : 1728 ≠ 0
⊢ ofJ 1728 = ofJ1728 F

tactic: rw [ofJ, dif_neg h, dif_pos rfl]
state_before: case neg
R : Type u
inst✝² : CommRing R
E : EllipticCurve R
F : Type u
inst✝¹ : Field F
j : F
inst✝ : DecidableEq F
h2 : NeZero 2
h3 : ¬3 = 0
h : 1728 ≠ 0
⊢ ofJ 1728 = ofJ1728 F
state_after: no goals

tactic: rwa [show 2 ^ 6 * 3 ^ 3 = (1728 : F) by norm_num1]
state_before: R : Type u
inst✝² : CommRing R
E : EllipticCurve R
F : Type u
inst✝¹ : Field F
j : F
inst✝ : DecidableEq F
h2 : NeZero 2
h3 : ¬3 = 0
h : 1728 = 0
⊢ 2 ^ 6 * 3 ^ 3 = 0
state_after: no goals

tactic: norm_num1
state_before: R : Type u
inst✝² : CommRing R
E : EllipticCurve R
F : Type u
inst✝¹ : Field F
j : F
inst✝ : DecidableEq F
h2 : NeZero 2
h3 : ¬3 = 0
h : 1728 = 0
⊢ 2 ^ 6 * 3 ^ 3 = 1728
state_after: no goals
Theorem: String.leftpad_suffix
File: Mathlib/Data/String/Lemmas.lean

tactic: simp only [IsSuffix, replicate, leftpad, String.length, List.leftpad_suffix]
state_before: n : ℕ
c : Char
l : List Char
⊢ { data := l }.IsSuffix (leftpad n c { data := l })
state_after: no goals
Theorem: Metric.uniformity_eq_comap_nhds_zero
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: ext s
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
⊢ 𝓤 α = comap (fun p => dist p.1 p.2) (𝓝 0)
state_after: case a
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
s : Set (α × α)
⊢ s ∈ 𝓤 α ↔ s ∈ comap (fun p => dist p.1 p.2) (𝓝 0)

tactic: simp only [mem_uniformity_dist, (nhds_basis_ball.comap _).mem_iff]
state_before: case a
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
s : Set (α × α)
⊢ s ∈ 𝓤 α ↔ s ∈ comap (fun p => dist p.1 p.2) (𝓝 0)
state_after: case a
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
s : Set (α × α)
⊢ (∃ ε > 0, ∀ {a b : α}, dist a b < ε → (a, b) ∈ s) ↔ ∃ i, 0 < i ∧ (fun p => dist p.1 p.2) ⁻¹' ball 0 i ⊆ s

tactic: simp [subset_def, Real.dist_0_eq_abs]
state_before: case a
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
s : Set (α × α)
⊢ (∃ ε > 0, ∀ {a b : α}, dist a b < ε → (a, b) ∈ s) ↔ ∃ i, 0 < i ∧ (fun p => dist p.1 p.2) ⁻¹' ball 0 i ⊆ s
state_after: no goals
Theorem: div_sq_cancel
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: obtain rfl | ha := eq_or_ne a 0
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : CommGroupWithZero G₀
a✝ b✝ c d a b : G₀
⊢ a ^ 2 * b / a = a * b
state_after: case inl
α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : CommGroupWithZero G₀
a b✝ c d b : G₀
⊢ 0 ^ 2 * b / 0 = 0 * b

case inr
α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : CommGroupWithZero G₀
a✝ b✝ c d a b : G₀
ha : a ≠ 0
⊢ a ^ 2 * b / a = a * b

tactic: simp
state_before: case inl
α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : CommGroupWithZero G₀
a b✝ c d b : G₀
⊢ 0 ^ 2 * b / 0 = 0 * b
state_after: no goals

tactic: rw [sq, mul_assoc, mul_div_cancel_left₀ _ ha]
state_before: case inr
α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : CommGroupWithZero G₀
a✝ b✝ c d a b : G₀
ha : a ≠ 0
⊢ a ^ 2 * b / a = a * b
state_after: no goals
Theorem: Language.kstar_def_nonempty
File: Mathlib/Computability/Language.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
l✝ m : Language α
a b x : List α
l : Language α
⊢ l∗ = {x | ∃ S, x = S.join ∧ ∀ y ∈ S, y ∈ l ∧ y ≠ []}
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
l✝ m : Language α
a b x✝ : List α
l : Language α
x : List α
⊢ x ∈ l∗ ↔ x ∈ {x | ∃ S, x = S.join ∧ ∀ y ∈ S, y ∈ l ∧ y ≠ []}

tactic: apply mem_kstar_iff_exists_nonempty
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
l✝ m : Language α
a b x✝ : List α
l : Language α
x : List α
⊢ x ∈ l∗ ↔ x ∈ {x | ∃ S, x = S.join ∧ ∀ y ∈ S, y ∈ l ∧ y ≠ []}
state_after: no goals
Theorem: Nat.not_odd_iff
File: Mathlib/Algebra/Ring/Parity.lean

tactic: rw [odd_iff, mod_two_ne_one]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
m n : ℕ
⊢ ¬Odd n ↔ n % 2 = 0
state_after: no goals
Theorem: measurable_indicator_const_iff
File: Mathlib/MeasureTheory/MeasurableSpace/Basic.lean

tactic: constructor <;> intro h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
f g : α → β
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝² : Zero β
inst✝¹ : MeasurableSingletonClass β
b : β
inst✝ : NeZero b
⊢ Measurable (s.indicator fun x => b) ↔ MeasurableSet s
state_after: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
f g : α → β
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝² : Zero β
inst✝¹ : MeasurableSingletonClass β
b : β
inst✝ : NeZero b
h : Measurable (s.indicator fun x => b)
⊢ MeasurableSet s

case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
f g : α → β
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝² : Zero β
inst✝¹ : MeasurableSingletonClass β
b : β
inst✝ : NeZero b
h : MeasurableSet s
⊢ Measurable (s.indicator fun x => b)

tactic: convert h (MeasurableSet.singleton (0 : β)).compl
state_before: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
f g : α → β
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝² : Zero β
inst✝¹ : MeasurableSingletonClass β
b : β
inst✝ : NeZero b
h : Measurable (s.indicator fun x => b)
⊢ MeasurableSet s
state_after: case h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
f g : α → β
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝² : Zero β
inst✝¹ : MeasurableSingletonClass β
b : β
inst✝ : NeZero b
h : Measurable (s.indicator fun x => b)
⊢ s = (s.indicator fun x => b) ⁻¹' {0}ᶜ

tactic: ext a
state_before: case h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
f g : α → β
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝² : Zero β
inst✝¹ : MeasurableSingletonClass β
b : β
inst✝ : NeZero b
h : Measurable (s.indicator fun x => b)
⊢ s = (s.indicator fun x => b) ⁻¹' {0}ᶜ
state_after: case h.e'_3.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
f g : α → β
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝² : Zero β
inst✝¹ : MeasurableSingletonClass β
b : β
inst✝ : NeZero b
h : Measurable (s.indicator fun x => b)
a : α
⊢ a ∈ s ↔ a ∈ (s.indicator fun x => b) ⁻¹' {0}ᶜ

tactic: simp [NeZero.ne b]
state_before: case h.e'_3.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
f g : α → β
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝² : Zero β
inst✝¹ : MeasurableSingletonClass β
b : β
inst✝ : NeZero b
h : Measurable (s.indicator fun x => b)
a : α
⊢ a ∈ s ↔ a ∈ (s.indicator fun x => b) ⁻¹' {0}ᶜ
state_after: no goals

tactic: exact measurable_const.indicator h
state_before: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
f g : α → β
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝² : Zero β
inst✝¹ : MeasurableSingletonClass β
b : β
inst✝ : NeZero b
h : MeasurableSet s
⊢ Measurable (s.indicator fun x => b)
state_after: no goals
Theorem: CategoryTheory.ShortComplex.exact_iff_surjective_moduleCatToCycles
File: Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean

tactic: rw [S.moduleCatLeftHomologyData.exact_iff_epi_f', moduleCatLeftHomologyData_f',
  ModuleCat.epi_iff_surjective]
state_before: R : Type u
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
⊢ S.Exact ↔ Function.Surjective ⇑S.moduleCatToCycles
state_after: R : Type u
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
⊢ Function.Surjective ⇑S.moduleCatToCycles ↔ Function.Surjective ⇑S.moduleCatToCycles

tactic: rfl
state_before: R : Type u
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
⊢ Function.Surjective ⇑S.moduleCatToCycles ↔ Function.Surjective ⇑S.moduleCatToCycles
state_after: no goals
Theorem: WeierstrassCurve.Affine.map_negPolynomial
File: Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean

tactic: simp only [negPolynomial]
state_before: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
⊢ (map W f).toAffine.negPolynomial = Polynomial.map (mapRingHom f) W.negPolynomial
state_after: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
⊢ -Y - C (C (map W f).toAffine.a₁ * X + C (map W f).toAffine.a₃) =
    Polynomial.map (mapRingHom f) (-Y - C (C W.a₁ * X + C W.a₃))

tactic: map_simp
state_before: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
⊢ -Y - C (C (map W f).toAffine.a₁ * X + C (map W f).toAffine.a₃) =
    Polynomial.map (mapRingHom f) (-Y - C (C W.a₁ * X + C W.a₃))
state_after: no goals
Theorem: one_eq_bit1
File: Mathlib/Algebra/CharZero/Lemmas.lean

tactic: rw [eq_comm]
state_before: R : Type u_1
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : CharZero R
a : R
⊢ 1 = bit1 a ↔ a = 0
state_after: R : Type u_1
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : CharZero R
a : R
⊢ bit1 a = 1 ↔ a = 0

tactic: exact bit1_eq_one
state_before: R : Type u_1
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : CharZero R
a : R
⊢ bit1 a = 1 ↔ a = 0
state_after: no goals
Theorem: Submonoid.LocalizationMap.lift_eq_iff
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: rw [lift_mk', lift_mk', mul_inv hg]
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
g : M →* P
hg : ∀ (y : ↥S), IsUnit (g ↑y)
x y : M × ↥S
⊢ (f.lift hg) (f.mk' x.1 x.2) = (f.lift hg) (f.mk' y.1 y.2) ↔ g (x.1 * ↑y.2) = g (y.1 * ↑x.2)
state_after: no goals
Theorem: MulAction.period_dvd_orderOf
File: Mathlib/GroupTheory/GroupAction/Period.lean

tactic: rw [← pow_smul_eq_iff_period_dvd, pow_orderOf_eq_one, one_smul]
state_before: α : Type v
G : Type u
inst✝³ : Group G
inst✝² : MulAction G α
M : Type u
inst✝¹ : Monoid M
inst✝ : MulAction M α
m : M
a : α
⊢ period m a ∣ orderOf m
state_after: no goals
Theorem: banach_steinhaus
File: Mathlib/Analysis/NormedSpace/BanachSteinhaus.lean

tactic: rw [show (∃ C, ∀ i, ‖g i‖ ≤ C) ↔ _ from (NormedSpace.equicontinuous_TFAE g).out 5 2]
state_before: E : Type u_1
F : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_5
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖(g i) x‖ ≤ C
⊢ ∃ C', ∀ (i : ι), ‖g i‖ ≤ C'
state_after: E : Type u_1
F : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_5
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖(g i) x‖ ≤ C
⊢ UniformEquicontinuous (DFunLike.coe ∘ g)

tactic: refine (norm_withSeminorms 𝕜₂ F).banach_steinhaus (fun _ x ↦ ?_)
state_before: E : Type u_1
F : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_5
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖(g i) x‖ ≤ C
⊢ UniformEquicontinuous (DFunLike.coe ∘ g)
state_after: E : Type u_1
F : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_5
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖(g i) x‖ ≤ C
x✝ : Fin 1
x : E
⊢ BddAbove (range fun i => (normSeminorm 𝕜₂ F) ((g i) x))

tactic: simpa [bddAbove_def, forall_mem_range] using h x
state_before: E : Type u_1
F : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
inst✝⁷ : SeminormedAddCommGroup E
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NontriviallyNormedField 𝕜₂
inst✝³ : NormedSpace 𝕜 E
inst✝² : NormedSpace 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι : Type u_5
inst✝ : CompleteSpace E
g : ι → E →SL[σ₁₂] F
h : ∀ (x : E), ∃ C, ∀ (i : ι), ‖(g i) x‖ ≤ C
x✝ : Fin 1
x : E
⊢ BddAbove (range fun i => (normSeminorm 𝕜₂ F) ((g i) x))
state_after: no goals
Theorem: mul_invOf_self_assoc
File: Mathlib/Algebra/Group/Invertible/Defs.lean

tactic: rw [← mul_assoc, mul_invOf_self, one_mul]
state_before: α : Type u
inst✝¹ : Monoid α
a b : α
inst✝ : Invertible a
⊢ a * (⅟a * b) = b
state_after: no goals
Theorem: CategoryTheory.Limits.KernelFork.map_condition
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean

tactic: rw [← G.map_comp, c.condition, G.map_zero]
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : HasZeroMorphisms C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
inst✝¹ : HasZeroMorphisms D
X Y : C
f : X ⟶ Y
c : KernelFork f
G : C ⥤ D
inst✝ : G.PreservesZeroMorphisms
⊢ G.map (Fork.ι c) ≫ G.map f = 0
state_after: no goals
Theorem: Cardinal.mk_le_aleph0_iff
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [countable_iff_nonempty_embedding, aleph0, ← lift_uzero #α, lift_mk_le']
state_before: α β : Type u
⊢ #α ≤ ℵ₀ ↔ Countable α
state_after: no goals
Theorem: finprod_eq_single
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: have : mulSupport (f ∘ PLift.down) ⊆ ({PLift.up a} : Finset (PLift α)) := by
  intro x
  contrapose
  simpa [PLift.eq_up_iff_down_eq] using ha x.down
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
a : α
ha : ∀ (x : α), x ≠ a → f x = 1
⊢ ∏ᶠ (x : α), f x = f a
state_after: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
a : α
ha : ∀ (x : α), x ≠ a → f x = 1
this : mulSupport (f ∘ PLift.down) ⊆ ↑{{ down := a }}
⊢ ∏ᶠ (x : α), f x = f a

tactic: rw [finprod_eq_prod_plift_of_mulSupport_subset this, Finset.prod_singleton]
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
a : α
ha : ∀ (x : α), x ≠ a → f x = 1
this : mulSupport (f ∘ PLift.down) ⊆ ↑{{ down := a }}
⊢ ∏ᶠ (x : α), f x = f a
state_after: no goals

tactic: intro x
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
a : α
ha : ∀ (x : α), x ≠ a → f x = 1
⊢ mulSupport (f ∘ PLift.down) ⊆ ↑{{ down := a }}
state_after: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
a : α
ha : ∀ (x : α), x ≠ a → f x = 1
x : PLift α
⊢ x ∈ mulSupport (f ∘ PLift.down) → x ∈ ↑{{ down := a }}

tactic: contrapose
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
a : α
ha : ∀ (x : α), x ≠ a → f x = 1
x : PLift α
⊢ x ∈ mulSupport (f ∘ PLift.down) → x ∈ ↑{{ down := a }}
state_after: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
a : α
ha : ∀ (x : α), x ≠ a → f x = 1
x : PLift α
⊢ x ∉ ↑{{ down := a }} → x ∉ mulSupport (f ∘ PLift.down)

tactic: simpa [PLift.eq_up_iff_down_eq] using ha x.down
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
a : α
ha : ∀ (x : α), x ≠ a → f x = 1
x : PLift α
⊢ x ∉ ↑{{ down := a }} → x ∉ mulSupport (f ∘ PLift.down)
state_after: no goals
Theorem: CategoryTheory.Limits.limit.lift_map
File: Mathlib/CategoryTheory/Limits/HasLimits.lean

tactic: ext
state_before: J : Type u₁
inst✝⁴ : Category.{v₁, u₁} J
K : Type u₂
inst✝³ : Category.{v₂, u₂} K
C : Type u
inst✝² : Category.{v, u} C
F✝ F G : J ⥤ C
inst✝¹ : HasLimit F
inst✝ : HasLimit G
c : Cone F
α : F ⟶ G
⊢ lift F c ≫ limMap α = lift G ((Cones.postcompose α).obj c)
state_after: case w
J : Type u₁
inst✝⁴ : Category.{v₁, u₁} J
K : Type u₂
inst✝³ : Category.{v₂, u₂} K
C : Type u
inst✝² : Category.{v, u} C
F✝ F G : J ⥤ C
inst✝¹ : HasLimit F
inst✝ : HasLimit G
c : Cone F
α : F ⟶ G
j✝ : J
⊢ (lift F c ≫ limMap α) ≫ π G j✝ = lift G ((Cones.postcompose α).obj c) ≫ π G j✝

tactic: rw [assoc, limMap_π, limit.lift_π_assoc, limit.lift_π]
state_before: case w
J : Type u₁
inst✝⁴ : Category.{v₁, u₁} J
K : Type u₂
inst✝³ : Category.{v₂, u₂} K
C : Type u
inst✝² : Category.{v, u} C
F✝ F G : J ⥤ C
inst✝¹ : HasLimit F
inst✝ : HasLimit G
c : Cone F
α : F ⟶ G
j✝ : J
⊢ (lift F c ≫ limMap α) ≫ π G j✝ = lift G ((Cones.postcompose α).obj c) ≫ π G j✝
state_after: case w
J : Type u₁
inst✝⁴ : Category.{v₁, u₁} J
K : Type u₂
inst✝³ : Category.{v₂, u₂} K
C : Type u
inst✝² : Category.{v, u} C
F✝ F G : J ⥤ C
inst✝¹ : HasLimit F
inst✝ : HasLimit G
c : Cone F
α : F ⟶ G
j✝ : J
⊢ c.π.app j✝ ≫ α.app j✝ = ((Cones.postcompose α).obj c).π.app j✝

tactic: rfl
state_before: case w
J : Type u₁
inst✝⁴ : Category.{v₁, u₁} J
K : Type u₂
inst✝³ : Category.{v₂, u₂} K
C : Type u
inst✝² : Category.{v, u} C
F✝ F G : J ⥤ C
inst✝¹ : HasLimit F
inst✝ : HasLimit G
c : Cone F
α : F ⟶ G
j✝ : J
⊢ c.π.app j✝ ≫ α.app j✝ = ((Cones.postcompose α).obj c).π.app j✝
state_after: no goals
Theorem: Stream'.Seq.join_cons_cons
File: Mathlib/Data/Seq/Seq.lean

tactic: simp [join]
state_before: α : Type u
β : Type v
γ : Type w
a b : α
s : Seq α
S : Seq (Seq1 α)
⊢ (cons (a, cons b s) S).join.destruct = some (a, (cons (b, s) S).join)
state_after: no goals
Theorem: Ordinal.opow_le_opow_right
File: Mathlib/SetTheory/Ordinal/Exponential.lean

tactic: rcases lt_or_eq_of_le (one_le_iff_pos.2 h₁) with h₁ | h₁
state_before: a b c : Ordinal.{u_1}
h₁ : 0 < a
h₂ : b ≤ c
⊢ a ^ b ≤ a ^ c
state_after: case inl
a b c : Ordinal.{u_1}
h₁✝ : 0 < a
h₂ : b ≤ c
h₁ : 1 < a
⊢ a ^ b ≤ a ^ c

case inr
a b c : Ordinal.{u_1}
h₁✝ : 0 < a
h₂ : b ≤ c
h₁ : 1 = a
⊢ a ^ b ≤ a ^ c

tactic: exact (opow_le_opow_iff_right h₁).2 h₂
state_before: case inl
a b c : Ordinal.{u_1}
h₁✝ : 0 < a
h₂ : b ≤ c
h₁ : 1 < a
⊢ a ^ b ≤ a ^ c
state_after: no goals

tactic: subst a
state_before: case inr
a b c : Ordinal.{u_1}
h₁✝ : 0 < a
h₂ : b ≤ c
h₁ : 1 = a
⊢ a ^ b ≤ a ^ c
state_after: case inr
b c : Ordinal.{u_1}
h₂ : b ≤ c
h₁ : 0 < 1
⊢ 1 ^ b ≤ 1 ^ c

tactic: simp only [one_opow, le_refl]
state_before: case inr
b c : Ordinal.{u_1}
h₂ : b ≤ c
h₁ : 0 < 1
⊢ 1 ^ b ≤ 1 ^ c
state_after: no goals
Theorem: Ideal.le_span_singleton_mul_iff
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: simp only [mem_span_singleton_mul]
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I✝ J✝ K L : Ideal R
x : R
I J : Ideal R
⊢ (∀ {zI : R}, zI ∈ I → zI ∈ span {x} * J) ↔ ∀ zI ∈ I, ∃ zJ ∈ J, x * zJ = zI
state_after: no goals
Theorem: LinearMap.range_smul
File: Mathlib/Algebra/Module/Submodule/Range.lean

tactic: simpa only [range_eq_map] using Submodule.map_smul f _ a h
state_before: R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
K : Type u_4
K₂ : Type u_5
M : Type u_6
M₂ : Type u_7
M₃ : Type u_8
V : Type u_9
V₂ : Type u_10
inst✝⁵ : Semifield K
inst✝⁴ : Semifield K₂
inst✝³ : AddCommMonoid V
inst✝² : Module K V
inst✝¹ : AddCommMonoid V₂
inst✝ : Module K V₂
f : V →ₗ[K] V₂
a : K
h : a ≠ 0
⊢ range (a • f) = range f
state_after: no goals
Theorem: MvPFunctor.map_objAppend1
File: Mathlib/Data/PFunctor/Multivariate/W.lean

tactic: rw [objAppend1, objAppend1, map_eq, appendFun, ← splitFun_comp]
state_before: n : ℕ
P : MvPFunctor.{u} (n + 1)
α γ : TypeVec.{u} n
g : α ⟹ γ
a : P.A
f' : P.drop.B a ⟹ α
f : P.last.B a → P.W α
⊢ (g ::: P.wMap g) <$$> P.objAppend1 a f' f = P.objAppend1 a (g ⊚ f') fun x => P.wMap g (f x)
state_after: n : ℕ
P : MvPFunctor.{u} (n + 1)
α γ : TypeVec.{u} n
g : α ⟹ γ
a : P.A
f' : P.drop.B a ⟹ α
f : P.last.B a → P.W α
⊢ ⟨a, splitFun (g ⊚ f') (P.wMap g ∘ f)⟩ = ⟨a, splitFun (g ⊚ f') fun x => P.wMap g (f x)⟩

tactic: rfl
state_before: n : ℕ
P : MvPFunctor.{u} (n + 1)
α γ : TypeVec.{u} n
g : α ⟹ γ
a : P.A
f' : P.drop.B a ⟹ α
f : P.last.B a → P.W α
⊢ ⟨a, splitFun (g ⊚ f') (P.wMap g ∘ f)⟩ = ⟨a, splitFun (g ⊚ f') fun x => P.wMap g (f x)⟩
state_after: no goals