1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: LinearIndependent.finite_of_le_span_finite
File: Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean

tactic: let v' := fun x : (t : Set ι) => v x
state_before: R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
ι✝ : Type w
ι' : Type w'
inst✝¹ : StrongRankCondition R
ι : Type u_1
v : ι → M
i : LinearIndependent R v
w : Set M
inst✝ : Finite ↑w
s : range v ≤ ↑(span R w)
this : Fintype ↑w := Fintype.ofFinite ↑w
t : Finset ι
⊢ t.card ≤ Fintype.card ↑w
state_after: R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
ι✝ : Type w
ι' : Type w'
inst✝¹ : StrongRankCondition R
ι : Type u_1
v : ι → M
i : LinearIndependent R v
w : Set M
inst✝ : Finite ↑w
s : range v ≤ ↑(span R w)
this : Fintype ↑w := Fintype.ofFinite ↑w
t : Finset ι
v' : ↑↑t → M := fun x => v ↑x
⊢ t.card ≤ Fintype.card ↑w

tactic: have i' : LinearIndependent R v' := i.comp _ Subtype.val_injective
state_before: R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
ι✝ : Type w
ι' : Type w'
inst✝¹ : StrongRankCondition R
ι : Type u_1
v : ι → M
i : LinearIndependent R v
w : Set M
inst✝ : Finite ↑w
s : range v ≤ ↑(span R w)
this : Fintype ↑w := Fintype.ofFinite ↑w
t : Finset ι
v' : ↑↑t → M := fun x => v ↑x
⊢ t.card ≤ Fintype.card ↑w
state_after: R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
ι✝ : Type w
ι' : Type w'
inst✝¹ : StrongRankCondition R
ι : Type u_1
v : ι → M
i : LinearIndependent R v
w : Set M
inst✝ : Finite ↑w
s : range v ≤ ↑(span R w)
this : Fintype ↑w := Fintype.ofFinite ↑w
t : Finset ι
v' : ↑↑t → M := fun x => v ↑x
i' : LinearIndependent (ι := ↑↑t) R v'
⊢ t.card ≤ Fintype.card ↑w

tactic: have s' : range v' ≤ span R w := (range_comp_subset_range _ _).trans s
state_before: R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
ι✝ : Type w
ι' : Type w'
inst✝¹ : StrongRankCondition R
ι : Type u_1
v : ι → M
i : LinearIndependent R v
w : Set M
inst✝ : Finite ↑w
s : range v ≤ ↑(span R w)
this : Fintype ↑w := Fintype.ofFinite ↑w
t : Finset ι
v' : ↑↑t → M := fun x => v ↑x
i' : LinearIndependent (ι := ↑↑t) R v'
⊢ t.card ≤ Fintype.card ↑w
state_after: R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
ι✝ : Type w
ι' : Type w'
inst✝¹ : StrongRankCondition R
ι : Type u_1
v : ι → M
i : LinearIndependent R v
w : Set M
inst✝ : Finite ↑w
s : range v ≤ ↑(span R w)
this : Fintype ↑w := Fintype.ofFinite ↑w
t : Finset ι
v' : ↑↑t → M := fun x => v ↑x
i' : LinearIndependent (ι := ↑↑t) R v'
s' : range v' ≤ ↑(span R w)
⊢ t.card ≤ Fintype.card ↑w

