1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: LieAlgebra.InvariantForm.orthogonal_isCompl
File: Mathlib/Algebra/Lie/InvariantForm.lean

tactic: rw [LieSubmodule.isCompl_iff_coe_toSubmodule]
state_before: K : Type u_1
L : Type u_2
M : Type u_3
inst✝⁶ : Field K
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra K L
inst✝³ : AddCommGroup M
inst✝² : Module K M
inst✝¹ : LieRingModule L M
inst✝ : Module.Finite K L
Φ : LinearMap.BilinForm K L
hΦ_nondeg : Φ.Nondegenerate
hΦ_inv : LinearMap.BilinForm.lieInvariant L Φ
hΦ_refl : Φ.IsRefl
hL : ∀ (I : LieIdeal K L), IsAtom I → ¬IsLieAbelian ↥↑I
I : LieIdeal K L
hI : IsAtom I
⊢ IsCompl I (orthogonal Φ hΦ_inv I)
state_after: K : Type u_1
L : Type u_2
M : Type u_3
inst✝⁶ : Field K
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra K L
inst✝³ : AddCommGroup M
inst✝² : Module K M
inst✝¹ : LieRingModule L M
inst✝ : Module.Finite K L
Φ : LinearMap.BilinForm K L
hΦ_nondeg : Φ.Nondegenerate
hΦ_inv : LinearMap.BilinForm.lieInvariant L Φ
hΦ_refl : Φ.IsRefl
hL : ∀ (I : LieIdeal K L), IsAtom I → ¬IsLieAbelian ↥↑I
I : LieIdeal K L
hI : IsAtom I
⊢ IsCompl ↑I ↑(orthogonal Φ hΦ_inv I)

tactic: exact orthogonal_isCompl_coe_submodule Φ hΦ_nondeg hΦ_inv hΦ_refl hL I hI
state_before: K : Type u_1
L : Type u_2
M : Type u_3
inst✝⁶ : Field K
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra K L
inst✝³ : AddCommGroup M
inst✝² : Module K M
inst✝¹ : LieRingModule L M
inst✝ : Module.Finite K L
Φ : LinearMap.BilinForm K L
hΦ_nondeg : Φ.Nondegenerate
hΦ_inv : LinearMap.BilinForm.lieInvariant L Φ
hΦ_refl : Φ.IsRefl
hL : ∀ (I : LieIdeal K L), IsAtom I → ¬IsLieAbelian ↥↑I
I : LieIdeal K L
hI : IsAtom I
⊢ IsCompl ↑I ↑(orthogonal Φ hΦ_inv I)
state_after: no goals
Theorem: hammingNorm_comp
File: Mathlib/InformationTheory/Hamming.lean

tactic: simpa only [← hammingDist_zero_right, hf₂] using hammingDist_comp f hf₁ (y := fun _ ↦ 0)
state_before: α : Type u_1
ι : Type u_2
β : ι → Type u_3
inst✝⁴ : Fintype ι
inst✝³ : (i : ι) → DecidableEq (β i)
γ : ι → Type u_4
inst✝² : (i : ι) → DecidableEq (γ i)
inst✝¹ : (i : ι) → Zero (β i)
inst✝ : (i : ι) → Zero (γ i)
f : (i : ι) → γ i → β i
x : (i : ι) → γ i
hf₁ : ∀ (i : ι), Injective (f i)
hf₂ : ∀ (i : ι), f i 0 = 0
⊢ (hammingNorm fun i => f i (x i)) = hammingNorm x
state_after: no goals
Theorem: Submodule.torsionBy_isInternal
File: Mathlib/Algebra/Module/Torsion.lean

tactic: rw [← Module.isTorsionBySet_span_singleton_iff, Ideal.submodule_span_eq, ←
  Ideal.finset_inf_span_singleton _ _ hq, Finset.inf_eq_iInf] at hM
