1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Nat.lt_size_self
File: Mathlib/Data/Nat/Size.lean

tactic: rw [← one_shiftLeft]
state_before: n : ℕ
⊢ n < 2 ^ n.size
state_after: n : ℕ
⊢ n < 1 <<< n.size

tactic: have : ∀ {n}, n = 0 → n < 1 <<< (size n) := by simp
state_before: n : ℕ
⊢ n < 1 <<< n.size
state_after: n : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
⊢ n < 1 <<< n.size

tactic: apply binaryRec _ _ n
state_before: n : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
⊢ n < 1 <<< n.size
state_after: n : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
⊢ 0 < 1 <<< size 0

n : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
⊢ ∀ (b : Bool) (n : ℕ), n < 1 <<< n.size → bit b n < 1 <<< (bit b n).size

tactic: intro b n IH
state_before: n : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
⊢ ∀ (b : Bool) (n : ℕ), n < 1 <<< n.size → bit b n < 1 <<< (bit b n).size
state_after: n✝ : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
b : Bool
n : ℕ
IH : n < 1 <<< n.size
⊢ bit b n < 1 <<< (bit b n).size

tactic: by_cases h : bit b n = 0
state_before: n✝ : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
b : Bool
n : ℕ
IH : n < 1 <<< n.size
⊢ bit b n < 1 <<< (bit b n).size
state_after: case pos
n✝ : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
b : Bool
n : ℕ
IH : n < 1 <<< n.size
h : bit b n = 0
⊢ bit b n < 1 <<< (bit b n).size

case neg
n✝ : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
b : Bool
n : ℕ
IH : n < 1 <<< n.size
h : ¬bit b n = 0
⊢ bit b n < 1 <<< (bit b n).size

tactic: rw [size_bit h, shiftLeft_succ, shiftLeft_eq, one_mul, ← bit0_val]
state_before: case neg
n✝ : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
b : Bool
n : ℕ
IH : n < 1 <<< n.size
h : ¬bit b n = 0
⊢ bit b n < 1 <<< (bit b n).size
state_after: case neg
n✝ : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
b : Bool
n : ℕ
IH : n < 1 <<< n.size
h : ¬bit b n = 0
⊢ bit b n < bit0 (2 ^ n.size)

tactic: exact bit_lt_bit0 _ (by simpa [shiftLeft_eq, shiftRight_eq_div_pow] using IH)
state_before: case neg
n✝ : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
b : Bool
n : ℕ
IH : n < 1 <<< n.size
h : ¬bit b n = 0
⊢ bit b n < bit0 (2 ^ n.size)
state_after: no goals

tactic: simp
state_before: n : ℕ
⊢ ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
state_after: no goals

tactic: apply this rfl
state_before: n : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
⊢ 0 < 1 <<< size 0
state_after: no goals

tactic: apply this h
state_before: case pos
n✝ : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
b : Bool
n : ℕ
IH : n < 1 <<< n.size
h : bit b n = 0
⊢ bit b n < 1 <<< (bit b n).size
state_after: no goals

tactic: simpa [shiftLeft_eq, shiftRight_eq_div_pow] using IH
state_before: n✝ : ℕ
this : ∀ {n : ℕ}, n = 0 → n < 1 <<< n.size
b : Bool
n : ℕ
IH : n < 1 <<< n.size
h : ¬bit b n = 0
⊢ n < 2 ^ n.size
state_after: no goals
Theorem: Real.Angle.neg_eq_self_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [eq_comm, eq_neg_self_iff]
state_before: θ : Angle
⊢ -θ = θ ↔ θ = 0 ∨ θ = ↑π
state_after: no goals
Theorem: fourierCoeffOn.const_smul
File: Mathlib/Analysis/Fourier/AddCircle.lean

tactic: haveI := Fact.mk (by linarith : 0 < b - a)
state_before: T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a b : ℝ
f : ℝ → E
c : ℂ
n : ℤ
hab : a < b
⊢ fourierCoeffOn hab (c • f) n = c • fourierCoeffOn hab f n
state_after: T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a b : ℝ
f : ℝ → E
c : ℂ
n : ℤ
hab : a < b
this : Fact (0 < b - a)
⊢ fourierCoeffOn hab (c • f) n = c • fourierCoeffOn hab f n