tactic: simpa using linearIndependent_le_span_aux' v' i' w s'
state_before: R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
ι✝ : Type w
ι' : Type w'
inst✝¹ : StrongRankCondition R
ι : Type u_1
v : ι → M
i : LinearIndependent R v
w : Set M
inst✝ : Finite ↑w
s : range v ≤ ↑(span R w)
this : Fintype ↑w := Fintype.ofFinite ↑w
t : Finset ι
v' : ↑↑t → M := fun x => v ↑x
i' : LinearIndependent (ι := ↑↑t) R v'
s' : range v' ≤ ↑(span R w)
⊢ t.card ≤ Fintype.card ↑w
state_after: no goals
Theorem: Localization.liftOn₂_mk'
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: rw [← mk_eq_monoidOf_mk', liftOn₂_mk]
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
p : Sort u_4
f : M → ↥S → M → ↥S → p
H :
  ∀ {a a' : M} {b b' : ↥S} {c c' : M} {d d' : ↥S},
    (r S) (a, b) (a', b') → (r S) (c, d) (c', d') → f a b c d = f a' b' c' d'
a c : M
b d : ↥S
⊢ ((monoidOf S).mk' a b).liftOn₂ ((monoidOf S).mk' c d) f H = f a b c d
state_after: no goals
Theorem: LieModule.disjoint_weightSpaceOf
File: Mathlib/Algebra/Lie/Weights/Basic.lean

tactic: rw [LieSubmodule.disjoint_iff_coe_toSubmodule]
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✝ : NoZeroSMulDivisors R M
x : L
φ₁ φ₂ : R
h : φ₁ ≠ φ₂
⊢ Disjoint (weightSpaceOf M φ₁ x) (weightSpaceOf M φ₂ x)
state_after: 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✝ : NoZeroSMulDivisors R M
x : L
φ₁ φ₂ : R
h : φ₁ ≠ φ₂
⊢ Disjoint ↑(weightSpaceOf M φ₁ x) ↑(weightSpaceOf M φ₂ x)

tactic: exact Module.End.disjoint_iSup_genEigenspace _ h
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✝ : NoZeroSMulDivisors R M
x : L
φ₁ φ₂ : R
h : φ₁ ≠ φ₂
⊢ Disjoint ↑(weightSpaceOf M φ₁ x) ↑(weightSpaceOf M φ₂ x)
state_after: no goals
Theorem: SetTheory.PGame.nim_one_moveRight
File: Mathlib/SetTheory/Game/Nim.lean

tactic: simp
state_before: x : (nim 1).RightMoves
⊢ (nim 1).moveRight x = nim 0
state_after: no goals
Theorem: Rat.sqrt_eq
File: Mathlib/Data/Rat/Sqrt.lean

tactic: rw [sqrt, mul_self_num, mul_self_den, Int.sqrt_eq, Nat.sqrt_eq, abs_def, divInt_ofNat]
state_before: q : ℚ
⊢ sqrt (q * q) = |q|
state_after: no goals
Theorem: PMF.mem_support_uniformOfFinset_iff
File: Mathlib/Probability/Distributions/Uniform.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s : Finset α
hs : s.Nonempty
a✝ a : α
⊢ a ∈ (uniformOfFinset s hs).support ↔ a ∈ s
state_after: no goals
Theorem: card_perms_of_finset
File: Mathlib/Data/Fintype/Perm.lean

tactic: rintro ⟨⟨l⟩, hs⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
⊢ ∀ (s : Finset α), (permsOfFinset s).card = s.card !
state_after: case mk.mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
val✝ : Multiset α
l : List α
hs : Multiset.Nodup (Quot.mk Setoid.r l)
⊢ (permsOfFinset { val := Quot.mk Setoid.r l, nodup := hs }).card = { val := Quot.mk Setoid.r l, nodup := hs }.card !

tactic: exact length_permsOfList l
state_before: case mk.mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
val✝ : Multiset α
l : List α
hs : Multiset.Nodup (Quot.mk Setoid.r l)
⊢ (permsOfFinset { val := Quot.mk Setoid.r l, nodup := hs }).card = { val := Quot.mk Setoid.r l, nodup := hs }.card !
state_after: no goals
Theorem: ZMod.mul_inv_of_unit
File: Mathlib/Data/ZMod/Basic.lean

tactic: rcases h with ⟨u, rfl⟩
state_before: n : ℕ
a : ZMod n
h : IsUnit a
⊢ a * a⁻¹ = 1
state_after: case intro
n : ℕ
u : (ZMod n)ˣ
⊢ ↑u * (↑u)⁻¹ = 1

tactic: rw [inv_coe_unit, u.mul_inv]
state_before: case intro
n : ℕ
u : (ZMod n)ˣ
⊢ ↑u * (↑u)⁻¹ = 1
state_after: no goals
Theorem: Ordinal.out_no_max_of_succ_lt
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rwa [type_lt]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u_4}
ho : ∀ a < o, succ a < o
⊢ ∀ a < type LT.lt, succ a < type LT.lt
state_after: no goals
Theorem: List.dropSlice_sublist
File: Mathlib/Data/List/Infix.lean

