1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.Adjunction.isIso_counit_app_iff_mem_essImage
File: Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean

tactic: constructor
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
inst✝¹ : L.Faithful
inst✝ : L.Full
X : D
⊢ IsIso (h.counit.app X) ↔ X ∈ L.essImage
state_after: case mp
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
inst✝¹ : L.Faithful
inst✝ : L.Full
X : D
⊢ IsIso (h.counit.app X) → X ∈ L.essImage

case mpr
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
inst✝¹ : L.Faithful
inst✝ : L.Full
X : D
⊢ X ∈ L.essImage → IsIso (h.counit.app X)

tactic: intro
state_before: case mp
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
inst✝¹ : L.Faithful
inst✝ : L.Full
X : D
⊢ IsIso (h.counit.app X) → X ∈ L.essImage
state_after: case mp
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
inst✝¹ : L.Faithful
inst✝ : L.Full
X : D
a✝ : IsIso (h.counit.app X)
⊢ X ∈ L.essImage

tactic: exact ⟨R.obj X, ⟨asIso (h.counit.app X)⟩⟩
state_before: case mp
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
inst✝¹ : L.Faithful
inst✝ : L.Full
X : D
a✝ : IsIso (h.counit.app X)
⊢ X ∈ L.essImage
state_after: no goals

tactic: rintro ⟨_, ⟨i⟩⟩
state_before: case mpr
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
inst✝¹ : L.Faithful
inst✝ : L.Full
X : D
⊢ X ∈ L.essImage → IsIso (h.counit.app X)
state_after: case mpr.intro.intro
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
inst✝¹ : L.Faithful
inst✝ : L.Full
X : D
w✝ : C
i : L.obj w✝ ≅ X
⊢ IsIso (h.counit.app X)

tactic: rw [NatTrans.isIso_app_iff_of_iso _ i.symm]
state_before: case mpr.intro.intro
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
inst✝¹ : L.Faithful
inst✝ : L.Full
X : D
w✝ : C
i : L.obj w✝ ≅ X
⊢ IsIso (h.counit.app X)
state_after: case mpr.intro.intro
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
inst✝¹ : L.Faithful
inst✝ : L.Full
X : D
w✝ : C
i : L.obj w✝ ≅ X
⊢ IsIso (h.counit.app (L.obj w✝))

tactic: infer_instance
state_before: case mpr.intro.intro
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
inst✝¹ : L.Faithful
inst✝ : L.Full
X : D
w✝ : C
i : L.obj w✝ ≅ X
⊢ IsIso (h.counit.app (L.obj w✝))
state_after: no goals
Theorem: Profinite.NobelingProof.succ_mono
File: Mathlib/Topology/Category/Profinite/Nobeling.lean

tactic: rw [ModuleCat.mono_iff_injective]
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
⊢ Mono (ModuleCat.ofHom (πs C o))
state_after: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
⊢ Function.Injective ⇑(ModuleCat.ofHom (πs C o))

tactic: exact injective_πs _ _
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
⊢ Function.Injective ⇑(ModuleCat.ofHom (πs C o))
state_after: no goals
Theorem: Function.Periodic.const_smul
File: Mathlib/Algebra/Periodic.lean

tactic: simpa only [smul_add, smul_inv_smul] using h (a • x)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f g : α → β
c c₁ c₂ x✝ : α
inst✝² : AddMonoid α
inst✝¹ : Group γ
inst✝ : DistribMulAction γ α
h : Periodic f c
a : γ
x : α
⊢ (fun x => f (a • x)) (x + a⁻¹ • c) = (fun x => f (a • x)) x
state_after: no goals
Theorem: CharacterModule.eq_zero_of_character_apply
File: Mathlib/Algebra/Module/CharacterModule.lean