tactic: apply fourierCoeff.const_smul
state_before: T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a b : ℝ
f : ℝ → E
c : ℂ
n : ℤ
hab : a < b
this : Fact (0 < b - a)
⊢ fourierCoeffOn hab (c • f) n = c • fourierCoeffOn hab f n
state_after: no goals

tactic: linarith
state_before: T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a b : ℝ
f : ℝ → E
c : ℂ
n : ℤ
hab : a < b
⊢ 0 < b - a
state_after: no goals
Theorem: PMF.filter_apply_eq_zero_iff
File: Mathlib/Probability/ProbabilityMassFunction/Constructions.lean

tactic: erw [apply_eq_zero_iff, support_filter, Set.mem_inter_iff, not_and_or]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
p : PMF α
s : Set α
h : ∃ a ∈ s, a ∈ p.support
a : α
⊢ (p.filter s h) a = 0 ↔ a ∉ s ∨ a ∉ p.support
state_after: no goals
Theorem: RingHomInvPair.comp_apply_eq
File: Mathlib/Algebra/Ring/CompTypeclasses.lean

tactic: rw [← RingHom.comp_apply, comp_eq]
state_before: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝³ : Semiring R₁
inst✝² : Semiring R₂
inst✝¹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
σ : R₁ →+* R₂
σ' : R₂ →+* R₁
inst✝ : RingHomInvPair σ σ'
x : R₁
⊢ σ' (σ x) = x
state_after: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝³ : Semiring R₁
inst✝² : Semiring R₂
inst✝¹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
σ : R₁ →+* R₂
σ' : R₂ →+* R₁
inst✝ : RingHomInvPair σ σ'
x : R₁
⊢ (RingHom.id R₁) x = x

tactic: simp
state_before: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝³ : Semiring R₁
inst✝² : Semiring R₂
inst✝¹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
σ : R₁ →+* R₂
σ' : R₂ →+* R₁
inst✝ : RingHomInvPair σ σ'
x : R₁
⊢ (RingHom.id R₁) x = x
state_after: no goals
Theorem: gauge_smul
File: Mathlib/Analysis/Convex/Gauge.lean

tactic: rw [← smul_eq_mul, ← gauge_smul_of_nonneg (norm_nonneg r), gauge_norm_smul hs]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
s t : Set E
x✝ : E
a : ℝ
inst✝² : RCLike 𝕜
inst✝¹ : Module 𝕜 E
inst✝ : IsScalarTower ℝ 𝕜 E
hs : Balanced 𝕜 s
r : 𝕜
x : E
⊢ gauge s (r • x) = ‖r‖ * gauge s x
state_after: no goals
Theorem: PartialHomeomorph.trans_of_set'
File: Mathlib/Topology/PartialHomeomorph.lean