tactic: rw [dropSlice_eq, drop_drop, Nat.add_comm]
state_before: α : Type u_1
β : Type u_2
l✝ l₁ l₂ l₃ : List α
a b : α
m✝ n✝ n m : ℕ
l : List α
⊢ dropSlice n m l = take n l ++ drop m (drop n l)
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.Y_ne_zero_of_Z_eq_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: have hPx : P x ≠ 0 := X_ne_zero_of_Z_eq_zero hP hPz
state_before: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : NoZeroDivisors R
P : Fin 3 → R
hP : W'.Nonsingular P
hPz : P z = 0
⊢ P y ≠ 0
state_after: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : NoZeroDivisors R
P : Fin 3 → R
hP : W'.Nonsingular P
hPz : P z = 0
hPx : P x ≠ 0
⊢ P y ≠ 0

tactic: intro hPy
state_before: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : NoZeroDivisors R
P : Fin 3 → R
hP : W'.Nonsingular P
hPz : P z = 0
hPx : P x ≠ 0
⊢ P y ≠ 0
state_after: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : NoZeroDivisors R
P : Fin 3 → R
hP : W'.Nonsingular P
hPz : P z = 0
hPx : P x ≠ 0
hPy : P y = 0
⊢ False

tactic: rw [nonsingular_of_Z_eq_zero hPz, equation_of_Z_eq_zero hPz, hPy, zero_pow two_ne_zero] at hP
state_before: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : NoZeroDivisors R
P : Fin 3 → R
hP : W'.Nonsingular P
hPz : P z = 0
hPx : P x ≠ 0
hPy : P y = 0
⊢ False
state_after: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : NoZeroDivisors R
P : Fin 3 → R
hP : 0 = P x ^ 3 ∧ (3 * P x ^ 2 ≠ 0 ∨ 2 * 0 ≠ 0 ∨ W'.a₁ * P x * 0 ≠ 0)
hPz : P z = 0
hPx : P x ≠ 0
hPy : P y = 0
⊢ False

tactic: exact hPx <| pow_eq_zero hP.left.symm
state_before: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : NoZeroDivisors R
P : Fin 3 → R
hP : 0 = P x ^ 3 ∧ (3 * P x ^ 2 ≠ 0 ∨ 2 * 0 ≠ 0 ∨ W'.a₁ * P x * 0 ≠ 0)
hPz : P z = 0
hPx : P x ≠ 0
hPy : P y = 0
⊢ False
state_after: no goals
Theorem: Codisjoint.map_orderIso
File: Mathlib/Order/Hom/Basic.lean

tactic: rw [codisjoint_iff_le_sup, ← f.map_sup, ← f.map_top]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : SemilatticeSup α
inst✝² : OrderTop α
inst✝¹ : SemilatticeSup β
inst✝ : OrderTop β
a b : α
f : α ≃o β
ha : Codisjoint a b
⊢ Codisjoint (f a) (f b)
state_after: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : SemilatticeSup α
inst✝² : OrderTop α
inst✝¹ : SemilatticeSup β
inst✝ : OrderTop β
a b : α
f : α ≃o β
ha : Codisjoint a b
⊢ f ⊤ ≤ f (a ⊔ b)

tactic: exact f.monotone ha.top_le
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : SemilatticeSup α
inst✝² : OrderTop α
inst✝¹ : SemilatticeSup β
inst✝ : OrderTop β
a b : α
f : α ≃o β
ha : Codisjoint a b
⊢ f ⊤ ≤ f (a ⊔ b)
state_after: no goals
Theorem: ProbabilityTheory.kernel.measurable_countableFiltration_densityProcess
File: Mathlib/Probability/Kernel/Disintegration/Density.lean

tactic: refine @Measurable.ennreal_toReal _ (countableFiltration γ n) _ ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ✝ : ↥(kernel α (γ × β))
ν✝ : ↥(kernel α γ)
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
n : ℕ
a : α
s : Set β
hs : MeasurableSet s
⊢ Measurable fun x => densityProcess κ ν n a x s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ✝ : ↥(kernel α (γ × β))
ν✝ : ↥(kernel α γ)
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
n : ℕ
a : α
s : Set β
hs : MeasurableSet s
⊢ Measurable fun x => (κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)

tactic: exact (measurable_densityProcess_countableFiltration_aux κ ν n hs).comp measurable_prod_mk_left
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ✝ : ↥(kernel α (γ × β))
ν✝ : ↥(kernel α γ)
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
n : ℕ
a : α
s : Set β
hs : MeasurableSet s
⊢ Measurable fun x => (κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)
state_after: no goals
Theorem: Nat.le_log_of_pow_le
File: Mathlib/Data/Nat/Log.lean

tactic: rcases ne_or_eq y 0 with (hy | rfl)
state_before: b x y : ℕ
hb : 1 < b
h : b ^ x ≤ y
⊢ x ≤ log b y
state_after: case inl
b x y : ℕ
hb : 1 < b
h : b ^ x ≤ y
hy : y ≠ 0
⊢ x ≤ log b y

case inr
b x : ℕ
hb : 1 < b
h : b ^ x ≤ 0
⊢ x ≤ log b 0

tactic: exacts [(pow_le_iff_le_log hb hy).1 h, (h.not_lt (Nat.pow_pos (Nat.zero_lt_one.trans hb))).elim]
state_before: case inl
b x y : ℕ
hb : 1 < b
h : b ^ x ≤ y
hy : y ≠ 0
⊢ x ≤ log b y

case inr
b x : ℕ
hb : 1 < b
h : b ^ x ≤ 0
⊢ x ≤ log b 0
state_after: no goals
Theorem: Complex.isCauSeq_re
File: Mathlib/Data/Complex/Abs.lean

tactic: simpa using abs_re_le_abs (f j - f i)
state_before: f : CauSeq ℂ ⇑abs'
ε : ℝ
ε0 : ε > 0
i : ℕ
H : ∀ j ≥ i, abs' (↑f j - ↑f i) < ε
j : ℕ
ij : j ≥ i
⊢ |(fun n => (↑f n).re) j - (fun n => (↑f n).re) i| ≤ abs' (↑f j - ↑f i)
state_after: no goals
Theorem: CategoryTheory.Functor.isZero_rightDerived_obj_injective_succ
File: Mathlib/CategoryTheory/Abelian/RightDerived.lean

tactic: refine IsZero.of_iso ?_ ((InjectiveResolution.self X).isoRightDerivedObj F (n + 1))
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
D : Type u_1
inst✝⁵ : Category.{u_2, u_1} D
inst✝⁴ : Abelian C
inst✝³ : HasInjectiveResolutions C
inst✝² : Abelian D
F : C ⥤ D
inst✝¹ : F.Additive
n : ℕ
X : C
inst✝ : Injective X
⊢ IsZero ((F.rightDerived (n + 1)).obj X)
state_after: C : Type u
inst✝⁶ : Category.{v, u} C
D : Type u_1
inst✝⁵ : Category.{u_2, u_1} D
inst✝⁴ : Abelian C
inst✝³ : HasInjectiveResolutions C
inst✝² : Abelian D
F : C ⥤ D
inst✝¹ : F.Additive
n : ℕ
X : C
inst✝ : Injective X
⊢ IsZero
    ((HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) (n + 1)).obj
      ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj (InjectiveResolution.self X).cocomplex))