tactic: contrapose! h
state_before: R : Type uR
inst✝³ : CommRing R
A : Type uA
inst✝² : AddCommGroup A
A' : Type u_1
inst✝¹ : AddCommGroup A'
B : Type uB
inst✝ : AddCommGroup B
a : A
h : ∀ (c : CharacterModule A), c a = 0
⊢ a = 0
state_after: R : Type uR
inst✝³ : CommRing R
A : Type uA
inst✝² : AddCommGroup A
A' : Type u_1
inst✝¹ : AddCommGroup A'
B : Type uB
inst✝ : AddCommGroup B
a : A
h : a ≠ 0
⊢ ∃ c, c a ≠ 0

tactic: exact exists_character_apply_ne_zero_of_ne_zero h
state_before: R : Type uR
inst✝³ : CommRing R
A : Type uA
inst✝² : AddCommGroup A
A' : Type u_1
inst✝¹ : AddCommGroup A'
B : Type uB
inst✝ : AddCommGroup B
a : A
h : a ≠ 0
⊢ ∃ c, c a ≠ 0
state_after: no goals
Theorem: CategoryTheory.homOfElement_eq_iff
File: Mathlib/CategoryTheory/Types.lean

tactic: aesop
state_before: X : Type u
x y : X
⊢ x = y → homOfElement x = homOfElement y
state_after: no goals
Theorem: Subgroup.IsComplement.equiv_mul_right
File: Mathlib/GroupTheory/Complement.lean

tactic: have : (hSK.equiv (g * k)).fst = (hSK.equiv g).fst :=
  hSK.equiv_fst_eq_iff_leftCosetEquivalence.2
    (by simp [LeftCosetEquivalence, leftCoset_eq_iff])
state_before: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
k : ↥K
⊢ hSK.equiv (g * ↑k) = ((hSK.equiv g).1, (hSK.equiv g).2 * k)
state_after: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
k : ↥K
this : (hSK.equiv (g * ↑k)).1 = (hSK.equiv g).1
⊢ hSK.equiv (g * ↑k) = ((hSK.equiv g).1, (hSK.equiv g).2 * k)

tactic: ext
state_before: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
k : ↥K
this : (hSK.equiv (g * ↑k)).1 = (hSK.equiv g).1
⊢ hSK.equiv (g * ↑k) = ((hSK.equiv g).1, (hSK.equiv g).2 * k)
state_after: case a.a
G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
k : ↥K
this : (hSK.equiv (g * ↑k)).1 = (hSK.equiv g).1
⊢ ↑(hSK.equiv (g * ↑k)).1 = ↑((hSK.equiv g).1, (hSK.equiv g).2 * k).1

case a.a
G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
k : ↥K
this : (hSK.equiv (g * ↑k)).1 = (hSK.equiv g).1
⊢ ↑(hSK.equiv (g * ↑k)).2 = ↑((hSK.equiv g).1, (hSK.equiv g).2 * k).2

tactic: simp [LeftCosetEquivalence, leftCoset_eq_iff]
state_before: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
k : ↥K
⊢ LeftCosetEquivalence (↑K) (g * ↑k) g
state_after: no goals

tactic: rw [this]
state_before: case a.a
G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
k : ↥K
this : (hSK.equiv (g * ↑k)).1 = (hSK.equiv g).1
⊢ ↑(hSK.equiv (g * ↑k)).1 = ↑((hSK.equiv g).1, (hSK.equiv g).2 * k).1
state_after: no goals

tactic: rw [coe_mul, equiv_snd_eq_inv_mul, this, equiv_snd_eq_inv_mul, mul_assoc]
state_before: case a.a
G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
k : ↥K
this : (hSK.equiv (g * ↑k)).1 = (hSK.equiv g).1
⊢ ↑(hSK.equiv (g * ↑k)).2 = ↑((hSK.equiv g).1, (hSK.equiv g).2 * k).2
state_after: no goals
Theorem: Finset.prod_toFinset_eq_subtype
File: Mathlib/Data/Fintype/BigOperators.lean