tactic: rw [trans_ofSet, restr_source_inter]
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
e' : PartialHomeomorph Y Z
s : Set Y
hs : IsOpen s
⊢ e.trans (ofSet s hs) = e.restr (e.source ∩ ↑e ⁻¹' s)
state_after: no goals
Theorem: Real.rpow_lt_rpow_of_exponent_gt
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: repeat' rw [rpow_def_of_pos hx0]
state_before: x y z : ℝ
n : ℕ
hx0 : 0 < x
hx1 : x < 1
hyz : z < y
⊢ x ^ y < x ^ z
state_after: x y z : ℝ
n : ℕ
hx0 : 0 < x
hx1 : x < 1
hyz : z < y
⊢ rexp (log x * y) < rexp (log x * z)

tactic: rw [exp_lt_exp]
state_before: x y z : ℝ
n : ℕ
hx0 : 0 < x
hx1 : x < 1
hyz : z < y
⊢ rexp (log x * y) < rexp (log x * z)
state_after: x y z : ℝ
n : ℕ
hx0 : 0 < x
hx1 : x < 1
hyz : z < y
⊢ log x * y < log x * z

tactic: exact mul_lt_mul_of_neg_left hyz (log_neg hx0 hx1)
state_before: x y z : ℝ
n : ℕ
hx0 : 0 < x
hx1 : x < 1
hyz : z < y
⊢ log x * y < log x * z
state_after: no goals

tactic: rw [rpow_def_of_pos hx0]
state_before: x y z : ℝ
n : ℕ
hx0 : 0 < x
hx1 : x < 1
hyz : z < y
⊢ rexp (log x * y) < x ^ z
state_after: x y z : ℝ
n : ℕ
hx0 : 0 < x
hx1 : x < 1
hyz : z < y
⊢ rexp (log x * y) < rexp (log x * z)
Theorem: NonUnitalStarAlgHom.snd_prod
File: Mathlib/Algebra/Star/StarAlgHom.lean

tactic: ext
state_before: R : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
inst✝⁹ : Monoid R
inst✝⁸ : NonUnitalNonAssocSemiring A
inst✝⁷ : DistribMulAction R A
inst✝⁶ : Star A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : DistribMulAction R B
inst✝³ : Star B
inst✝² : NonUnitalNonAssocSemiring C
inst✝¹ : DistribMulAction R C
inst✝ : Star C
f : A →⋆ₙₐ[R] B
g : A →⋆ₙₐ[R] C
⊢ (snd R B C).comp (f.prod g) = g
state_after: case h
R : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
inst✝⁹ : Monoid R
inst✝⁸ : NonUnitalNonAssocSemiring A
inst✝⁷ : DistribMulAction R A
inst✝⁶ : Star A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : DistribMulAction R B
inst✝³ : Star B
inst✝² : NonUnitalNonAssocSemiring C
inst✝¹ : DistribMulAction R C
inst✝ : Star C
f : A →⋆ₙₐ[R] B
g : A →⋆ₙₐ[R] C
x✝ : A
⊢ ((snd R B C).comp (f.prod g)) x✝ = g x✝

tactic: rfl
state_before: case h
R : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
inst✝⁹ : Monoid R
inst✝⁸ : NonUnitalNonAssocSemiring A
inst✝⁷ : DistribMulAction R A
inst✝⁶ : Star A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : DistribMulAction R B
inst✝³ : Star B
inst✝² : NonUnitalNonAssocSemiring C
inst✝¹ : DistribMulAction R C
inst✝ : Star C
f : A →⋆ₙₐ[R] B
g : A →⋆ₙₐ[R] C
x✝ : A
⊢ ((snd R B C).comp (f.prod g)) x✝ = g x✝
state_after: no goals
Theorem: Bimod.LeftUnitorBimod.inv_hom_id
File: Mathlib/CategoryTheory/Monoidal/Bimod.lean

tactic: dsimp [hom, inv]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
A B : Mon_ C
M : Bimod A B
inst✝ : HasCoequalizers C
R S : Mon_ C
P : Bimod R S
⊢ inv P ≫ hom P = 𝟙 P.X
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
A B : Mon_ C
M : Bimod A B
inst✝ : HasCoequalizers C
R S : Mon_ C
P : Bimod R S
⊢ ((λ_ P.X).inv ≫ R.one ▷ P.X ≫ coequalizer.π (R.mul ▷ P.X) ((α_ R.X R.X P.X).hom ≫ R.X ◁ P.actLeft)) ≫
      coequalizer.desc P.actLeft ⋯ =
    𝟙 P.X

tactic: slice_lhs 3 4 => rw [coequalizer.π_desc]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
A B : Mon_ C
M : Bimod A B
inst✝ : HasCoequalizers C
R S : Mon_ C
P : Bimod R S
⊢ ((λ_ P.X).inv ≫ R.one ▷ P.X ≫ coequalizer.π (R.mul ▷ P.X) ((α_ R.X R.X P.X).hom ≫ R.X ◁ P.actLeft)) ≫
      coequalizer.desc P.actLeft ⋯ =
    𝟙 P.X
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
A B : Mon_ C
M : Bimod A B
inst✝ : HasCoequalizers C
R S : Mon_ C
P : Bimod R S
⊢ (λ_ P.X).inv ≫ R.one ▷ P.X ≫ P.actLeft = 𝟙 P.X

tactic: rw [one_actLeft, Iso.inv_hom_id]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
A B : Mon_ C
M : Bimod A B
inst✝ : HasCoequalizers C
R S : Mon_ C
P : Bimod R S
⊢ (λ_ P.X).inv ≫ R.one ▷ P.X ≫ P.actLeft = 𝟙 P.X
state_after: no goals
Theorem: himp_left_comm
File: Mathlib/Order/Heyting/Basic.lean

tactic: simp_rw [himp_himp, inf_comm]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : GeneralizedHeytingAlgebra α
a✝ b✝ c✝ d a b c : α
⊢ a ⇨ b ⇨ c = b ⇨ a ⇨ c
state_after: no goals
Theorem: ShrinkingLemma.PartialRefinement.find_mem
File: Mathlib/Topology/ShrinkingLemma.lean

tactic: rw [find]
state_before: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
⊢ find c ne i ∈ c
state_after: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
⊢ (if hi : ∃ v ∈ c, i ∈ v.carrier then hi.choose else ne.some) ∈ c

tactic: split_ifs with h
state_before: ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
⊢ (if hi : ∃ v ∈ c, i ∈ v.carrier then hi.choose else ne.some) ∈ c
state_after: case pos
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ∃ v ∈ c, i ∈ v.carrier
⊢ h.choose ∈ c

case neg
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ¬∃ v ∈ c, i ∈ v.carrier
⊢ ne.some ∈ c

tactic: exacts [h.choose_spec.1, ne.some_mem]
state_before: case pos
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ∃ v ∈ c, i ∈ v.carrier
⊢ h.choose ∈ c

case neg
ι : Type u_1
X : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
u : ι → Set X
s : Set X
c : Set (PartialRefinement u s)
i : ι
ne : c.Nonempty
h : ¬∃ v ∈ c, i ∈ v.carrier
⊢ ne.some ∈ c
state_after: no goals
Theorem: LieDerivation.IsKilling.ad_apply_eq_zero_iff
File: Mathlib/Algebra/Lie/Derivation/Killing.lean

tactic: refine ⟨fun h ↦ ?_, fun h ↦ by simp [h]⟩
state_before: R : Type u_1
L : Type u_2
inst✝⁴ : Field R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : Module.Finite R L
inst✝ : LieAlgebra.IsKilling R L
x : L
⊢ (ad R L) x = 0 ↔ x = 0
state_after: R : Type u_1
L : Type u_2
inst✝⁴ : Field R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : Module.Finite R L
inst✝ : LieAlgebra.IsKilling R L
x : L
h : (ad R L) x = 0
⊢ x = 0

tactic: rwa [← LieHom.mem_ker, ad_ker_eq_center, LieAlgebra.HasTrivialRadical.center_eq_bot,
  LieSubmodule.mem_bot] at h
state_before: R : Type u_1
L : Type u_2
inst✝⁴ : Field R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : Module.Finite R L
inst✝ : LieAlgebra.IsKilling R L
x : L
h : (ad R L) x = 0
⊢ x = 0
state_after: no goals

tactic: simp [h]
state_before: R : Type u_1
L : Type u_2
inst✝⁴ : Field R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : Module.Finite R L
inst✝ : LieAlgebra.IsKilling R L
x : L
h : x = 0
⊢ (ad R L) x = 0
state_after: no goals
Theorem: Finmap.mem_lookup_iff
File: Mathlib/Data/Finmap.lean

tactic: rcases s with ⟨⟨l⟩, hl⟩
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
s : Finmap β
a : α
b : β a
⊢ b ∈ lookup a s ↔ ⟨a, b⟩ ∈ s.entries
state_after: case mk.mk
α : Type u
β : α → Type v
inst✝ : DecidableEq α
a : α
b : β a
entries✝ : Multiset (Sigma β)
l : List (Sigma β)
hl : Multiset.NodupKeys (Quot.mk Setoid.r l)
⊢ b ∈ lookup a { entries := Quot.mk Setoid.r l, nodupKeys := hl } ↔
    ⟨a, b⟩ ∈ { entries := Quot.mk Setoid.r l, nodupKeys := hl }.entries

tactic: exact List.mem_dlookup_iff hl
state_before: case mk.mk
α : Type u
β : α → Type v
inst✝ : DecidableEq α
a : α
b : β a
entries✝ : Multiset (Sigma β)
l : List (Sigma β)
hl : Multiset.NodupKeys (Quot.mk Setoid.r l)
⊢ b ∈ lookup a { entries := Quot.mk Setoid.r l, nodupKeys := hl } ↔
    ⟨a, b⟩ ∈ { entries := Quot.mk Setoid.r l, nodupKeys := hl }.entries
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.top_apply
File: Mathlib/CategoryTheory/MorphismProperty/Basic.lean

tactic: simp only [top_eq]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u_1
inst✝ : Category.{?u.2313, u_1} D
X Y : C
f : X ⟶ Y
⊢ ⊤ f
state_after: no goals
Theorem: isNoetherian_iff_wellFounded
File: Mathlib/RingTheory/Noetherian.lean

tactic: have := (CompleteLattice.wellFounded_characterisations <| Submodule R M).out 0 3
state_before: R : Type u_1
M : Type u_2
P : Type u_3
N : Type w
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
⊢ IsNoetherian R M ↔ WellFounded fun x x_1 => x > x_1
state_after: R : Type u_1
M : Type u_2
P : Type u_3
N : Type w
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
this : (WellFounded fun x x_1 => x > x_1) ↔ ∀ (k : Submodule R M), CompleteLattice.IsCompactElement k
⊢ IsNoetherian R M ↔ WellFounded fun x x_1 => x > x_1

tactic: rw [this]
state_before: R : Type u_1
M : Type u_2
P : Type u_3
N : Type w
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
this : (WellFounded fun x x_1 => x > x_1) ↔ ∀ (k : Submodule R M), CompleteLattice.IsCompactElement k
⊢ IsNoetherian R M ↔ WellFounded fun x x_1 => x > x_1
state_after: R : Type u_1
M : Type u_2
P : Type u_3
N : Type w
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
this : (WellFounded fun x x_1 => x > x_1) ↔ ∀ (k : Submodule R M), CompleteLattice.IsCompactElement k
⊢ IsNoetherian R M ↔ ∀ (k : Submodule R M), CompleteLattice.IsCompactElement k

tactic: exact
  ⟨fun ⟨h⟩ => fun k => (fg_iff_compact k).mp (h k), fun h =>
    ⟨fun k => (fg_iff_compact k).mpr (h k)⟩⟩
state_before: R : Type u_1
M : Type u_2
P : Type u_3
N : Type w
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
this : (WellFounded fun x x_1 => x > x_1) ↔ ∀ (k : Submodule R M), CompleteLattice.IsCompactElement k
⊢ IsNoetherian R M ↔ ∀ (k : Submodule R M), CompleteLattice.IsCompactElement k
state_after: no goals
Theorem: smul_le_iff_le_one_left
File: Mathlib/Algebra/Order/Module/Defs.lean

tactic: rw [one_smul]
state_before: α : Type u_1
β : Type u_2
a a₁ a₂ : α
b b₁ b₂ : β
inst✝⁷ : Monoid α
inst✝⁶ : Zero α
inst✝⁵ : Zero β
inst✝⁴ : MulAction α β
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : SMulPosMono α β
inst✝ : SMulPosReflectLE α β
hb : 0 < b
⊢ a • b ≤ b ↔ a • b ≤ 1 • b
state_after: no goals
Theorem: Basis.mem_span_repr_support
File: Mathlib/LinearAlgebra/Basis.lean

tactic: simp [Finsupp.mem_supported_support]
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
b b₁ : Basis ι R M
i : ι
c : R
x m : M
⊢ b.repr m ∈ Finsupp.supported R R ↑(b.repr m).support ∧ (Finsupp.total ι M R ⇑b) (b.repr m) = m
state_after: no goals
Theorem: iUnion_Icc_zsmul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simpa only [zero_add] using iUnion_Icc_add_zsmul hp 0
state_before: α : Type u_1
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : Archimedean α
p : α
hp : 0 < p
a : α
⊢ ⋃ n, Icc (n • p) ((n + 1) • p) = univ
state_after: no goals
Theorem: MeasureTheory.UnifIntegrable.sub
File: Mathlib/MeasureTheory/Function/UniformIntegrable.lean

tactic: rw [sub_eq_add_neg]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
f g : ι → α → β
p : ℝ≥0∞
hf : UnifIntegrable f p μ
hg : UnifIntegrable g p μ
hp : 1 ≤ p
hf_meas : ∀ (i : ι), AEStronglyMeasurable (f i) μ
hg_meas : ∀ (i : ι), AEStronglyMeasurable (g i) μ
⊢ UnifIntegrable (f - g) p μ
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
f g : ι → α → β
p : ℝ≥0∞
hf : UnifIntegrable f p μ
hg : UnifIntegrable g p μ
hp : 1 ≤ p
hf_meas : ∀ (i : ι), AEStronglyMeasurable (f i) μ
hg_meas : ∀ (i : ι), AEStronglyMeasurable (g i) μ
⊢ UnifIntegrable (f + -g) p μ

tactic: exact hf.add hg.neg hp hf_meas fun i => (hg_meas i).neg
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
f g : ι → α → β
p : ℝ≥0∞
hf : UnifIntegrable f p μ
hg : UnifIntegrable g p μ
hp : 1 ≤ p
hf_meas : ∀ (i : ι), AEStronglyMeasurable (f i) μ
hg_meas : ∀ (i : ι), AEStronglyMeasurable (g i) μ
⊢ UnifIntegrable (f + -g) p μ
state_after: no goals
Theorem: imaginaryPart_surjective
File: Mathlib/Data/Complex/Module.lean

tactic: simp only [imaginaryPart_I_smul, x.property.coe_realPart]
state_before: A : Type u_1
inst✝³ : AddCommGroup A
inst✝² : Module ℂ A
inst✝¹ : StarAddMonoid A
inst✝ : StarModule ℂ A
x : ↥(selfAdjoint A)
⊢ ↑(ℑ (I • ↑x)) = ↑x
state_after: no goals
Theorem: CategoryTheory.Limits.PreservesLimitPair.iso_inv_fst
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/BinaryProducts.lean

tactic: rw [← Iso.cancel_iso_hom_left (PreservesLimitPair.iso G X Y), ← Category.assoc, Iso.hom_inv_id]
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
G : C ⥤ D
P X Y Z : C
f : P ⟶ X
g : P ⟶ Y
inst✝² : HasBinaryProduct X Y
inst✝¹ : HasBinaryProduct (G.obj X) (G.obj Y)
inst✝ : PreservesLimit (pair X Y) G
⊢ (iso G X Y).inv ≫ G.map prod.fst = prod.fst
state_after: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
G : C ⥤ D
P X Y Z : C
f : P ⟶ X
g : P ⟶ Y
inst✝² : HasBinaryProduct X Y
inst✝¹ : HasBinaryProduct (G.obj X) (G.obj Y)
inst✝ : PreservesLimit (pair X Y) G
⊢ 𝟙 (G.obj (X ⨯ Y)) ≫ G.map prod.fst = (iso G X Y).hom ≫ prod.fst

tactic: simp
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
G : C ⥤ D
P X Y Z : C
f : P ⟶ X
g : P ⟶ Y
inst✝² : HasBinaryProduct X Y
inst✝¹ : HasBinaryProduct (G.obj X) (G.obj Y)
inst✝ : PreservesLimit (pair X Y) G
⊢ 𝟙 (G.obj (X ⨯ Y)) ≫ G.map prod.fst = (iso G X Y).hom ≫ prod.fst
state_after: no goals
Theorem: HomologicalComplex.isIso_pOpcycles
File: Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean

tactic: obtain rfl := hi
state_before: C : Type u_1
inst✝² : Category.{u_3, u_1} C
inst✝¹ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L : HomologicalComplex C c
i j k : ι
hi : c.prev j = i
h : K.d i j = 0
inst✝ : K.HasHomology j
⊢ IsIso (K.pOpcycles j)
state_after: C : Type u_1
inst✝² : Category.{u_3, u_1} C
inst✝¹ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L : HomologicalComplex C c
j k : ι
inst✝ : K.HasHomology j
h : K.d (c.prev j) j = 0
⊢ IsIso (K.pOpcycles j)

tactic: exact ShortComplex.isIso_pOpcycles _ h
state_before: C : Type u_1
inst✝² : Category.{u_3, u_1} C
inst✝¹ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L : HomologicalComplex C c
j k : ι
inst✝ : K.HasHomology j
h : K.d (c.prev j) j = 0
⊢ IsIso (K.pOpcycles j)
state_after: no goals
Theorem: contMDiffAt_iff_target
File: Mathlib/Geometry/Manifold/ContMDiff/Defs.lean

tactic: rw [ContMDiffAt, ContMDiffAt, contMDiffWithinAt_iff_target, continuousWithinAt_univ]
state_before: 𝕜 : Type u_1
inst✝³⁷ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³⁶ : NormedAddCommGroup E
inst✝³⁵ : NormedSpace 𝕜 E
H : Type u_3
inst✝³⁴ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝³³ : TopologicalSpace M
inst✝³² : ChartedSpace H M
inst✝³¹ : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝³⁰ : NormedAddCommGroup E'
inst✝²⁹ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝²⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝²⁷ : TopologicalSpace M'
inst✝²⁶ : ChartedSpace H' M'
inst✝²⁵ : SmoothManifoldWithCorners I' M'
E'' : Type u_8
inst✝²⁴ : NormedAddCommGroup E''
inst✝²³ : NormedSpace 𝕜 E''
H'' : Type u_9
inst✝²² : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M'' : Type u_10
inst✝²¹ : TopologicalSpace M''
inst✝²⁰ : ChartedSpace H'' M''
F : Type u_11
inst✝¹⁹ : NormedAddCommGroup F
inst✝¹⁸ : NormedSpace 𝕜 F
G : Type u_12
inst✝¹⁷ : TopologicalSpace G
J : ModelWithCorners 𝕜 F G
N : Type u_13
inst✝¹⁶ : TopologicalSpace N
inst✝¹⁵ : ChartedSpace G N
inst✝¹⁴ : SmoothManifoldWithCorners J N
F' : Type u_14
inst✝¹³ : NormedAddCommGroup F'
inst✝¹² : NormedSpace 𝕜 F'
G' : Type u_15
inst✝¹¹ : TopologicalSpace G'
J' : ModelWithCorners 𝕜 F' G'
N' : Type u_16
inst✝¹⁰ : TopologicalSpace N'
inst✝⁹ : ChartedSpace G' N'
inst✝⁸ : SmoothManifoldWithCorners J' N'
F₁ : Type u_17
inst✝⁷ : NormedAddCommGroup F₁
inst✝⁶ : NormedSpace 𝕜 F₁
F₂ : Type u_18
inst✝⁵ : NormedAddCommGroup F₂
inst✝⁴ : NormedSpace 𝕜 F₂
F₃ : Type u_19
inst✝³ : NormedAddCommGroup F₃
inst✝² : NormedSpace 𝕜 F₃
F₄ : Type u_20
inst✝¹ : NormedAddCommGroup F₄
inst✝ : NormedSpace 𝕜 F₄
e : PartialHomeomorph M H
e' : PartialHomeomorph M' H'
f f₁ : M → M'
s s₁ t : Set M
x✝ : M
m n : ℕ∞
x : M
⊢ ContMDiffAt I I' n f x ↔ ContinuousAt f x ∧ ContMDiffAt I 𝓘(𝕜, E') n (↑(extChartAt I' (f x)) ∘ f) x
state_after: no goals
Theorem: MeasureTheory.mem_ae_dirac_iff
File: Mathlib/MeasureTheory/Measure/Dirac.lean

tactic: by_cases a ∈ s <;> simp [mem_ae_iff, dirac_apply', hs.compl, indicator_apply, *]
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
a✝ a : α
hs : MeasurableSet s
⊢ s ∈ ae (dirac a) ↔ a ∈ s
state_after: no goals