tactic: erw [← HomologicalComplex.exactAt_iff_isZero_homology]
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
D : Type u_1
inst✝⁵ : Category.{u_2, u_1} D
inst✝⁴ : Abelian C
inst✝³ : HasInjectiveResolutions C
inst✝² : Abelian D
F : C ⥤ D
inst✝¹ : F.Additive
n : ℕ
X : C
inst✝ : Injective X
⊢ IsZero
    ((HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) (n + 1)).obj
      ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj (InjectiveResolution.self X).cocomplex))
state_after: C : Type u
inst✝⁶ : Category.{v, u} C
D : Type u_1
inst✝⁵ : Category.{u_2, u_1} D
inst✝⁴ : Abelian C
inst✝³ : HasInjectiveResolutions C
inst✝² : Abelian D
F : C ⥤ D
inst✝¹ : F.Additive
n : ℕ
X : C
inst✝ : Injective X
⊢ ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj (InjectiveResolution.self X).cocomplex).ExactAt (n + 1)

tactic: exact ShortComplex.exact_of_isZero_X₂ _ (F.map_isZero (by apply isZero_zero))
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
D : Type u_1
inst✝⁵ : Category.{u_2, u_1} D
inst✝⁴ : Abelian C
inst✝³ : HasInjectiveResolutions C
inst✝² : Abelian D
F : C ⥤ D
inst✝¹ : F.Additive
n : ℕ
X : C
inst✝ : Injective X
⊢ ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj (InjectiveResolution.self X).cocomplex).ExactAt (n + 1)
state_after: no goals