tactic: rw [← Finset.prod_subtype]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
M : Type u_4
inst✝² : CommMonoid M
inst✝¹ : Fintype α
p : α → Prop
inst✝ : DecidablePred p
f : α → M
⊢ ∏ a ∈ {x | p x}.toFinset, f a = ∏ a : Subtype p, f ↑a
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
M : Type u_4
inst✝² : CommMonoid M
inst✝¹ : Fintype α
p : α → Prop
inst✝ : DecidablePred p
f : α → M
⊢ ∀ (x : α), x ∈ {x | p x}.toFinset ↔ p x

tactic: simp_rw [Set.mem_toFinset]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
M : Type u_4
inst✝² : CommMonoid M
inst✝¹ : Fintype α
p : α → Prop
inst✝ : DecidablePred p
f : α → M
⊢ ∀ (x : α), x ∈ {x | p x}.toFinset ↔ p x
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
M : Type u_4
inst✝² : CommMonoid M
inst✝¹ : Fintype α
p : α → Prop
inst✝ : DecidablePred p
f : α → M
⊢ ∀ (x : α), x ∈ {x | p x} ↔ p x

tactic: intro
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
M : Type u_4
inst✝² : CommMonoid M
inst✝¹ : Fintype α
p : α → Prop
inst✝ : DecidablePred p
f : α → M
⊢ ∀ (x : α), x ∈ {x | p x} ↔ p x
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
M : Type u_4
inst✝² : CommMonoid M
inst✝¹ : Fintype α
p : α → Prop
inst✝ : DecidablePred p
f : α → M
x✝ : α
⊢ x✝ ∈ {x | p x} ↔ p x✝

tactic: rfl
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
M : Type u_4
inst✝² : CommMonoid M
inst✝¹ : Fintype α
p : α → Prop
inst✝ : DecidablePred p
f : α → M
x✝ : α
⊢ x✝ ∈ {x | p x} ↔ p x✝
state_after: no goals
Theorem: Cardinal.bddAbove_image
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [bddAbove_iff_small] at hs ⊢
state_before: α β : Type u
f : Cardinal.{u} → Cardinal.{max u v}
s : Set Cardinal.{u}
hs : BddAbove s
⊢ BddAbove (f '' s)
state_after: α β : Type u
f : Cardinal.{u} → Cardinal.{max u v}
s : Set Cardinal.{u}
hs : Small.{u, u + 1} ↑s
⊢ Small.{max u v, (max u v) + 1} ↑(f '' s)

tactic: exact small_lift _
state_before: α β : Type u
f : Cardinal.{u} → Cardinal.{max u v}
s : Set Cardinal.{u}
hs : Small.{u, u + 1} ↑s
⊢ Small.{max u v, (max u v) + 1} ↑(f '' s)
state_after: no goals
Theorem: Matroid.Base.exchange_mem
File: Mathlib/Data/Matroid/Basic.lean

tactic: simpa using hB₁.exchange hB₂ ⟨hxB₁, hxB₂⟩
state_before: α : Type u_1
M : Matroid α
B₁ B₂ : Set α
e : α
hB₁ : M.Base B₁
hB₂ : M.Base B₂
hxB₁ : e ∈ B₁
hxB₂ : e ∉ B₂
⊢ ∃ y, (y ∈ B₂ ∧ y ∉ B₁) ∧ M.Base (insert y (B₁ \ {e}))
state_after: no goals
Theorem: preNormEDS'_one
File: Mathlib/NumberTheory/EllipticDivisibilitySequence.lean

