1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.ShiftMkCore.shiftFunctor_eq
File: Mathlib/CategoryTheory/Shift/Basic.lean

tactic: rfl
state_before: C : Type u
A : Type u_1
inst✝² : Category.{v, u} C
inst✝¹ : AddMonoid A
inst✝ : HasShift C A
h : ShiftMkCore C A
a : A
⊢ shiftFunctor C a = h.F a
state_after: no goals
Theorem: PresentedGroup.closure_range_of
File: Mathlib/GroupTheory/PresentedGroup.lean

tactic: have : (PresentedGroup.of : α → PresentedGroup rels) = QuotientGroup.mk' _ ∘ FreeGroup.of := rfl
state_before: α : Type u_1
rels : Set (FreeGroup α)
⊢ Subgroup.closure (Set.range of) = ⊤
state_after: α : Type u_1
rels : Set (FreeGroup α)
this : of = ⇑(QuotientGroup.mk' (Subgroup.normalClosure rels)) ∘ FreeGroup.of
⊢ Subgroup.closure (Set.range of) = ⊤

tactic: rw [this, Set.range_comp, ← MonoidHom.map_closure (QuotientGroup.mk' _),
  FreeGroup.closure_range_of, ← MonoidHom.range_eq_map]
state_before: α : Type u_1
rels : Set (FreeGroup α)
this : of = ⇑(QuotientGroup.mk' (Subgroup.normalClosure rels)) ∘ FreeGroup.of
⊢ Subgroup.closure (Set.range of) = ⊤
state_after: α : Type u_1
rels : Set (FreeGroup α)
this : of = ⇑(QuotientGroup.mk' (Subgroup.normalClosure rels)) ∘ FreeGroup.of
⊢ (QuotientGroup.mk' (Subgroup.normalClosure rels)).range = ⊤

tactic: exact MonoidHom.range_top_of_surjective _ (QuotientGroup.mk'_surjective _)
state_before: α : Type u_1
rels : Set (FreeGroup α)
this : of = ⇑(QuotientGroup.mk' (Subgroup.normalClosure rels)) ∘ FreeGroup.of
⊢ (QuotientGroup.mk' (Subgroup.normalClosure rels)).range = ⊤
state_after: no goals
Theorem: Equiv.option_symm_apply_none_iff
File: Mathlib/Logic/Equiv/Option.lean

tactic: simpa using (congr_arg e h).symm
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Option α ≃ Option β
h : e.symm none = none
⊢ e none = none
state_after: no goals

tactic: simpa using (congr_arg e.symm h).symm
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Option α ≃ Option β
h : e none = none
⊢ e.symm none = none
state_after: no goals
Theorem: MeasureTheory.stoppedValue_lowerCrossingTime
File: Mathlib/Probability/Martingale/Upcrossing.lean

tactic: obtain ⟨j, hj₁, hj₂⟩ := (hitting_le_iff_of_lt _ (lt_of_le_of_ne lowerCrossingTime_le h)).1 le_rfl
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f : ℕ → Ω → ℝ
N n m : ℕ
ω : Ω
h : lowerCrossingTime a b f N n ω ≠ N
⊢ stoppedValue f (lowerCrossingTime a b f N n) ω ≤ a
state_after: case intro.intro
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f : ℕ → Ω → ℝ
N n m : ℕ
ω : Ω
h : lowerCrossingTime a b f N n ω ≠ N
j : ℕ
hj₁ : j ∈ Set.Icc (upperCrossingTime a b f N n ω) (lowerCrossingTime a b f N n ω)
hj₂ : f j ω ∈ Set.Iic a
⊢ stoppedValue f (lowerCrossingTime a b f N n) ω ≤ a

tactic: exact stoppedValue_hitting_mem ⟨j, ⟨hj₁.1, le_trans hj₁.2 lowerCrossingTime_le⟩, hj₂⟩
state_before: case intro.intro
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f : ℕ → Ω → ℝ
N n m : ℕ
ω : Ω
h : lowerCrossingTime a b f N n ω ≠ N
j : ℕ
hj₁ : j ∈ Set.Icc (upperCrossingTime a b f N n ω) (lowerCrossingTime a b f N n ω)
hj₂ : f j ω ∈ Set.Iic a
⊢ stoppedValue f (lowerCrossingTime a b f N n) ω ≤ a
state_after: no goals
Theorem: Bool.range_eq
File: Mathlib/Data/Bool/Set.lean

tactic: rw [← image_univ, univ_eq, image_pair]
state_before: α : Type u_1
f : Bool → α
⊢ range f = {f false, f true}
state_after: no goals
Theorem: zero_pow_le_one
File: Mathlib/Algebra/Order/Ring/Basic.lean

tactic: rw [zero_pow n.succ_ne_zero]
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedSemiring R
a b x y : R
n✝ m n : ℕ
⊢ 0 ^ (n + 1) ≤ 1
state_after: α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedSemiring R
a b x y : R
n✝ m n : ℕ
⊢ 0 ≤ 1

tactic: exact zero_le_one
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedSemiring R
a b x y : R
n✝ m n : ℕ
⊢ 0 ≤ 1
state_after: no goals
Theorem: homotopyEquivalences_le_quasiIso
File: Mathlib/Algebra/Homology/QuasiIso.lean

tactic: rintro K L _ ⟨e, rfl⟩
state_before: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
c : ComplexShape ι
K L : HomologicalComplex C c
e : HomotopyEquiv K L
inst✝² : ∀ (i : ι), K.HasHomology i
inst✝¹ : ∀ (i : ι), L.HasHomology i
inst✝ : CategoryWithHomology C
⊢ homotopyEquivalences C c ≤ quasiIso C c
state_after: case intro
ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
c : ComplexShape ι
K✝ L✝ : HomologicalComplex C c
e✝ : HomotopyEquiv K✝ L✝
inst✝² : ∀ (i : ι), K✝.HasHomology i
inst✝¹ : ∀ (i : ι), L✝.HasHomology i
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
e : HomotopyEquiv K L
⊢ quasiIso C c e.hom

tactic: simp only [HomologicalComplex.mem_quasiIso_iff]
state_before: case intro
ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
c : ComplexShape ι
K✝ L✝ : HomologicalComplex C c
e✝ : HomotopyEquiv K✝ L✝
inst✝² : ∀ (i : ι), K✝.HasHomology i
inst✝¹ : ∀ (i : ι), L✝.HasHomology i
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
e : HomotopyEquiv K L
⊢ quasiIso C c e.hom
state_after: case intro
ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
c : ComplexShape ι
K✝ L✝ : HomologicalComplex C c
e✝ : HomotopyEquiv K✝ L✝
inst✝² : ∀ (i : ι), K✝.HasHomology i
inst✝¹ : ∀ (i : ι), L✝.HasHomology i
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
e : HomotopyEquiv K L
⊢ QuasiIso e.hom

tactic: infer_instance
state_before: case intro
ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
c : ComplexShape ι
K✝ L✝ : HomologicalComplex C c
e✝ : HomotopyEquiv K✝ L✝
inst✝² : ∀ (i : ι), K✝.HasHomology i
inst✝¹ : ∀ (i : ι), L✝.HasHomology i
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
e : HomotopyEquiv K L
⊢ QuasiIso e.hom
state_after: no goals
Theorem: List.count_erase_self
File: .lake/packages/batteries/Batteries/Data/List/Count.lean

tactic: rw [count_erase, if_pos rfl]
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l : List α
⊢ count a (l.erase a) = count a l - 1
state_after: no goals
Theorem: UniqueMul.iff_existsUnique
File: Mathlib/Algebra/Group/UniqueProds.lean

tactic: simpa
state_before: G : Type u_1
H : Type u_2
inst✝¹ : Mul G
inst✝ : Mul H
A B : Finset G
a0 b0 : G
aA : a0 ∈ A
bB : b0 ∈ B
x✝ : UniqueMul A B a0 b0
⊢ ∀ (y : G × G), (fun ab => ab ∈ A ×ˢ B ∧ ab.1 * ab.2 = a0 * b0) y → y = (a0, b0)
state_after: no goals

tactic: rintro ⟨x1, x2⟩ _ J x y hx hy l
state_before: G : Type u_1
H : Type u_2
inst✝¹ : Mul G
inst✝ : Mul H
A B : Finset G
a0 b0 : G
aA : a0 ∈ A
bB : b0 ∈ B
h : ∃! ab, ab ∈ A ×ˢ B ∧ ab.1 * ab.2 = a0 * b0
⊢ ∀ (x : G × G),
    x ∈ A ×ˢ B ∧ x.1 * x.2 = a0 * b0 → (∀ (y : G × G), y ∈ A ×ˢ B ∧ y.1 * y.2 = a0 * b0 → y = x) → UniqueMul A B a0 b0
state_after: case mk
G : Type u_1
H : Type u_2
inst✝¹ : Mul G
inst✝ : Mul H
A B : Finset G
a0 b0 : G
aA : a0 ∈ A
bB : b0 ∈ B
h : ∃! ab, ab ∈ A ×ˢ B ∧ ab.1 * ab.2 = a0 * b0
x1 x2 : G
a✝ : (x1, x2) ∈ A ×ˢ B ∧ (x1, x2).1 * (x1, x2).2 = a0 * b0
J : ∀ (y : G × G), y ∈ A ×ˢ B ∧ y.1 * y.2 = a0 * b0 → y = (x1, x2)
x y : G
hx : x ∈ A
hy : y ∈ B
l : x * y = a0 * b0
⊢ x = a0 ∧ y = b0

tactic: rcases Prod.mk.inj_iff.mp (J (a0, b0) ⟨Finset.mk_mem_product aA bB, rfl⟩) with ⟨rfl, rfl⟩
state_before: case mk
G : Type u_1
H : Type u_2
inst✝¹ : Mul G
inst✝ : Mul H
A B : Finset G
a0 b0 : G
aA : a0 ∈ A
bB : b0 ∈ B
h : ∃! ab, ab ∈ A ×ˢ B ∧ ab.1 * ab.2 = a0 * b0
x1 x2 : G
a✝ : (x1, x2) ∈ A ×ˢ B ∧ (x1, x2).1 * (x1, x2).2 = a0 * b0
J : ∀ (y : G × G), y ∈ A ×ˢ B ∧ y.1 * y.2 = a0 * b0 → y = (x1, x2)
x y : G
hx : x ∈ A
hy : y ∈ B
l : x * y = a0 * b0
⊢ x = a0 ∧ y = b0
state_after: case mk.intro
G : Type u_1
H : Type u_2
inst✝¹ : Mul G
inst✝ : Mul H
A B : Finset G
a0 b0 : G
aA : a0 ∈ A
bB : b0 ∈ B
h : ∃! ab, ab ∈ A ×ˢ B ∧ ab.1 * ab.2 = a0 * b0
x y : G
hx : x ∈ A
hy : y ∈ B
l : x * y = a0 * b0
a✝ : (a0, b0) ∈ A ×ˢ B ∧ (a0, b0).1 * (a0, b0).2 = a0 * b0
J : ∀ (y : G × G), y ∈ A ×ˢ B ∧ y.1 * y.2 = a0 * b0 → y = (a0, b0)
⊢ x = a0 ∧ y = b0

tactic: exact Prod.mk.inj_iff.mp (J (x, y) ⟨Finset.mk_mem_product hx hy, l⟩)
state_before: case mk.intro
G : Type u_1
H : Type u_2
inst✝¹ : Mul G
inst✝ : Mul H
A B : Finset G
a0 b0 : G
aA : a0 ∈ A
bB : b0 ∈ B
h : ∃! ab, ab ∈ A ×ˢ B ∧ ab.1 * ab.2 = a0 * b0
x y : G
hx : x ∈ A
hy : y ∈ B
l : x * y = a0 * b0
a✝ : (a0, b0) ∈ A ×ˢ B ∧ (a0, b0).1 * (a0, b0).2 = a0 * b0
J : ∀ (y : G × G), y ∈ A ×ˢ B ∧ y.1 * y.2 = a0 * b0 → y = (a0, b0)
⊢ x = a0 ∧ y = b0
state_after: no goals
Theorem: Function.LeftInverse.comp
File: Mathlib/Logic/Function/Basic.lean

tactic: rw [hf (i a), hh a]
state_before: α : Sort u_1
β : Sort u_2
γ : Sort u_3
f✝ f : α → β
g : β → α
h : β → γ
i : γ → β
hf : LeftInverse f g
hh : LeftInverse h i
a : γ
⊢ h (f (g (i a))) = a
state_after: no goals
Theorem: MeasureTheory.StronglyMeasurable.integral_prod_right'
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

tactic: rw [← uncurry_curry f] at hf
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : SigmaFinite ν
f : α × β → E
hf : StronglyMeasurable f
⊢ StronglyMeasurable fun x => ∫ (y : β), f (x, y) ∂ν
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : SigmaFinite ν
f : α × β → E
hf : StronglyMeasurable (uncurry (Function.curry f))
⊢ StronglyMeasurable fun x => ∫ (y : β), f (x, y) ∂ν

tactic: exact hf.integral_prod_right
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : SigmaFinite ν
f : α × β → E
hf : StronglyMeasurable (uncurry (Function.curry f))
⊢ StronglyMeasurable fun x => ∫ (y : β), f (x, y) ∂ν
state_after: no goals
Theorem: MeasureTheory.Measure.le_sum
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simpa only [sum_apply μ hs] using ENNReal.le_tsum i
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f : α → β
μ : ι → Measure α
i : ι
s : Set α
hs : MeasurableSet s
⊢ (μ i) s ≤ (sum μ) s
state_after: no goals
Theorem: MeasureTheory.Measure.haar.index_defined
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

tactic: rcases compact_covered_by_mul_left_translates hK hV with ⟨t, ht⟩
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K V : Set G
hK : IsCompact K
hV : (interior V).Nonempty
⊢ ∃ n, n ∈ Finset.card '' {t | K ⊆ ⋃ g ∈ t, (fun h => g * h) ⁻¹' V}
state_after: case intro
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K V : Set G
hK : IsCompact K
hV : (interior V).Nonempty
t : Finset G
ht : K ⊆ ⋃ g ∈ t, (fun x => g * x) ⁻¹' V
⊢ ∃ n, n ∈ Finset.card '' {t | K ⊆ ⋃ g ∈ t, (fun h => g * h) ⁻¹' V}

tactic: exact ⟨t.card, t, ht, rfl⟩
state_before: case intro
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K V : Set G
hK : IsCompact K
hV : (interior V).Nonempty
t : Finset G
ht : K ⊆ ⋃ g ∈ t, (fun x => g * x) ⁻¹' V
⊢ ∃ n, n ∈ Finset.card '' {t | K ⊆ ⋃ g ∈ t, (fun h => g * h) ⁻¹' V}
state_after: no goals
Theorem: Rat.toNNRat_lt_toNNRat_iff'
File: Mathlib/Data/NNRat/Defs.lean

tactic: simp [← coe_lt_coe, toNNRat, lt_irrefl]
state_before: p q : ℚ
⊢ q.toNNRat < p.toNNRat ↔ q < p ∧ 0 < p
state_after: no goals
Theorem: AntivaryOn.card_mul_sum_le_sum_mul_sum
File: Mathlib/Algebra/Order/Chebyshev.lean

tactic: rw [← nsmul_eq_mul]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedRing α
s : Finset ι
σ : Perm ι
f g : ι → α
hfg : AntivaryOn f g ↑s
⊢ ↑s.card * ∑ i ∈ s, f i * g i ≤ (∑ i ∈ s, f i) * ∑ i ∈ s, g i
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedRing α
s : Finset ι
σ : Perm ι
f g : ι → α
hfg : AntivaryOn f g ↑s
⊢ s.card • ∑ i ∈ s, f i * g i ≤ (∑ i ∈ s, f i) * ∑ i ∈ s, g i

tactic: exact hfg.card_smul_sum_le_sum_smul_sum
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedRing α
s : Finset ι
σ : Perm ι
f g : ι → α
hfg : AntivaryOn f g ↑s
⊢ s.card • ∑ i ∈ s, f i * g i ≤ (∑ i ∈ s, f i) * ∑ i ∈ s, g i
state_after: no goals
Theorem: AffineBasis.det_smul_coords_eq_cramer_coords
File: Mathlib/LinearAlgebra/AffineSpace/Matrix.lean

tactic: have hu := b.isUnit_toMatrix b₂
state_before: ι : Type u₁
k : Type u₂
V : Type u₃
P : Type u₄
inst✝⁵ : AddCommGroup V
inst✝⁴ : AffineSpace V P
inst✝³ : CommRing k
inst✝² : Module k V
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
b b₂ : AffineBasis ι k P
x : P
⊢ (b.toMatrix ⇑b₂).det • b₂.coords x = (b.toMatrix ⇑b₂)ᵀ.cramer (b.coords x)
state_after: ι : Type u₁
k : Type u₂
V : Type u₃
P : Type u₄
inst✝⁵ : AddCommGroup V
inst✝⁴ : AffineSpace V P
inst✝³ : CommRing k
inst✝² : Module k V
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
b b₂ : AffineBasis ι k P
x : P
hu : IsUnit (b.toMatrix ⇑b₂)
⊢ (b.toMatrix ⇑b₂).det • b₂.coords x = (b.toMatrix ⇑b₂)ᵀ.cramer (b.coords x)

tactic: rw [Matrix.isUnit_iff_isUnit_det] at hu
state_before: ι : Type u₁
k : Type u₂
V : Type u₃
P : Type u₄
inst✝⁵ : AddCommGroup V
inst✝⁴ : AffineSpace V P
inst✝³ : CommRing k
inst✝² : Module k V
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
b b₂ : AffineBasis ι k P
x : P
hu : IsUnit (b.toMatrix ⇑b₂)
⊢ (b.toMatrix ⇑b₂).det • b₂.coords x = (b.toMatrix ⇑b₂)ᵀ.cramer (b.coords x)
state_after: ι : Type u₁
k : Type u₂
V : Type u₃
P : Type u₄
inst✝⁵ : AddCommGroup V
inst✝⁴ : AffineSpace V P
inst✝³ : CommRing k
inst✝² : Module k V
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
b b₂ : AffineBasis ι k P
x : P
hu : IsUnit (b.toMatrix ⇑b₂).det
⊢ (b.toMatrix ⇑b₂).det • b₂.coords x = (b.toMatrix ⇑b₂)ᵀ.cramer (b.coords x)

tactic: rw [← b.toMatrix_inv_vecMul_toMatrix, Matrix.det_smul_inv_vecMul_eq_cramer_transpose _ _ hu]
state_before: ι : Type u₁
k : Type u₂
V : Type u₃
P : Type u₄
inst✝⁵ : AddCommGroup V
inst✝⁴ : AffineSpace V P
inst✝³ : CommRing k
inst✝² : Module k V
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
b b₂ : AffineBasis ι k P
x : P
hu : IsUnit (b.toMatrix ⇑b₂).det
⊢ (b.toMatrix ⇑b₂).det • b₂.coords x = (b.toMatrix ⇑b₂)ᵀ.cramer (b.coords x)
state_after: no goals
Theorem: MeasureTheory.Measure.haar.prehaar_pos
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

tactic: apply div_pos <;> norm_cast
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : (interior U).Nonempty
K : Set G
h1K : IsCompact K
h2K : (interior K).Nonempty
⊢ 0 < prehaar (↑K₀) U { carrier := K, isCompact' := h1K }
state_after: case ha
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : (interior U).Nonempty
K : Set G
h1K : IsCompact K
h2K : (interior K).Nonempty
⊢ 0 < index (↑{ carrier := K, isCompact' := h1K }) U

case hb
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : (interior U).Nonempty
K : Set G
h1K : IsCompact K
h2K : (interior K).Nonempty
⊢ 0 < index (↑K₀) U

tactic: apply index_pos ⟨⟨K, h1K⟩, h2K⟩ hU
state_before: case ha
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : (interior U).Nonempty
K : Set G
h1K : IsCompact K
h2K : (interior K).Nonempty
⊢ 0 < index (↑{ carrier := K, isCompact' := h1K }) U
state_after: no goals

tactic: exact index_pos K₀ hU
state_before: case hb
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : (interior U).Nonempty
K : Set G
h1K : IsCompact K
h2K : (interior K).Nonempty
⊢ 0 < index (↑K₀) U
state_after: no goals
Theorem: Functor.Comp.pure_seq_eq_map
File: Mathlib/Control/Applicative.lean

tactic: simp [Applicative.pure_seq_eq_map', functor_norm]
state_before: F : Type u → Type w
G : Type v → Type u
inst✝³ : Applicative F
inst✝² : Applicative G
inst✝¹ : LawfulApplicative F
inst✝ : LawfulApplicative G
α β γ : Type v
f : α → β
x : Comp F G α
⊢ (Seq.seq (pure f) fun x_1 => x).run = (f <$> x).run
state_after: no goals
Theorem: eq_orthogonalProjection_of_eq_submodule
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: subst h
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝¹ : HasOrthogonalProjection K
K' : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K'
h : K = K'
u : E
⊢ ↑((orthogonalProjection K) u) = ↑((orthogonalProjection K') u)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝¹ : HasOrthogonalProjection K
u : E
inst✝ : HasOrthogonalProjection K
⊢ ↑((orthogonalProjection K) u) = ↑((orthogonalProjection K) u)

tactic: rfl
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝¹ : HasOrthogonalProjection K
u : E
inst✝ : HasOrthogonalProjection K
⊢ ↑((orthogonalProjection K) u) = ↑((orthogonalProjection K) u)
state_after: no goals
Theorem: SimpleGraph.TripartiteFromTriangles.rel_symm
File: Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean

tactic: cases h <;> constructor <;> assumption
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x✝ : α × β × γ
ε : 𝕜
x y : α ⊕ β ⊕ γ
h : Rel t x y
⊢ Rel t y x
state_after: no goals
Theorem: thickenedIndicatorAux_closure_eq
File: Mathlib/Topology/MetricSpace/ThickenedIndicator.lean

tactic: simp (config := { unfoldPartialApp := true }) only [thickenedIndicatorAux, infEdist_closure]
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
δ : ℝ
E : Set α
⊢ thickenedIndicatorAux δ (closure E) = thickenedIndicatorAux δ E
state_after: no goals
Theorem: CauSeq.lt_of_eq_of_lt
File: Mathlib/Algebra/Order/CauSeq/Basic.lean

tactic: have := pos_add_limZero gh (neg_limZero fg)
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g h : CauSeq α abs
fg : f ≈ g
gh : g < h
⊢ f < h
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g h : CauSeq α abs
fg : f ≈ g
gh : g < h
this : (h - g + -(f - g)).Pos
⊢ f < h

tactic: rwa [← sub_eq_add_neg, sub_sub_sub_cancel_right] at this
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g h : CauSeq α abs
fg : f ≈ g
gh : g < h
this : (h - g + -(f - g)).Pos
⊢ f < h
state_after: no goals
Theorem: eq_mul_of_mul_inv_eq₀
File: Mathlib/Algebra/GroupWithZero/Units/Basic.lean

tactic: rwa [← mul_inv_eq_iff_eq_mul₀]
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a b c d : G₀
m n : ℕ
hb : b ≠ 0
h : a * c⁻¹ = b
⊢ a = b * c
state_after: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a b c d : G₀
m n : ℕ
hb : b ≠ 0
h : a * c⁻¹ = b
⊢ c ≠ 0

tactic: rintro rfl
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a b c d : G₀
m n : ℕ
hb : b ≠ 0
h : a * c⁻¹ = b
⊢ c ≠ 0
state_after: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a b d : G₀
m n : ℕ
hb : b ≠ 0
h : a * 0⁻¹ = b
⊢ False

tactic: simp [hb.symm] at h
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a b d : G₀
m n : ℕ
hb : b ≠ 0
h : a * 0⁻¹ = b
⊢ False
state_after: no goals
Theorem: Finset.forall_mem_insertNone
File: Mathlib/Data/Finset/Option.lean

tactic: simp [Option.forall]
state_before: α : Type u_1
β : Type u_2
s : Finset α
p : Option α → Prop
⊢ (∀ a ∈ insertNone s, p a) ↔ p none ∧ ∀ a ∈ s, p (some a)
state_after: no goals
Theorem: Convex.add_smul_mem_interior'
File: Mathlib/Analysis/Convex/Topology.lean

tactic: simpa only [add_sub_cancel_left] using hs.add_smul_sub_mem_interior' hx hy ht
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
x y : E
hx : x ∈ closure s
hy : x + y ∈ interior s
t : 𝕜
ht : t ∈ Ioc 0 1
⊢ x + t • y ∈ interior s
state_after: no goals
Theorem: RatFunc.single_inv
File: Mathlib/RingTheory/LaurentSeries.lean

tactic: apply eq_inv_of_mul_eq_one_right
state_before: R : Type u_1
F : Type u
inst✝ : Field F
p q : F[X]
f g : RatFunc F
d : ℤ
α : F
hα : α ≠ 0
⊢ (single (-d)) α⁻¹ = ((single d) α)⁻¹
state_after: case h
R : Type u_1
F : Type u
inst✝ : Field F
p q : F[X]
f g : RatFunc F
d : ℤ
α : F
hα : α ≠ 0
⊢ (single d) α * (single (-d)) α⁻¹ = 1

tactic: simp [hα]
state_before: case h
R : Type u_1
F : Type u
inst✝ : Field F
p q : F[X]
f g : RatFunc F
d : ℤ
α : F
hα : α ≠ 0
⊢ (single d) α * (single (-d)) α⁻¹ = 1
state_after: no goals
Theorem: prod_mk_prod
File: Mathlib/Algebra/BigOperators/Pi.lean

tactic: simp (config := { contextual := true }) [Prod.ext_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : CommMonoid α
inst✝ : CommMonoid β
s : Finset γ
f : γ → α
g : γ → β
this : DecidableEq γ
⊢ ∀ ⦃a : γ⦄ {s : Finset γ},
    a ∉ s →
      (∏ x ∈ s, f x, ∏ x ∈ s, g x) = ∏ x ∈ s, (f x, g x) →
        (∏ x ∈ insert a s, f x, ∏ x ∈ insert a s, g x) = ∏ x ∈ insert a s, (f x, g x)
state_after: no goals