tactic: apply isZero_zero
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
D : Type u_1
inst✝⁵ : Category.{u_2, u_1} D
inst✝⁴ : Abelian C
inst✝³ : HasInjectiveResolutions C
inst✝² : Abelian D
F : C ⥤ D
inst✝¹ : F.Additive
n : ℕ
X : C
inst✝ : Injective X
⊢ IsZero ((InjectiveResolution.self X).cocomplex.X (n + 1))
state_after: no goals
Theorem: Order.Ioc_pred_right_of_not_isMin
File: Mathlib/Order/SuccPred/Basic.lean

tactic: rw [← Ioi_inter_Iic, Iic_pred_of_not_isMin ha, Ioi_inter_Iio]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : PredOrder α
a b : α
ha : ¬IsMin b
⊢ Ioc a (pred b) = Ioo a b
state_after: no goals
Theorem: image_gaugeRescaleHomeomorph_closure
File: Mathlib/Analysis/Convex/GaugeRescale.lean

tactic: refine Subset.antisymm (mapsTo_gaugeRescale_closure hsc hs₀ htc
  (mem_of_mem_nhds ht₀) (absorbent_nhds_zero ht₀)).image_subset ?_
state_before: E : Type u_1
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module ℝ E
inst✝³ : TopologicalSpace E
inst✝² : T1Space E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
s✝ t✝ s t : Set E
hsc : Convex ℝ s
hs₀ : s ∈ 𝓝 0
hsb : IsVonNBounded ℝ s
htc : Convex ℝ t
ht₀ : t ∈ 𝓝 0
htb : IsVonNBounded ℝ t
⊢ ⇑(gaugeRescaleHomeomorph s t hsc hs₀ hsb htc ht₀ htb) '' closure s = closure t
state_after: E : Type u_1
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module ℝ E
inst✝³ : TopologicalSpace E
inst✝² : T1Space E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
s✝ t✝ s t : Set E
hsc : Convex ℝ s
hs₀ : s ∈ 𝓝 0
hsb : IsVonNBounded ℝ s
htc : Convex ℝ t
ht₀ : t ∈ 𝓝 0
htb : IsVonNBounded ℝ t
⊢ closure t ⊆ ⇑(gaugeRescaleHomeomorph s t hsc hs₀ hsb htc ht₀ htb) '' closure s

tactic: rw [← Homeomorph.preimage_symm, ← image_subset_iff]
state_before: E : Type u_1
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module ℝ E
inst✝³ : TopologicalSpace E
inst✝² : T1Space E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
s✝ t✝ s t : Set E
hsc : Convex ℝ s
hs₀ : s ∈ 𝓝 0
hsb : IsVonNBounded ℝ s
htc : Convex ℝ t
ht₀ : t ∈ 𝓝 0
htb : IsVonNBounded ℝ t
⊢ closure t ⊆ ⇑(gaugeRescaleHomeomorph s t hsc hs₀ hsb htc ht₀ htb) '' closure s
state_after: E : Type u_1
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module ℝ E
inst✝³ : TopologicalSpace E
inst✝² : T1Space E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
s✝ t✝ s t : Set E
hsc : Convex ℝ s
hs₀ : s ∈ 𝓝 0
hsb : IsVonNBounded ℝ s
htc : Convex ℝ t
ht₀ : t ∈ 𝓝 0
htb : IsVonNBounded ℝ t
⊢ ⇑(gaugeRescaleHomeomorph s t hsc hs₀ hsb htc ht₀ htb).symm '' closure t ⊆ closure s