tactic: rw [preNormEDS']
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
⊢ preNormEDS' b c d 1 = 1
state_after: no goals
Theorem: Finmap.keys_replace
File: Mathlib/Data/Finmap.lean

tactic: simp
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a : α
b : β a
s✝ : Finmap β
s : AList β
⊢ (replace a b ⟦s⟧).keys = ⟦s⟧.keys
state_after: no goals
Theorem: MeasureTheory.ae_nonneg_restrict_of_forall_setIntegral_nonneg_inter
File: Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean

tactic: refine ae_nonneg_of_forall_setIntegral_nonneg hf fun s hs h's => ?_
state_before: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
t : Set α
hf : IntegrableOn f t μ
hf_zero : ∀ (s : Set α), MeasurableSet s → μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
⊢ 0 ≤ᶠ[ae (μ.restrict t)] f
state_after: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
t : Set α
hf : IntegrableOn f t μ
hf_zero : ∀ (s : Set α), MeasurableSet s → μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
s : Set α
hs : MeasurableSet s
h's : (μ.restrict t) s < ⊤
⊢ 0 ≤ ∫ (x : α) in s, f x ∂μ.restrict t

tactic: simp_rw [Measure.restrict_restrict hs]
state_before: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
t : Set α
hf : IntegrableOn f t μ
hf_zero : ∀ (s : Set α), MeasurableSet s → μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
s : Set α
hs : MeasurableSet s
h's : (μ.restrict t) s < ⊤
⊢ 0 ≤ ∫ (x : α) in s, f x ∂μ.restrict t
state_after: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
t : Set α
hf : IntegrableOn f t μ
hf_zero : ∀ (s : Set α), MeasurableSet s → μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
s : Set α
hs : MeasurableSet s
h's : (μ.restrict t) s < ⊤
⊢ 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ

tactic: apply hf_zero s hs
state_before: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
t : Set α
hf : IntegrableOn f t μ
hf_zero : ∀ (s : Set α), MeasurableSet s → μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
s : Set α
hs : MeasurableSet s
h's : (μ.restrict t) s < ⊤
⊢ 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
state_after: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
t : Set α
hf : IntegrableOn f t μ
hf_zero : ∀ (s : Set α), MeasurableSet s → μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
s : Set α
hs : MeasurableSet s
h's : (μ.restrict t) s < ⊤
⊢ μ (s ∩ t) < ⊤

tactic: rwa [Measure.restrict_apply hs] at h's
state_before: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
t : Set α
hf : IntegrableOn f t μ
hf_zero : ∀ (s : Set α), MeasurableSet s → μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
s : Set α
hs : MeasurableSet s
h's : (μ.restrict t) s < ⊤
⊢ μ (s ∩ t) < ⊤
state_after: no goals
Theorem: Seminorm.bddAbove_range_iff
File: Mathlib/Analysis/Seminorm.lean

tactic: rw [Seminorm.bddAbove_iff, ← range_comp, bddAbove_range_pi]
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x : E
ι : Sort u_13
p : ι → Seminorm 𝕜 E
⊢ BddAbove (range p) ↔ ∀ (x : E), BddAbove (range fun i => (p i) x)
state_after: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x : E
ι : Sort u_13
p : ι → Seminorm 𝕜 E
⊢ (∀ (a : E), BddAbove (range fun i => (DFunLike.coe ∘ p) i a)) ↔ ∀ (x : E), BddAbove (range fun i => (p i) x)

tactic: rfl
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x : E
ι : Sort u_13
p : ι → Seminorm 𝕜 E
⊢ (∀ (a : E), BddAbove (range fun i => (DFunLike.coe ∘ p) i a)) ↔ ∀ (x : E), BddAbove (range fun i => (p i) x)
state_after: no goals
Theorem: Basis.repr_reindex_apply
File: Mathlib/LinearAlgebra/Basis.lean

tactic: simp
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
b' : Basis ι' R M'
e : ι ≃ ι'
i' : ι'
⊢ ((Finsupp.domLCongr e) (b.repr x)) i' = (b.repr x) (e.symm i')
state_after: no goals
Theorem: Localization.mk_eq_mk_iff'
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: simp_rw [mk_eq_mk_iff, r_iff_exists, mul_left_cancel_iff, exists_const]
state_before: α : Type u_1
inst✝ : CancelCommMonoid α
s : Submonoid α
a₁ b₁ : α
a₂ b₂ : ↥s
⊢ mk a₁ a₂ = mk b₁ b₂ ↔ ↑b₂ * a₁ = ↑a₂ * b₁
state_after: no goals
Theorem: Multiset.inl_mem_disjSum
File: Mathlib/Data/Multiset/Sum.lean