state_before: R : Type u_1
M : Type u_2
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_3
inst✝ : DecidableEq ι
S : Finset ι
q : ι → R
hq : (↑S).Pairwise (IsCoprime on q)
hM : Module.IsTorsionBy R M (∏ i ∈ S, q i)
⊢ DirectSum.IsInternal fun i => torsionBy R M (q ↑i)
state_after: R : Type u_1
M : Type u_2
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_3
inst✝ : DecidableEq ι
S : Finset ι
q : ι → R
hq : (↑S).Pairwise (IsCoprime on q)
hM : Module.IsTorsionBySet R M ↑(⨅ a ∈ S, Ideal.span {q a})
⊢ DirectSum.IsInternal fun i => torsionBy R M (q ↑i)

tactic: convert torsionBySet_isInternal
    (fun i hi j hj ij => (Ideal.sup_eq_top_iff_isCoprime (q i) _).mpr <| hq hi hj ij) hM
state_before: R : Type u_1
M : Type u_2
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_3
inst✝ : DecidableEq ι
S : Finset ι
q : ι → R
hq : (↑S).Pairwise (IsCoprime on q)
hM : Module.IsTorsionBySet R M ↑(⨅ a ∈ S, Ideal.span {q a})
⊢ DirectSum.IsInternal fun i => torsionBy R M (q ↑i)
state_after: case h.e'_8.h
R : Type u_1
M : Type u_2
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_3
inst✝ : DecidableEq ι
S : Finset ι
q : ι → R
hq : (↑S).Pairwise (IsCoprime on q)
hM : Module.IsTorsionBySet R M ↑(⨅ a ∈ S, Ideal.span {q a})
x✝ : { x // x ∈ S }
⊢ torsionBy R M (q ↑x✝) = torsionBySet R M ↑(Ideal.span {q ↑x✝})

tactic: exact (torsionBySet_span_singleton_eq _ (R := R) (M := M)).symm
state_before: case h.e'_8.h
R : Type u_1
M : Type u_2
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_3
inst✝ : DecidableEq ι
S : Finset ι
q : ι → R
hq : (↑S).Pairwise (IsCoprime on q)
hM : Module.IsTorsionBySet R M ↑(⨅ a ∈ S, Ideal.span {q a})
x✝ : { x // x ∈ S }
⊢ torsionBy R M (q ↑x✝) = torsionBySet R M ↑(Ideal.span {q ↑x✝})
state_after: no goals
Theorem: zeta_nat_eq_tsum_of_gt_one
File: Mathlib/NumberTheory/LSeries/RiemannZeta.lean

tactic: simp only [zeta_eq_tsum_one_div_nat_cpow
    (by rwa [← ofReal_natCast, ofReal_re, ← Nat.cast_one, Nat.cast_lt] : 1 < re k),
  cpow_natCast]
state_before: k : ℕ
hk : 1 < k
⊢ riemannZeta ↑k = ∑' (n : ℕ), 1 / ↑n ^ k
state_after: no goals

tactic: rwa [← ofReal_natCast, ofReal_re, ← Nat.cast_one, Nat.cast_lt]
state_before: k : ℕ
hk : 1 < k
⊢ 1 < (↑k).re
state_after: no goals
Theorem: GeneralizedContinuedFraction.IntFractPair.succ_nth_stream_eq_none_iff
File: Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean

tactic: rw [IntFractPair.stream]
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
⊢ IntFractPair.stream v (n + 1) = none ↔
    IntFractPair.stream v n = none ∨ ∃ ifp, IntFractPair.stream v n = some ifp ∧ ifp.fr = 0
state_after: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
⊢ ((IntFractPair.stream v n).bind fun ap_n => if ap_n.fr = 0 then none else some (IntFractPair.of ap_n.fr⁻¹)) = none ↔
    IntFractPair.stream v n = none ∨ ∃ ifp, IntFractPair.stream v n = some ifp ∧ ifp.fr = 0

tactic: cases IntFractPair.stream v n <;> simp [imp_false]
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
⊢ ((IntFractPair.stream v n).bind fun ap_n => if ap_n.fr = 0 then none else some (IntFractPair.of ap_n.fr⁻¹)) = none ↔
    IntFractPair.stream v n = none ∨ ∃ ifp, IntFractPair.stream v n = some ifp ∧ ifp.fr = 0
state_after: no goals
Theorem: Set.mem_iff_boolIndicator
File: Mathlib/Data/Set/BoolIndicator.lean

tactic: unfold boolIndicator
state_before: α : Type u_1
s : Set α
x : α
⊢ x ∈ s ↔ s.boolIndicator x = true
state_after: α : Type u_1
s : Set α
x : α
⊢ x ∈ s ↔ (if x ∈ s then true else false) = true

tactic: split_ifs with h <;> simp [h]
state_before: α : Type u_1
s : Set α
x : α
⊢ x ∈ s ↔ (if x ∈ s then true else false) = true
state_after: no goals
Theorem: Finset.prod_mulIndicator_eq_prod_filter
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: exact prod_congr rfl fun x hx ↦ mulIndicator_of_mem (mem_filter.1 hx).2 _
state_before: case refine_1
ι : Type u_1
κ✝ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g✝ : α → β
inst✝¹ : CommMonoid β
κ : Type u_6
s : Finset ι
f : ι → κ → β
t : ι → Set κ
g : ι → κ
inst✝ : DecidablePred fun i => g i ∈ t i
⊢ ∏ x ∈ filter (fun i => g i ∈ t i) s, (t x).mulIndicator (f x) (g x) = ∏ i ∈ filter (fun i => g i ∈ t i) s, f i (g i)
state_after: no goals

tactic: exact prod_eq_one fun x hx ↦ mulIndicator_of_not_mem (mem_filter.1 hx).2 _
state_before: case refine_2
ι : Type u_1
κ✝ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g✝ : α → β
inst✝¹ : CommMonoid β
κ : Type u_6
s : Finset ι
f : ι → κ → β
t : ι → Set κ
g : ι → κ
inst✝ : DecidablePred fun i => g i ∈ t i
⊢ ∏ x ∈ filter (fun x => g x ∉ t x) s, (t x).mulIndicator (f x) (g x) = 1
state_after: no goals
Theorem: Topology.IsScott.scottHausdorff_le
File: Mathlib/Topology/Order/ScottTopology.lean

tactic: rw [IsScott.topology_eq α, scott]
state_before: α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : IsScott α
⊢ scottHausdorff α ≤ inst✝¹
state_after: α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : IsScott α
⊢ scottHausdorff α ≤ upperSet α ⊔ scottHausdorff α

tactic: exact le_sup_right
state_before: α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : IsScott α
⊢ scottHausdorff α ≤ upperSet α ⊔ scottHausdorff α
state_after: no goals
Theorem: Equiv.Perm.cycleOf_pow_apply_self
File: Mathlib/GroupTheory/Perm/Cycle/Factors.lean

tactic: intro n
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableRel f✝.SameCycle
inst✝¹ : DecidableRel g.SameCycle
f : Perm α
inst✝ : DecidableRel f.SameCycle
x : α
⊢ ∀ (n : ℕ), (f.cycleOf x ^ n) x = (f ^ n) x
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableRel f✝.SameCycle
inst✝¹ : DecidableRel g.SameCycle
f : Perm α
inst✝ : DecidableRel f.SameCycle
x : α
n : ℕ
⊢ (f.cycleOf x ^ n) x = (f ^ n) x

tactic: induction' n with n hn
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableRel f✝.SameCycle
inst✝¹ : DecidableRel g.SameCycle
f : Perm α
inst✝ : DecidableRel f.SameCycle
x : α
n : ℕ
⊢ (f.cycleOf x ^ n) x = (f ^ n) x
state_after: case zero
ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableRel f✝.SameCycle
inst✝¹ : DecidableRel g.SameCycle
f : Perm α
inst✝ : DecidableRel f.SameCycle
x : α
⊢ (f.cycleOf x ^ 0) x = (f ^ 0) x

case succ
ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableRel f✝.SameCycle
inst✝¹ : DecidableRel g.SameCycle
f : Perm α
inst✝ : DecidableRel f.SameCycle
x : α
n : ℕ
hn : (f.cycleOf x ^ n) x = (f ^ n) x
⊢ (f.cycleOf x ^ (n + 1)) x = (f ^ (n + 1)) x

tactic: rfl
state_before: case zero
ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableRel f✝.SameCycle
inst✝¹ : DecidableRel g.SameCycle
f : Perm α
inst✝ : DecidableRel f.SameCycle
x : α
⊢ (f.cycleOf x ^ 0) x = (f ^ 0) x
state_after: no goals

tactic: rw [pow_succ', mul_apply, cycleOf_apply, hn, if_pos, pow_succ', mul_apply]
state_before: case succ
ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableRel f✝.SameCycle
inst✝¹ : DecidableRel g.SameCycle
f : Perm α
inst✝ : DecidableRel f.SameCycle
x : α
n : ℕ
hn : (f.cycleOf x ^ n) x = (f ^ n) x
⊢ (f.cycleOf x ^ (n + 1)) x = (f ^ (n + 1)) x
state_after: case succ.hc
ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableRel f✝.SameCycle
inst✝¹ : DecidableRel g.SameCycle
f : Perm α
inst✝ : DecidableRel f.SameCycle
x : α
n : ℕ
hn : (f.cycleOf x ^ n) x = (f ^ n) x
⊢ f.SameCycle x ((f ^ n) x)

tactic: exact ⟨n, rfl⟩
state_before: case succ.hc
ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableRel f✝.SameCycle
inst✝¹ : DecidableRel g.SameCycle
f : Perm α
inst✝ : DecidableRel f.SameCycle
x : α
n : ℕ
hn : (f.cycleOf x ^ n) x = (f ^ n) x
⊢ f.SameCycle x ((f ^ n) x)
state_after: no goals
Theorem: List.map_subset_iff
File: Mathlib/Data/List/Basic.lean

tactic: refine ⟨?_, map_subset f⟩
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁✝ l₂✝ l₁ l₂ : List α
f : α → β
h : Injective f
⊢ map f l₁ ⊆ map f l₂ ↔ l₁ ⊆ l₂
state_after: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁✝ l₂✝ l₁ l₂ : List α
f : α → β
h : Injective f
⊢ map f l₁ ⊆ map f l₂ → l₁ ⊆ l₂

tactic: intro h2 x hx
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁✝ l₂✝ l₁ l₂ : List α
f : α → β
h : Injective f
⊢ map f l₁ ⊆ map f l₂ → l₁ ⊆ l₂
state_after: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁✝ l₂✝ l₁ l₂ : List α
f : α → β
h : Injective f
h2 : map f l₁ ⊆ map f l₂
x : α
hx : x ∈ l₁
⊢ x ∈ l₂

tactic: rcases mem_map.1 (h2 (mem_map_of_mem f hx)) with ⟨x', hx', hxx'⟩
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁✝ l₂✝ l₁ l₂ : List α
f : α → β
h : Injective f
h2 : map f l₁ ⊆ map f l₂
x : α
hx : x ∈ l₁
⊢ x ∈ l₂
state_after: case intro.intro
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁✝ l₂✝ l₁ l₂ : List α
f : α → β
h : Injective f
h2 : map f l₁ ⊆ map f l₂
x : α
hx : x ∈ l₁
x' : α
hx' : x' ∈ l₂
hxx' : f x' = f x
⊢ x ∈ l₂

tactic: cases h hxx'
state_before: case intro.intro
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁✝ l₂✝ l₁ l₂ : List α
f : α → β
h : Injective f
h2 : map f l₁ ⊆ map f l₂
x : α
hx : x ∈ l₁
x' : α
hx' : x' ∈ l₂
hxx' : f x' = f x
⊢ x ∈ l₂
state_after: case intro.intro.refl
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁✝ l₂✝ l₁ l₂ : List α
f : α → β
h : Injective f
h2 : map f l₁ ⊆ map f l₂
x : α
hx : x ∈ l₁
hx' : x ∈ l₂
hxx' : f x = f x
⊢ x ∈ l₂

tactic: exact hx'
state_before: case intro.intro.refl
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁✝ l₂✝ l₁ l₂ : List α
f : α → β
h : Injective f
h2 : map f l₁ ⊆ map f l₂
x : α
hx : x ∈ l₁
hx' : x ∈ l₂
hxx' : f x = f x
⊢ x ∈ l₂
state_after: no goals
Theorem: CategoryTheory.Bicategory.whiskerLeft_eqToHom
File: Mathlib/CategoryTheory/Bicategory/Strict.lean

tactic: cases η
state_before: B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
g h : b ⟶ c
η : g = h
⊢ f ◁ eqToHom η = eqToHom ⋯
state_after: case refl
B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
g : b ⟶ c
⊢ f ◁ eqToHom ⋯ = eqToHom ⋯

tactic: simp only [whiskerLeft_id, eqToHom_refl]
state_before: case refl
B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
g : b ⟶ c
⊢ f ◁ eqToHom ⋯ = eqToHom ⋯
state_after: no goals
Theorem: FirstOrder.Language.Theory.CompleteType.setOf_subset_eq_univ_iff
File: Mathlib/ModelTheory/Types.lean

tactic: have h : { p : T.CompleteType α | S ⊆ ↑p } = ⋂₀ ((fun φ => { p | φ ∈ p }) '' S) := by
  ext
  simp [subset_def]
state_before: L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
⊢ {p | S ⊆ ↑p} = Set.univ ↔ ∀ φ ∈ S, (L.lhomWithConstants α).onTheory T ⊨ᵇ φ
state_after: L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
h : {p | S ⊆ ↑p} = ⋂₀ ((fun φ => {p | φ ∈ p}) '' S)
⊢ {p | S ⊆ ↑p} = Set.univ ↔ ∀ φ ∈ S, (L.lhomWithConstants α).onTheory T ⊨ᵇ φ

tactic: simp_rw [h, sInter_eq_univ, ← setOf_mem_eq_univ_iff]
state_before: L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
h : {p | S ⊆ ↑p} = ⋂₀ ((fun φ => {p | φ ∈ p}) '' S)
⊢ {p | S ⊆ ↑p} = Set.univ ↔ ∀ φ ∈ S, (L.lhomWithConstants α).onTheory T ⊨ᵇ φ
state_after: L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
h : {p | S ⊆ ↑p} = ⋂₀ ((fun φ => {p | φ ∈ p}) '' S)
⊢ (∀ s ∈ (fun φ => {p | φ ∈ p}) '' S, s = Set.univ) ↔ ∀ φ ∈ S, {p | φ ∈ p} = Set.univ

tactic: refine ⟨fun h φ φS => h _ ⟨_, φS, rfl⟩, ?_⟩
state_before: L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
h : {p | S ⊆ ↑p} = ⋂₀ ((fun φ => {p | φ ∈ p}) '' S)
⊢ (∀ s ∈ (fun φ => {p | φ ∈ p}) '' S, s = Set.univ) ↔ ∀ φ ∈ S, {p | φ ∈ p} = Set.univ
state_after: L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
h : {p | S ⊆ ↑p} = ⋂₀ ((fun φ => {p | φ ∈ p}) '' S)
⊢ (∀ φ ∈ S, {p | φ ∈ p} = Set.univ) → ∀ s ∈ (fun φ => {p | φ ∈ p}) '' S, s = Set.univ

tactic: rintro h _ ⟨φ, h1, rfl⟩
state_before: L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
h : {p | S ⊆ ↑p} = ⋂₀ ((fun φ => {p | φ ∈ p}) '' S)
⊢ (∀ φ ∈ S, {p | φ ∈ p} = Set.univ) → ∀ s ∈ (fun φ => {p | φ ∈ p}) '' S, s = Set.univ
state_after: case intro.intro
L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
h✝ : {p | S ⊆ ↑p} = ⋂₀ ((fun φ => {p | φ ∈ p}) '' S)
h : ∀ φ ∈ S, {p | φ ∈ p} = Set.univ
φ : L[[α]].Sentence
h1 : φ ∈ S
⊢ (fun φ => {p | φ ∈ p}) φ = Set.univ

tactic: exact h _ h1
state_before: case intro.intro
L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
h✝ : {p | S ⊆ ↑p} = ⋂₀ ((fun φ => {p | φ ∈ p}) '' S)
h : ∀ φ ∈ S, {p | φ ∈ p} = Set.univ
φ : L[[α]].Sentence
h1 : φ ∈ S
⊢ (fun φ => {p | φ ∈ p}) φ = Set.univ
state_after: no goals

tactic: ext
state_before: L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
⊢ {p | S ⊆ ↑p} = ⋂₀ ((fun φ => {p | φ ∈ p}) '' S)
state_after: case h
L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
x✝ : T.CompleteType α
⊢ x✝ ∈ {p | S ⊆ ↑p} ↔ x✝ ∈ ⋂₀ ((fun φ => {p | φ ∈ p}) '' S)

tactic: simp [subset_def]
state_before: case h
L : Language
T : L.Theory
α : Type w
S : L[[α]].Theory
x✝ : T.CompleteType α
⊢ x✝ ∈ {p | S ⊆ ↑p} ↔ x✝ ∈ ⋂₀ ((fun φ => {p | φ ∈ p}) '' S)
state_after: no goals
Theorem: SchwartzMap.isBigO_cocompact_zpow
File: Mathlib/Analysis/Distribution/SchwartzSpace.lean

tactic: simpa only [Real.rpow_intCast] using isBigO_cocompact_rpow f k
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
D : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
V : Type u_7
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
f : 𝓢(E, F)
inst✝ : ProperSpace E
k : ℤ
⊢ ⇑f =O[cocompact E] fun x => ‖x‖ ^ k
state_after: no goals
Theorem: Bornology.IsVonNBounded.sub
File: Mathlib/Analysis/LocallyConvex/Bounded.lean

tactic: rw [sub_eq_add_neg]
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
inst✝⁴ : SeminormedRing 𝕜
inst✝³ : AddGroup E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : DistribMulAction 𝕜 E
s t : Set E
hs : IsVonNBounded 𝕜 s
ht : IsVonNBounded 𝕜 t
⊢ IsVonNBounded 𝕜 (s - t)
state_after: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
inst✝⁴ : SeminormedRing 𝕜
inst✝³ : AddGroup E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : DistribMulAction 𝕜 E
s t : Set E
hs : IsVonNBounded 𝕜 s
ht : IsVonNBounded 𝕜 t
⊢ IsVonNBounded 𝕜 (s + -t)

tactic: exact hs.add ht.neg
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
inst✝⁴ : SeminormedRing 𝕜
inst✝³ : AddGroup E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : DistribMulAction 𝕜 E
s t : Set E
hs : IsVonNBounded 𝕜 s
ht : IsVonNBounded 𝕜 t
⊢ IsVonNBounded 𝕜 (s + -t)
state_after: no goals
Theorem: MeasureTheory.snorm_exponent_zero
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: simp [snorm]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
⊢ snorm f 0 μ = 0
state_after: no goals
Theorem: Matrix.conjTranspose_conjTranspose
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝ : InvolutiveStar α
M : Matrix m n α
⊢ ∀ (i : m) (j : n), Mᴴᴴ i j = M i j
state_after: no goals
Theorem: LieSubmodule.iSup_induction
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: rw [← LieSubmodule.mem_coeSubmodule, LieSubmodule.iSup_coe_toSubmodule] at hx
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
N : ι → LieSubmodule R L M
C : M → Prop
x : M
hx : x ∈ ⨆ i, N i
hN : ∀ (i : ι), ∀ y ∈ N i, C y
h0 : C 0
hadd : ∀ (y z : M), C y → C z → C (y + z)
⊢ C x
state_after: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
N : ι → LieSubmodule R L M
C : M → Prop
x : M
hx : x ∈ ⨆ i, ↑(N i)
hN : ∀ (i : ι), ∀ y ∈ N i, C y
h0 : C 0
hadd : ∀ (y z : M), C y → C z → C (y + z)
⊢ C x

tactic: exact Submodule.iSup_induction (C := C) (fun i ↦ (N i : Submodule R M)) hx hN h0 hadd
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
N : ι → LieSubmodule R L M
C : M → Prop
x : M
hx : x ∈ ⨆ i, ↑(N i)
hN : ∀ (i : ι), ∀ y ∈ N i, C y
h0 : C 0
hadd : ∀ (y z : M), C y → C z → C (y + z)
⊢ C x
state_after: no goals
Theorem: CategoryTheory.Limits.epi_of_epi_image
File: Mathlib/CategoryTheory/Limits/Shapes/Images.lean

tactic: rw [← image.fac f]
state_before: C : Type u
inst✝³ : Category.{v, u} C
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
X Y : C
f : X ⟶ Y
inst✝² : HasImage f
inst✝¹ : Epi (image.ι f)
inst✝ : Epi (factorThruImage f)
⊢ Epi f
state_after: C : Type u
inst✝³ : Category.{v, u} C
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
X Y : C
f : X ⟶ Y
inst✝² : HasImage f
inst✝¹ : Epi (image.ι f)
inst✝ : Epi (factorThruImage f)
⊢ Epi (factorThruImage f ≫ image.ι f)

tactic: apply epi_comp
state_before: C : Type u
inst✝³ : Category.{v, u} C
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
X Y : C
f : X ⟶ Y
inst✝² : HasImage f
inst✝¹ : Epi (image.ι f)
inst✝ : Epi (factorThruImage f)
⊢ Epi (factorThruImage f ≫ image.ι f)
state_after: no goals
Theorem: FreeGroup.closure_range_of
File: Mathlib/GroupTheory/FreeGroup/Basic.lean

tactic: rw [← lift.range_eq_closure, lift_of_eq_id]
state_before: α✝ : Type u
L L₁ L₂ L₃ L₄ : List (α✝ × Bool)
β : Type v
inst✝ : Group β
f : α✝ → β
x y : FreeGroup α✝
α : Type u_1
⊢ Subgroup.closure (Set.range of) = ⊤
state_after: α✝ : Type u
L L₁ L₂ L₃ L₄ : List (α✝ × Bool)
β : Type v
inst✝ : Group β
f : α✝ → β
x y : FreeGroup α✝
α : Type u_1
⊢ (MonoidHom.id (FreeGroup α)).range = ⊤

tactic: exact MonoidHom.range_top_of_surjective _ Function.surjective_id
state_before: α✝ : Type u
L L₁ L₂ L₃ L₄ : List (α✝ × Bool)
β : Type v
inst✝ : Group β
f : α✝ → β
x y : FreeGroup α✝
α : Type u_1
⊢ (MonoidHom.id (FreeGroup α)).range = ⊤
state_after: no goals
Theorem: CentroidHom.cancel_left
File: Mathlib/Algebra/Ring/CentroidHom.lean

tactic: rw [← comp_apply, h, comp_apply]
state_before: F : Type u_1
M : Type u_2
N : Type u_3
R : Type u_4
α : Type u_5
inst✝ : NonUnitalNonAssocSemiring α
g f₁ f₂ : CentroidHom α
hg : Injective ⇑g
h : g.comp f₁ = g.comp f₂
a : α
⊢ g (f₁ a) = g (f₂ a)
state_after: no goals
Theorem: continuous_coinduced_dom
File: Mathlib/Topology/Order.lean

tactic: simp only [continuous_iff_coinduced_le, coinduced_compose]
state_before: α : Type u
β : Type v
γ : Type u_1
f : α → β
ι : Sort u_2
g : β → γ
t₁ : TopologicalSpace α
t₂ : TopologicalSpace γ
⊢ Continuous g ↔ Continuous (g ∘ f)
state_after: no goals
Theorem: Subring.top_prod
File: Mathlib/Algebra/Ring/Subring/Basic.lean

tactic: simp [mem_prod, MonoidHom.coe_snd]
state_before: R : Type u
S : Type v
T : Type w
inst✝² : Ring R
inst✝¹ : Ring S
inst✝ : Ring T
s : Subring S
x : R × S
⊢ x ∈ ⊤.prod s ↔ x ∈ comap (RingHom.snd R S) s
state_after: no goals
Theorem: Finset.nonempty_Icc
File: Mathlib/Order/Interval/Finset/Basic.lean

tactic: rw [← coe_nonempty, coe_Icc, Set.nonempty_Icc]
state_before: ι : Type u_1
α : Type u_2
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
⊢ (Icc a b).Nonempty ↔ a ≤ b
state_after: no goals
Theorem: List.subperm_of_subset
File: .lake/packages/batteries/Batteries/Data/List/Perm.lean

tactic: exact ⟨nil, .nil, nil_sublist _⟩
state_before: case nil
α✝ : Type u_1
l₁ l₂ : List α✝
H : [] ⊆ l₂
⊢ [] <+~ l₂
state_after: no goals

tactic: have ⟨H₁, H₂⟩ := forall_mem_cons.1 H
state_before: case cons
α✝ : Type u_1
l₁ l₂ : List α✝
a✝¹ : α✝
l✝ : List α✝
h : ∀ (a' : α✝), a' ∈ l✝ → a✝¹ ≠ a'
a✝ : Pairwise (fun x x_1 => x ≠ x_1) l✝
IH : l✝ ⊆ l₂ → l✝ <+~ l₂
H : a✝¹ :: l✝ ⊆ l₂
⊢ a✝¹ :: l✝ <+~ l₂
state_after: case cons
α✝ : Type u_1
l₁ l₂ : List α✝
a✝¹ : α✝
l✝ : List α✝
h : ∀ (a' : α✝), a' ∈ l✝ → a✝¹ ≠ a'
a✝ : Pairwise (fun x x_1 => x ≠ x_1) l✝
IH : l✝ ⊆ l₂ → l✝ <+~ l₂
H : a✝¹ :: l✝ ⊆ l₂
H₁ : a✝¹ ∈ l₂
H₂ : ∀ (x : α✝), x ∈ l✝ → x ∈ l₂
⊢ a✝¹ :: l✝ <+~ l₂
Theorem: IsLocalizedModule.fromLocalizedModule.surj
File: Mathlib/Algebra/Module/LocalizedModule.lean

tactic: rw [fromLocalizedModule_mk, Module.End_algebraMap_isUnit_inv_apply_eq_iff, ← eq1,
  Submonoid.smul_def]
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
x : M'
m : M
s : ↥S
eq1 : (m, s).2 • x = f (m, s).1
⊢ (fromLocalizedModule S f) (LocalizedModule.mk m s) = x
state_after: no goals