tactic: exact (mapsTo_gaugeRescale_closure htc ht₀ hsc
  (mem_of_mem_nhds hs₀) (absorbent_nhds_zero hs₀)).image_subset
state_before: E : Type u_1
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module ℝ E
inst✝³ : TopologicalSpace E
inst✝² : T1Space E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
s✝ t✝ s t : Set E
hsc : Convex ℝ s
hs₀ : s ∈ 𝓝 0
hsb : IsVonNBounded ℝ s
htc : Convex ℝ t
ht₀ : t ∈ 𝓝 0
htb : IsVonNBounded ℝ t
⊢ ⇑(gaugeRescaleHomeomorph s t hsc hs₀ hsb htc ht₀ htb).symm '' closure t ⊆ closure s
state_after: no goals
Theorem: MvPowerSeries.coeff_add_mul_monomial
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: rw [coeff_mul_monomial, if_pos, add_tsub_cancel_right]
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
⊢ (coeff R (m + n)) (φ * (monomial R n) a) = (coeff R m) φ * a
state_after: case hc
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
⊢ n ≤ m + n

tactic: exact le_add_left le_rfl
state_before: case hc
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
⊢ n ≤ m + n
state_after: no goals
Theorem: Polynomial.nextCoeff_C_eq_zero
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: rw [nextCoeff]
state_before: R : Type u
S : Type v
a b c✝ d : R
n m : ℕ
inst✝ : Semiring R
p : R[X]
c : R
⊢ (C c).nextCoeff = 0
state_after: R : Type u
S : Type v
a b c✝ d : R
n m : ℕ
inst✝ : Semiring R
p : R[X]
c : R
⊢ (if (C c).natDegree = 0 then 0 else (C c).coeff ((C c).natDegree - 1)) = 0

tactic: simp
state_before: R : Type u
S : Type v
a b c✝ d : R
n m : ℕ
inst✝ : Semiring R
p : R[X]
c : R
⊢ (if (C c).natDegree = 0 then 0 else (C c).coeff ((C c).natDegree - 1)) = 0
state_after: no goals
Theorem: Real.tan_nonpos_of_nonpos_of_neg_pi_div_two_le
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: linarith
state_before: x : ℝ
hx0 : x ≤ 0
hpx : -(π / 2) ≤ x
⊢ 0 ≤ -x
state_after: no goals

tactic: linarith
state_before: x : ℝ
hx0 : x ≤ 0
hpx : -(π / 2) ≤ x
⊢ -x ≤ π / 2
state_after: no goals
Theorem: Asymptotics.isEquivalent_zero_iff_eventually_zero
File: Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean

tactic: rw [IsEquivalent, sub_zero]
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
⊢ u ~[l] 0 ↔ u =ᶠ[l] 0
state_after: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
⊢ u =o[l] 0 ↔ u =ᶠ[l] 0

tactic: exact isLittleO_zero_right_iff
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
⊢ u =o[l] 0 ↔ u =ᶠ[l] 0
state_after: no goals
Theorem: List.support_formPerm_le'
File: Mathlib/GroupTheory/Perm/List.lean