tactic: rw [mem_disjSum, or_iff_left]
state_before: α : Type u_1
β : Type u_2
s : Multiset α
t : Multiset β
s₁ s₂ : Multiset α
t₁ t₂ : Multiset β
a : α
b : β
x : α ⊕ β
⊢ inl a ∈ s.disjSum t ↔ a ∈ s
state_after: α : Type u_1
β : Type u_2
s : Multiset α
t : Multiset β
s₁ s₂ : Multiset α
t₁ t₂ : Multiset β
a : α
b : β
x : α ⊕ β
⊢ (∃ a_1 ∈ s, inl a_1 = inl a) ↔ a ∈ s

α : Type u_1
β : Type u_2
s : Multiset α
t : Multiset β
s₁ s₂ : Multiset α
t₁ t₂ : Multiset β
a : α
b : β
x : α ⊕ β
⊢ ¬∃ b ∈ t, inr b = inl a

tactic: rintro ⟨b, _, hb⟩
state_before: α : Type u_1
β : Type u_2
s : Multiset α
t : Multiset β
s₁ s₂ : Multiset α
t₁ t₂ : Multiset β
a : α
b : β
x : α ⊕ β
⊢ ¬∃ b ∈ t, inr b = inl a
state_after: case intro.intro
α : Type u_1
β : Type u_2
s : Multiset α
t : Multiset β
s₁ s₂ : Multiset α
t₁ t₂ : Multiset β
a : α
b✝ : β
x : α ⊕ β
b : β
left✝ : b ∈ t
hb : inr b = inl a
⊢ False

tactic: exact inr_ne_inl hb
state_before: case intro.intro
α : Type u_1
β : Type u_2
s : Multiset α
t : Multiset β
s₁ s₂ : Multiset α
t₁ t₂ : Multiset β
a : α
b✝ : β
x : α ⊕ β
b : β
left✝ : b ∈ t
hb : inr b = inl a
⊢ False
state_after: no goals

tactic: simp only [inl.injEq, exists_eq_right]
state_before: α : Type u_1
β : Type u_2
s : Multiset α
t : Multiset β
s₁ s₂ : Multiset α
t₁ t₂ : Multiset β
a : α
b : β
x : α ⊕ β
⊢ (∃ a_1 ∈ s, inl a_1 = inl a) ↔ a ∈ s
state_after: no goals
Theorem: NNRat.ext_num_den
File: Mathlib/Data/NNRat/Defs.lean

tactic: refine ext <| Rat.ext ?_ ?_
state_before: p q : ℚ≥0
hn : p.num = q.num
hd : p.den = q.den
⊢ p = q
state_after: case refine_1
p q : ℚ≥0
hn : p.num = q.num
hd : p.den = q.den
⊢ (↑p).num = (↑q).num

case refine_2
p q : ℚ≥0
hn : p.num = q.num
hd : p.den = q.den
⊢ (↑p).den = (↑q).den

tactic: apply (Int.natAbs_inj_of_nonneg_of_nonneg _ _).1 hn
state_before: case refine_1
p q : ℚ≥0
hn : p.num = q.num
hd : p.den = q.den
⊢ (↑p).num = (↑q).num
state_after: p q : ℚ≥0
hn : p.num = q.num
hd : p.den = q.den
⊢ 0 ≤ (↑p).num

p q : ℚ≥0
hn : p.num = q.num
hd : p.den = q.den
⊢ 0 ≤ (↑q).num

tactic: exact Rat.num_nonneg.2 p.2
state_before: p q : ℚ≥0
hn : p.num = q.num
hd : p.den = q.den
⊢ 0 ≤ (↑p).num
state_after: no goals

tactic: exact Rat.num_nonneg.2 q.2
state_before: p q : ℚ≥0
hn : p.num = q.num
hd : p.den = q.den
⊢ 0 ≤ (↑q).num
state_after: no goals

tactic: exact hd
state_before: case refine_2
p q : ℚ≥0
hn : p.num = q.num
hd : p.den = q.den
⊢ (↑p).den = (↑q).den
state_after: no goals
Theorem: NonUnitalRingHom.zero_comp
File: Mathlib/Algebra/Ring/Hom/Defs.lean

tactic: ext
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : NonUnitalNonAssocSemiring α
inst✝¹ : NonUnitalNonAssocSemiring β
inst✝ : NonUnitalNonAssocSemiring γ
g : β →ₙ+* γ
f✝ f : α →ₙ+* β
⊢ comp 0 f = 0
state_after: case a
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : NonUnitalNonAssocSemiring α
inst✝¹ : NonUnitalNonAssocSemiring β
inst✝ : NonUnitalNonAssocSemiring γ
g : β →ₙ+* γ
f✝ f : α →ₙ+* β
x✝ : α
⊢ (comp 0 f) x✝ = 0 x✝

tactic: rfl
state_before: case a
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : NonUnitalNonAssocSemiring α
inst✝¹ : NonUnitalNonAssocSemiring β
inst✝ : NonUnitalNonAssocSemiring γ
g : β →ₙ+* γ
f✝ f : α →ₙ+* β
x✝ : α
⊢ (comp 0 f) x✝ = 0 x✝
state_after: no goals
Theorem: WithSeminorms.tendsto_nhds'
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

tactic: simp [hp.hasBasis_ball.tendsto_right_iff]
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
u : F → E
f : Filter F
y₀ : E
⊢ Tendsto u f (𝓝 y₀) ↔ ∀ (s : Finset ι) (ε : ℝ), 0 < ε → ∀ᶠ (x : F) in f, (s.sup p) (u x - y₀) < ε
state_after: no goals
Theorem: Set.pi_univ_Ioc_update_right
File: Mathlib/Order/Interval/Set/Pi.lean

tactic: have : Ioc (x i₀) m = Iic m ∩ Ioc (x i₀) (y i₀) := by
  rw [← Ioi_inter_Iic, ← Ioi_inter_Iic, inter_left_comm,
    inter_eq_self_of_subset_left (Iic_subset_Iic.2 hm)]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : m ≤ y i₀
⊢ (univ.pi fun i => Ioc (x i) (update y i₀ m i)) = {z | z i₀ ≤ m} ∩ univ.pi fun i => Ioc (x i) (y i)
state_after: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : m ≤ y i₀
this : Ioc (x i₀) m = Iic m ∩ Ioc (x i₀) (y i₀)
⊢ (univ.pi fun i => Ioc (x i) (update y i₀ m i)) = {z | z i₀ ≤ m} ∩ univ.pi fun i => Ioc (x i) (y i)