tactic: refine (zipWith_swap_prod_support' l l.tail).trans ?_
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
l : List α
⊢ {x | l.formPerm x ≠ x} ≤ ↑l.toFinset
state_after: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
l : List α
⊢ ↑(l.toFinset ⊔ l.tail.toFinset) ≤ ↑l.toFinset

tactic: simpa [Finset.subset_iff] using tail_subset l
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
l : List α
⊢ ↑(l.toFinset ⊔ l.tail.toFinset) ≤ ↑l.toFinset
state_after: no goals
Theorem: GeneralizedContinuedFraction.continuantsAux_recurrence
File: Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean

tactic: simp [*, continuantsAux, nextContinuants, nextDenominator, nextNumerator]
state_before: K : Type u_1
g : GeneralizedContinuedFraction K
n : ℕ
inst✝ : DivisionRing K
gp ppred pred : Pair K
nth_s_eq : g.s.get? n = some gp
nth_conts_aux_eq : g.continuantsAux n = ppred
succ_nth_conts_aux_eq : g.continuantsAux (n + 1) = pred
⊢ g.continuantsAux (n + 2) = { a := gp.b * pred.a + gp.a * ppred.a, b := gp.b * pred.b + gp.a * ppred.b }
state_after: no goals
Theorem: IsLocalizedModule.fromLocalizedModule'_smul
File: Mathlib/Algebra/Module/LocalizedModule.lean

tactic: intro a b
state_before: R : Type u_1
inst✝¹² : CommSemiring R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M'
inst✝⁹ : AddCommMonoid M''
A : Type u_5
inst✝⁸ : CommSemiring A
inst✝⁷ : Algebra R A
inst✝⁶ : Module A M'
inst✝⁵ : IsLocalization S A
inst✝⁴ : Module R M
inst✝³ : Module R M'
inst✝² : Module R M''
inst✝¹ : IsScalarTower R A M'
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
r : R
x : LocalizedModule S M
⊢ ∀ (m : M) (s : ↥S),
    r • fromLocalizedModule' S f (LocalizedModule.mk m s) = fromLocalizedModule' S f (r • LocalizedModule.mk m s)
state_after: R : Type u_1
inst✝¹² : CommSemiring R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M'
inst✝⁹ : AddCommMonoid M''
A : Type u_5
inst✝⁸ : CommSemiring A
inst✝⁷ : Algebra R A
inst✝⁶ : Module A M'
inst✝⁵ : IsLocalization S A
inst✝⁴ : Module R M
inst✝³ : Module R M'
inst✝² : Module R M''
inst✝¹ : IsScalarTower R A M'
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
r : R
x : LocalizedModule S M
a : M
b : ↥S
⊢ r • fromLocalizedModule' S f (LocalizedModule.mk a b) = fromLocalizedModule' S f (r • LocalizedModule.mk a b)

tactic: rw [fromLocalizedModule'_mk, LocalizedModule.smul'_mk, fromLocalizedModule'_mk]
state_before: R : Type u_1
inst✝¹² : CommSemiring R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M'
inst✝⁹ : AddCommMonoid M''
A : Type u_5
inst✝⁸ : CommSemiring A
inst✝⁷ : Algebra R A
inst✝⁶ : Module A M'
inst✝⁵ : IsLocalization S A
inst✝⁴ : Module R M
inst✝³ : Module R M'
inst✝² : Module R M''
inst✝¹ : IsScalarTower R A M'
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
r : R
x : LocalizedModule S M
a : M
b : ↥S
⊢ r • fromLocalizedModule' S f (LocalizedModule.mk a b) = fromLocalizedModule' S f (r • LocalizedModule.mk a b)
state_after: R : Type u_1
inst✝¹² : CommSemiring R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M'
inst✝⁹ : AddCommMonoid M''
A : Type u_5
inst✝⁸ : CommSemiring A
inst✝⁷ : Algebra R A
inst✝⁶ : Module A M'
inst✝⁵ : IsLocalization S A
inst✝⁴ : Module R M
inst✝³ : Module R M'
inst✝² : Module R M''
inst✝¹ : IsScalarTower R A M'
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
r : R
x : LocalizedModule S M
a : M
b : ↥S
⊢ r • ↑⋯.unit⁻¹ (f a) = ↑⋯.unit⁻¹ (f (r • a))

tactic: rw [f.map_smul, map_smul]
state_before: R : Type u_1
inst✝¹² : CommSemiring R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M'
inst✝⁹ : AddCommMonoid M''
A : Type u_5
inst✝⁸ : CommSemiring A
inst✝⁷ : Algebra R A
inst✝⁶ : Module A M'
inst✝⁵ : IsLocalization S A
inst✝⁴ : Module R M
inst✝³ : Module R M'
inst✝² : Module R M''
inst✝¹ : IsScalarTower R A M'
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
r : R
x : LocalizedModule S M
a : M
b : ↥S
⊢ r • ↑⋯.unit⁻¹ (f a) = ↑⋯.unit⁻¹ (f (r • a))
state_after: no goals