tactic: simp_rw [univ_pi_update i₀ y m fun i z ↦ Ioc (x i) z, ← pi_inter_compl ({i₀} : Set ι),
  singleton_pi', ← inter_assoc, this]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : m ≤ y i₀
this : Ioc (x i₀) m = Iic m ∩ Ioc (x i₀) (y i₀)
⊢ (univ.pi fun i => Ioc (x i) (update y i₀ m i)) = {z | z i₀ ≤ m} ∩ univ.pi fun i => Ioc (x i) (y i)
state_after: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : m ≤ y i₀
this : Ioc (x i₀) m = Iic m ∩ Ioc (x i₀) (y i₀)
⊢ ({x_1 | x_1 i₀ ∈ Iic m ∩ Ioc (x i₀) (y i₀)} ∩ {i₀}ᶜ.pi fun j => Ioc (x j) (y j)) =
    {z | z i₀ ≤ m} ∩ {x_1 | x_1 i₀ ∈ Ioc (x i₀) (y i₀)} ∩ {i₀}ᶜ.pi fun j => Ioc (x j) (y j)

tactic: rfl
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : m ≤ y i₀
this : Ioc (x i₀) m = Iic m ∩ Ioc (x i₀) (y i₀)
⊢ ({x_1 | x_1 i₀ ∈ Iic m ∩ Ioc (x i₀) (y i₀)} ∩ {i₀}ᶜ.pi fun j => Ioc (x j) (y j)) =
    {z | z i₀ ≤ m} ∩ {x_1 | x_1 i₀ ∈ Ioc (x i₀) (y i₀)} ∩ {i₀}ᶜ.pi fun j => Ioc (x j) (y j)
state_after: no goals

tactic: rw [← Ioi_inter_Iic, ← Ioi_inter_Iic, inter_left_comm,
  inter_eq_self_of_subset_left (Iic_subset_Iic.2 hm)]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → Preorder (α i)
x✝ y✝ : (i : ι) → α i
inst✝ : DecidableEq ι
x y : (i : ι) → α i
i₀ : ι
m : α i₀
hm : m ≤ y i₀
⊢ Ioc (x i₀) m = Iic m ∩ Ioc (x i₀) (y i₀)
state_after: no goals
Theorem: dimH_union
File: Mathlib/Topology/MetricSpace/HausdorffDimension.lean

tactic: rw [union_eq_iUnion, dimH_iUnion, iSup_bool_eq, cond, cond, ENNReal.sup_eq_max]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
s t : Set X
⊢ dimH (s ∪ t) = max (dimH s) (dimH t)
state_after: no goals
Theorem: Nat.Primrec'.prim_iff₂
File: Mathlib/Computability/Primrec.lean

tactic: simp
state_before: f : ℕ → ℕ → ℕ
h : Primrec fun v => f v.head v.tail.head
v : ℕ × ℕ
⊢ f (v.1 ::ᵥ v.2 ::ᵥ nil).head (v.1 ::ᵥ v.2 ::ᵥ nil).tail.head = f v.1 v.2
state_after: no goals
Theorem: Sym.map_id
File: Mathlib/Data/Sym/Basic.lean

tactic: ext
state_before: α✝ : Type u_1
β : Type u_2
n✝ n' m : ℕ
s✝ : Sym α✝ n✝
a b : α✝
α : Type u_3
n : ℕ
s : Sym α n
⊢ map id s = s
state_after: case h
α✝ : Type u_1
β : Type u_2
n✝ n' m : ℕ
s✝ : Sym α✝ n✝
a b : α✝
α : Type u_3
n : ℕ
s : Sym α n
⊢ ↑(map id s) = ↑s

tactic: simp only [map, val_eq_coe, id_eq, Multiset.map_id', coe_inj]
state_before: case h
α✝ : Type u_1
β : Type u_2
n✝ n' m : ℕ
s✝ : Sym α✝ n✝
a b : α✝
α : Type u_3
n : ℕ
s : Sym α n
⊢ ↑(map id s) = ↑s
state_after: case h
α✝ : Type u_1
β : Type u_2
n✝ n' m : ℕ
s✝ : Sym α✝ n✝
a b : α✝
α : Type u_3
n : ℕ
s : Sym α n
⊢ ⟨↑s, ⋯⟩ = s

tactic: rfl
state_before: case h
α✝ : Type u_1
β : Type u_2
n✝ n' m : ℕ
s✝ : Sym α✝ n✝
a b : α✝
α : Type u_3
n : ℕ
s : Sym α n
⊢ ⟨↑s, ⋯⟩ = s
state_after: no goals