1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Multiset.bind_powerset_len
File: Mathlib/Data/Multiset/Powerset.lean

tactic: induction S using Quotient.inductionOn
state_before: α✝ : Type u_1
α : Type u_2
S : Multiset α
⊢ ((range (card S + 1)).bind fun k => powersetCard k S) = S.powerset
state_after: case h
α✝ : Type u_1
α : Type u_2
a✝ : List α
⊢ ((range (card ⟦a✝⟧ + 1)).bind fun k => powersetCard k ⟦a✝⟧) = powerset ⟦a✝⟧

tactic: simp_rw [quot_mk_to_coe, powerset_coe', powersetCard_coe, ← coe_range, coe_bind, ← List.map_bind,
  coe_card]
state_before: case h
α✝ : Type u_1
α : Type u_2
a✝ : List α
⊢ ((range (card ⟦a✝⟧ + 1)).bind fun k => powersetCard k ⟦a✝⟧) = powerset ⟦a✝⟧
state_after: case h
α✝ : Type u_1
α : Type u_2
a✝ : List α
⊢ ↑(List.map ofList ((List.range (a✝.length + 1)).bind fun a => sublistsLen a a✝)) = ↑(List.map ofList a✝.sublists')

tactic: exact coe_eq_coe.mpr ((List.range_bind_sublistsLen_perm _).map _)
state_before: case h
α✝ : Type u_1
α : Type u_2
a✝ : List α
⊢ ↑(List.map ofList ((List.range (a✝.length + 1)).bind fun a => sublistsLen a a✝)) = ↑(List.map ofList a✝.sublists')
state_after: no goals
Theorem: Polynomial.eq_C_coeff_zero_iff_natDegree_eq_zero
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: rw [h, natDegree_C]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ p q : R[X]
ι : Type u_1
h : p = C (p.coeff 0)
⊢ p.natDegree = 0
state_after: no goals
Theorem: HomotopyCategory.Pretriangulated.shift_distinguished_triangle
File: Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean

tactic: obtain ⟨K, L, φ, ⟨e⟩⟩ := hT
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
T : Triangle (HomotopyCategory C (ComplexShape.up ℤ))
hT : T ∈ distinguishedTriangles C
n : ℤ
⊢ (Triangle.shiftFunctor (HomotopyCategory C (ComplexShape.up ℤ)) n).obj T ∈ distinguishedTriangles C
state_after: case intro.intro.intro.intro
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K✝ L✝ : CochainComplex C ℤ
φ✝ : K✝ ⟶ L✝
T : Triangle (HomotopyCategory C (ComplexShape.up ℤ))
n : ℤ
K L : CochainComplex C ℤ
φ : K ⟶ L
e : T ≅ CochainComplex.mappingCone.triangleh φ
⊢ (Triangle.shiftFunctor (HomotopyCategory C (ComplexShape.up ℤ)) n).obj T ∈ distinguishedTriangles C

tactic: exact ⟨_, _, _, ⟨Functor.mapIso _ e ≪≫ CochainComplex.mappingCone.shiftTrianglehIso φ n⟩⟩
state_before: case intro.intro.intro.intro
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K✝ L✝ : CochainComplex C ℤ
φ✝ : K✝ ⟶ L✝
T : Triangle (HomotopyCategory C (ComplexShape.up ℤ))
n : ℤ
K L : CochainComplex C ℤ
φ : K ⟶ L
e : T ≅ CochainComplex.mappingCone.triangleh φ
⊢ (Triangle.shiftFunctor (HomotopyCategory C (ComplexShape.up ℤ)) n).obj T ∈ distinguishedTriangles C
state_after: no goals
Theorem: MonoidHom.map_mulIndicator
File: Mathlib/Algebra/Group/Indicator.lean

tactic: simp [Set.mulIndicator_comp_of_one]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
M✝ : Type u_4
N✝ : Type u_5
M : Type u_6
N : Type u_7
inst✝¹ : MulOneClass M
inst✝ : MulOneClass N
f : M →* N
s : Set α
g : α → M
x : α
⊢ f (s.mulIndicator g x) = s.mulIndicator (⇑f ∘ g) x
state_after: no goals
Theorem: DirichletCharacter.even_or_odd
File: Mathlib/NumberTheory/DirichletCharacter/Basic.lean

tactic: suffices ψ (-1) ^ 2 = 1 by convert sq_eq_one_iff.mp this
state_before: R : Type u_1
inst✝² : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
S : Type
inst✝¹ : CommRing S
m : ℕ
ψ : DirichletCharacter S m
inst✝ : NoZeroDivisors S
⊢ ψ.Even ∨ ψ.Odd
state_after: R : Type u_1
inst✝² : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
S : Type
inst✝¹ : CommRing S
m : ℕ
ψ : DirichletCharacter S m
inst✝ : NoZeroDivisors S
⊢ ψ (-1) ^ 2 = 1

tactic: rw [← map_pow _, neg_one_sq, map_one]
state_before: R : Type u_1
inst✝² : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
S : Type
inst✝¹ : CommRing S
m : ℕ
ψ : DirichletCharacter S m
inst✝ : NoZeroDivisors S
⊢ ψ (-1) ^ 2 = 1
state_after: no goals

tactic: convert sq_eq_one_iff.mp this
state_before: R : Type u_1
inst✝² : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
S : Type
inst✝¹ : CommRing S
m : ℕ
ψ : DirichletCharacter S m
inst✝ : NoZeroDivisors S
this : ψ (-1) ^ 2 = 1
⊢ ψ.Even ∨ ψ.Odd
state_after: no goals
Theorem: Multiset.rel_cons_right
File: Mathlib/Data/Multiset/Basic.lean

tactic: rw [← rel_flip, rel_cons_left]
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r : α → β → Prop
p : γ → δ → Prop
as : Multiset α
b : β
bs : Multiset β
⊢ Rel r as (b ::ₘ bs) ↔ ∃ a as', r a b ∧ Rel r as' bs ∧ as = a ::ₘ as'
state_after: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r : α → β → Prop
p : γ → δ → Prop
as : Multiset α
b : β
bs : Multiset β
⊢ (∃ b_1 bs', flip r b b_1 ∧ Rel (flip r) bs bs' ∧ as = b_1 ::ₘ bs') ↔ ∃ a as', r a b ∧ Rel r as' bs ∧ as = a ::ₘ as'

tactic: refine exists₂_congr fun a as' => ?_
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r : α → β → Prop
p : γ → δ → Prop
as : Multiset α
b : β
bs : Multiset β
⊢ (∃ b_1 bs', flip r b b_1 ∧ Rel (flip r) bs bs' ∧ as = b_1 ::ₘ bs') ↔ ∃ a as', r a b ∧ Rel r as' bs ∧ as = a ::ₘ as'
state_after: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r : α → β → Prop
p : γ → δ → Prop
as : Multiset α
b : β
bs : Multiset β
a : α
as' : Multiset α
⊢ flip r b a ∧ Rel (flip r) bs as' ∧ as = a ::ₘ as' ↔ r a b ∧ Rel r as' bs ∧ as = a ::ₘ as'

tactic: rw [rel_flip, flip]
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r : α → β → Prop
p : γ → δ → Prop
as : Multiset α
b : β
bs : Multiset β
a : α
as' : Multiset α
⊢ flip r b a ∧ Rel (flip r) bs as' ∧ as = a ::ₘ as' ↔ r a b ∧ Rel r as' bs ∧ as = a ::ₘ as'
state_after: no goals
Theorem: Fin.insertNth_zero'
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: simp [insertNth_zero]
state_before: m n : ℕ
α : Fin (n + 1) → Type u
β : Type v
x : β
p : Fin n → β
⊢ insertNth 0 x p = cons x p
state_after: no goals
Theorem: le_inv_iff_mul_le_one_left
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [mul_inv_self]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
⊢ b * a ≤ b * b⁻¹ ↔ b * a ≤ 1
state_after: no goals
Theorem: sub_one_mul_padicValNat_choose_eq_sub_sum_digits
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: convert @sub_one_mul_padicValNat_choose_eq_sub_sum_digits' _ _ _ ‹_›
state_before: p k n : ℕ
hp : Fact (Nat.Prime p)
h : k ≤ n
⊢ (p - 1) * padicValNat p (n.choose k) = (p.digits k).sum + (p.digits (n - k)).sum - (p.digits n).sum
state_after: case h.e'_2.h.e'_6.h.e'_2.h.e'_1
p k n : ℕ
hp : Fact (Nat.Prime p)
h : k ≤ n
⊢ n = n - k + k

case h.e'_3.h.e'_6.h.e'_4.h.e'_2
p k n : ℕ
hp : Fact (Nat.Prime p)
h : k ≤ n
⊢ n = n - k + k

tactic: all_goals omega
state_before: case h.e'_2.h.e'_6.h.e'_2.h.e'_1
p k n : ℕ
hp : Fact (Nat.Prime p)
h : k ≤ n
⊢ n = n - k + k

case h.e'_3.h.e'_6.h.e'_4.h.e'_2
p k n : ℕ
hp : Fact (Nat.Prime p)
h : k ≤ n
⊢ n = n - k + k
state_after: no goals

tactic: omega
state_before: case h.e'_3.h.e'_6.h.e'_4.h.e'_2
p k n : ℕ
hp : Fact (Nat.Prime p)
h : k ≤ n
⊢ n = n - k + k
state_after: no goals
Theorem: SetTheory.PGame.birthday_star
File: Mathlib/SetTheory/Game/Birthday.lean

tactic: rw [birthday_def]
state_before: ⊢ star.birthday = 1
state_after: ⊢ max (lsub fun i => (star.moveLeft i).birthday) (lsub fun i => (star.moveRight i).birthday) = 1

tactic: simp
state_before: ⊢ max (lsub fun i => (star.moveLeft i).birthday) (lsub fun i => (star.moveRight i).birthday) = 1
state_after: no goals
Theorem: Subspace.dualPairing_eq
File: Mathlib/LinearAlgebra/Dual.lean

tactic: ext
state_before: K : Type uK
inst✝⁴ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V₂
inst✝ : Module K V₂
W : Subspace K V₁
⊢ Submodule.dualPairing W = ↑W.quotAnnihilatorEquiv
state_after: case h.h.h
K : Type uK
inst✝⁴ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V₂
inst✝ : Module K V₂
W : Subspace K V₁
x✝¹ : Dual K V₁
x✝ : ↥W
⊢ ((Submodule.dualPairing W ∘ₗ (dualAnnihilator W).mkQ) x✝¹) x✝ =
    ((↑W.quotAnnihilatorEquiv ∘ₗ (dualAnnihilator W).mkQ) x✝¹) x✝

tactic: rfl
state_before: case h.h.h
K : Type uK
inst✝⁴ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V₂
inst✝ : Module K V₂
W : Subspace K V₁
x✝¹ : Dual K V₁
x✝ : ↥W
⊢ ((Submodule.dualPairing W ∘ₗ (dualAnnihilator W).mkQ) x✝¹) x✝ =
    ((↑W.quotAnnihilatorEquiv ∘ₗ (dualAnnihilator W).mkQ) x✝¹) x✝
state_after: no goals
Theorem: tendsto_measure_cthickening_of_isClosed
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean

tactic: convert tendsto_measure_cthickening hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s✝ t u : Set α
inst✝³ : PseudoEMetricSpace α
inst✝² : MeasurableSpace α
inst✝¹ : OpensMeasurableSpace α
inst✝ : MeasurableSpace β
x : α
ε : ℝ≥0∞
μ : Measure α
s : Set α
hs : ∃ R > 0, μ (cthickening R s) ≠ ⊤
h's : IsClosed s
⊢ Tendsto (fun r => μ (cthickening r s)) (𝓝 0) (𝓝 (μ s))
state_after: case h.e'_5.h.e'_3.h.e'_6
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s✝ t u : Set α
inst✝³ : PseudoEMetricSpace α
inst✝² : MeasurableSpace α
inst✝¹ : OpensMeasurableSpace α
inst✝ : MeasurableSpace β
x : α
ε : ℝ≥0∞
μ : Measure α
s : Set α
hs : ∃ R > 0, μ (cthickening R s) ≠ ⊤
h's : IsClosed s
⊢ s = closure s

tactic: exact h's.closure_eq.symm
state_before: case h.e'_5.h.e'_3.h.e'_6
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s✝ t u : Set α
inst✝³ : PseudoEMetricSpace α
inst✝² : MeasurableSpace α
inst✝¹ : OpensMeasurableSpace α
inst✝ : MeasurableSpace β
x : α
ε : ℝ≥0∞
μ : Measure α
s : Set α
hs : ∃ R > 0, μ (cthickening R s) ≠ ⊤
h's : IsClosed s
⊢ s = closure s
state_after: no goals
Theorem: IsPrimitiveRoot.eq_neg_one_of_two_right
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: apply (eq_or_eq_neg_of_sq_eq_sq ζ 1 _).resolve_left
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h✝ : IsPrimitiveRoot ζ✝ k
inst✝ : NoZeroDivisors R
ζ : R
h : IsPrimitiveRoot ζ 2
⊢ ζ = -1
state_after: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h✝ : IsPrimitiveRoot ζ✝ k
inst✝ : NoZeroDivisors R
ζ : R
h : IsPrimitiveRoot ζ 2
⊢ ¬ζ = 1

M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h✝ : IsPrimitiveRoot ζ✝ k
inst✝ : NoZeroDivisors R
ζ : R
h : IsPrimitiveRoot ζ 2
⊢ ζ ^ 2 = 1 ^ 2

tactic: rw [← pow_one ζ]
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h✝ : IsPrimitiveRoot ζ✝ k
inst✝ : NoZeroDivisors R
ζ : R
h : IsPrimitiveRoot ζ 2
⊢ ¬ζ = 1
state_after: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h✝ : IsPrimitiveRoot ζ✝ k
inst✝ : NoZeroDivisors R
ζ : R
h : IsPrimitiveRoot ζ 2
⊢ ¬ζ ^ 1 = 1

tactic: apply h.pow_ne_one_of_pos_of_lt <;> decide
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h✝ : IsPrimitiveRoot ζ✝ k
inst✝ : NoZeroDivisors R
ζ : R
h : IsPrimitiveRoot ζ 2
⊢ ¬ζ ^ 1 = 1
state_after: no goals

tactic: simp only [h.pow_eq_one, one_pow]
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h✝ : IsPrimitiveRoot ζ✝ k
inst✝ : NoZeroDivisors R
ζ : R
h : IsPrimitiveRoot ζ 2
⊢ ζ ^ 2 = 1 ^ 2
state_after: no goals
Theorem: TopologicalSpace.separableSpace_iff_countable
File: Mathlib/Topology/Bases.lean

tactic: simp [separableSpace_iff, countable_univ_iff]
state_before: α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s : Set α
inst✝ : DiscreteTopology α
⊢ SeparableSpace α ↔ Countable α
state_after: no goals
Theorem: Fin.Iio_castSucc
File: Mathlib/Data/Fintype/Fin.lean

tactic: apply Finset.map_injective Fin.valEmbedding
state_before: α : Type u_1
β : Type u_2
n : ℕ
i : Fin n
⊢ Iio i.castSucc = map castSuccEmb (Iio i)
state_after: case a
α : Type u_1
β : Type u_2
n : ℕ
i : Fin n
⊢ map valEmbedding (Iio i.castSucc) = map valEmbedding (map castSuccEmb (Iio i))

tactic: rw [Finset.map_map, Fin.map_valEmbedding_Iio]
state_before: case a
α : Type u_1
β : Type u_2
n : ℕ
i : Fin n
⊢ map valEmbedding (Iio i.castSucc) = map valEmbedding (map castSuccEmb (Iio i))
state_after: case a
α : Type u_1
β : Type u_2
n : ℕ
i : Fin n
⊢ Iio ↑i.castSucc = map (castSuccEmb.trans valEmbedding) (Iio i)

tactic: exact (Fin.map_valEmbedding_Iio i).symm
state_before: case a
α : Type u_1
β : Type u_2
n : ℕ
i : Fin n
⊢ Iio ↑i.castSucc = map (castSuccEmb.trans valEmbedding) (Iio i)
state_after: no goals
Theorem: MeasureTheory.VectorMeasure.AbsolutelyContinuous.sub
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: intro s hs
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
L : Type u_3
M✝ : Type u_4
N : Type u_5
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M✝
inst✝⁵ : TopologicalSpace M✝
inst✝⁴ : AddCommMonoid N
inst✝³ : TopologicalSpace N
v : VectorMeasure α M✝
w✝ : VectorMeasure α N
M : Type u_6
inst✝² : AddCommGroup M
inst✝¹ : TopologicalSpace M
inst✝ : TopologicalAddGroup M
v₁ v₂ : VectorMeasure α M
w : VectorMeasure α N
hv₁ : v₁ ≪ᵥ w
hv₂ : v₂ ≪ᵥ w
⊢ v₁ - v₂ ≪ᵥ w
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
L : Type u_3
M✝ : Type u_4
N : Type u_5
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M✝
inst✝⁵ : TopologicalSpace M✝
inst✝⁴ : AddCommMonoid N
inst✝³ : TopologicalSpace N
v : VectorMeasure α M✝
w✝ : VectorMeasure α N
M : Type u_6
inst✝² : AddCommGroup M
inst✝¹ : TopologicalSpace M
inst✝ : TopologicalAddGroup M
v₁ v₂ : VectorMeasure α M
w : VectorMeasure α N
hv₁ : v₁ ≪ᵥ w
hv₂ : v₂ ≪ᵥ w
s : Set α
hs : ↑w s = 0
⊢ ↑(v₁ - v₂) s = 0

tactic: rw [sub_apply, hv₁ hs, hv₂ hs, zero_sub, neg_zero]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
L : Type u_3
M✝ : Type u_4
N : Type u_5
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M✝
inst✝⁵ : TopologicalSpace M✝
inst✝⁴ : AddCommMonoid N
inst✝³ : TopologicalSpace N
v : VectorMeasure α M✝
w✝ : VectorMeasure α N
M : Type u_6
inst✝² : AddCommGroup M
inst✝¹ : TopologicalSpace M
inst✝ : TopologicalAddGroup M
v₁ v₂ : VectorMeasure α M
w : VectorMeasure α N
hv₁ : v₁ ≪ᵥ w
hv₂ : v₂ ≪ᵥ w
s : Set α
hs : ↑w s = 0
⊢ ↑(v₁ - v₂) s = 0
state_after: no goals
Theorem: Set.ordConnected_dual
File: Mathlib/Order/Interval/Set/OrdConnected.lean

tactic: simpa only [ordConnected_def] using h.dual
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
s✝ t s : Set α
h : (⇑ofDual ⁻¹' s).OrdConnected
⊢ s.OrdConnected
state_after: no goals
Theorem: Filter.eventually_smallSets_eventually
File: Mathlib/Order/Filter/SmallSets.lean

tactic: simp only [eventually_iff_exists_mem]
state_before: α : Type u_1
β : Type u_2
ι : Sort u_3
l l' la : Filter α
lb : Filter β
p : α → Prop
⊢ (∃ s ∈ l, ∀ᶠ (x : α) in l', x ∈ s → p x) ↔ ∃ s ∈ l, ∃ t ∈ l', ∀ x ∈ t, x ∈ s → p x
state_after: no goals

tactic: simp only [eventually_inf, and_comm, mem_inter_iff, ← and_imp]
state_before: α : Type u_1
β : Type u_2
ι : Sort u_3
l l' la : Filter α
lb : Filter β
p : α → Prop
⊢ (∃ s ∈ l, ∃ t ∈ l', ∀ x ∈ t, x ∈ s → p x) ↔ ∀ᶠ (x : α) in l ⊓ l', p x
state_after: no goals
Theorem: orderOf_eq_orderOf_iff
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: simp_rw [← isPeriodicPt_mul_iff_pow_eq_one, ← minimalPeriod_eq_minimalPeriod_iff, orderOf]
state_before: G : Type u_1
H✝ : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G
a b x y✝ : G
n m : ℕ
H : Type u_6
inst✝ : Monoid H
y : H
⊢ orderOf x = orderOf y ↔ ∀ (n : ℕ), x ^ n = 1 ↔ y ^ n = 1
state_after: no goals
Theorem: Int.card_fintype_Ioo
File: Mathlib/Data/Int/Interval.lean

tactic: rw [← card_Ioo, Fintype.card_ofFinset]
state_before: a b : ℤ
⊢ Fintype.card ↑(Set.Ioo a b) = (b - a - 1).toNat
state_after: no goals
Theorem: CategoryTheory.Abelian.mono_cokernel_desc_of_exact
File: Mathlib/CategoryTheory/Abelian/Exact.lean

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
h : Exact f g
⊢ cokernel.π f ≫ cokernel.desc f g ⋯ =
    cokernel.π f ≫
      ((colimit.isColimit (parallelPair f 0)).coconePointUniqueUpToIso (isColimitImage f g h)).hom ≫ Limits.image.ι g
state_after: no goals
Theorem: FormalMultilinearSeries.order_eq_zero_iff'
File: Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean

tactic: simpa [order, Nat.sInf_eq_zero, FormalMultilinearSeries.ext_iff, eq_empty_iff_forall_not_mem]
  using or_comm
state_before: 𝕜 : Type u
𝕜' : Type u'
E : Type v
F : Type w
G : Type x
inst✝¹⁰ : Ring 𝕜
n : ℕ
inst✝⁹ : AddCommGroup E
inst✝⁸ : Module 𝕜 E
inst✝⁷ : TopologicalSpace E
inst✝⁶ : TopologicalAddGroup E
inst✝⁵ : ContinuousConstSMul 𝕜 E
inst✝⁴ : AddCommGroup F
inst✝³ : Module 𝕜 F
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousConstSMul 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
⊢ p.order = 0 ↔ p = 0 ∨ p 0 ≠ 0
state_after: no goals
Theorem: Compactum.str_incl
File: Mathlib/Topology/Category/Compactum.lean

tactic: change ((β ).η.app _ ≫ X.a) _ = _
state_before: X : Compactum
x : X.A
⊢ X.str (X.incl x) = x
state_after: X : Compactum
x : X.A
⊢ (β.η.app X.A ≫ X.a) x = x

tactic: rw [Monad.Algebra.unit]
state_before: X : Compactum
x : X.A
⊢ (β.η.app X.A ≫ X.a) x = x
state_after: X : Compactum
x : X.A
⊢ 𝟙 X.A x = x

tactic: rfl
state_before: X : Compactum
x : X.A
⊢ 𝟙 X.A x = x
state_after: no goals
Theorem: Set.singleton_pi
File: Mathlib/Data/Set/Prod.lean

tactic: ext
state_before: ι : Type u_1
α : ι → Type u_2
β : ι → Type u_3
s s₁ s₂ : Set ι
t✝ t₁ t₂ : (i : ι) → Set (α i)
i✝ i : ι
t : (i : ι) → Set (α i)
⊢ {i}.pi t = eval i ⁻¹' t i
state_after: case h
ι : Type u_1
α : ι → Type u_2
β : ι → Type u_3
s s₁ s₂ : Set ι
t✝ t₁ t₂ : (i : ι) → Set (α i)
i✝ i : ι
t : (i : ι) → Set (α i)
x✝ : (i : ι) → α i
⊢ x✝ ∈ {i}.pi t ↔ x✝ ∈ eval i ⁻¹' t i

tactic: simp [pi]
state_before: case h
ι : Type u_1
α : ι → Type u_2
β : ι → Type u_3
s s₁ s₂ : Set ι
t✝ t₁ t₂ : (i : ι) → Set (α i)
i✝ i : ι
t : (i : ι) → Set (α i)
x✝ : (i : ι) → α i
⊢ x✝ ∈ {i}.pi t ↔ x✝ ∈ eval i ⁻¹' t i
state_after: no goals
Theorem: EReal.inv_zero
File: Mathlib/Data/Real/EReal.lean

tactic: change (0 : ℝ)⁻¹ = (0 : EReal)
state_before: ⊢ 0⁻¹ = 0
state_after: ⊢ ↑0⁻¹ = 0

tactic: rw [GroupWithZero.inv_zero, coe_zero]
state_before: ⊢ ↑0⁻¹ = 0
state_after: no goals
Theorem: ByteArray.get_ofFn
File: .lake/packages/batteries/Batteries/Data/ByteArray.lean

tactic: simp [get, Fin.cast]
state_before: n : Nat
f : Fin n → UInt8
i : Fin (ofFn f).size
⊢ (ofFn f).get i = f (Fin.cast ⋯ i)
state_after: no goals
Theorem: String.data_dropWhile
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: rw [dropWhile_eq]
state_before: p : Char → Bool
s : String
⊢ (s.dropWhile p).data = List.dropWhile p s.data
state_after: no goals
Theorem: Balanced.interior
File: Mathlib/Analysis/LocallyConvex/Basic.lean

tactic: rw [← insert_eq_self.2 h]
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁸ : NormedField 𝕜
inst✝⁷ : NormedRing 𝕝
inst✝⁶ : NormedSpace 𝕜 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SMulWithZero 𝕝 E
inst✝² : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a b : 𝕜
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
hA : Balanced 𝕜 A
h : 0 ∈ interior A
⊢ Balanced 𝕜 (interior A)
state_after: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁸ : NormedField 𝕜
inst✝⁷ : NormedRing 𝕝
inst✝⁶ : NormedSpace 𝕜 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SMulWithZero 𝕝 E
inst✝² : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a b : 𝕜
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
hA : Balanced 𝕜 A
h : 0 ∈ interior A
⊢ Balanced 𝕜 (insert 0 (interior A))

tactic: exact hA.zero_insert_interior
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁸ : NormedField 𝕜
inst✝⁷ : NormedRing 𝕝
inst✝⁶ : NormedSpace 𝕜 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SMulWithZero 𝕝 E
inst✝² : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a b : 𝕜
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul 𝕜 E
hA : Balanced 𝕜 A
h : 0 ∈ interior A
⊢ Balanced 𝕜 (insert 0 (interior A))
state_after: no goals
Theorem: Finset.sym_nonempty
File: Mathlib/Data/Finset/Sym.lean

tactic: simp only [nonempty_iff_ne_empty, ne_eq, sym_eq_empty, not_and_or, not_ne_iff]
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Finset α
a b : α
n : ℕ
⊢ (s.sym n).Nonempty ↔ n = 0 ∨ s.Nonempty
state_after: no goals
Theorem: Nat.odd_of_mod_four_eq_three
File: Mathlib/Data/Nat/ModEq.lean

tactic: simpa [ModEq, show 2 * 2 = 4 by norm_num, show 3 % 4 = 3 by norm_num] using
  @ModEq.of_mul_left 2 n 3 2
state_before: m n✝ a b c d n : ℕ
⊢ n % 4 = 3 → n % 2 = 1
state_after: no goals

tactic: norm_num
state_before: m n✝ a b c d n : ℕ
⊢ 2 * 2 = 4
state_after: no goals

tactic: norm_num
state_before: m n✝ a b c d n : ℕ
⊢ 3 % 4 = 3
state_after: no goals
Theorem: Polynomial.eval_eq_sum
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: rw [eval, eval₂_eq_sum]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
x : R
⊢ eval x p = p.sum fun e a => a * x ^ e
state_after: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
x : R
⊢ (p.sum fun e a => (RingHom.id R) a * x ^ e) = p.sum fun e a => a * x ^ e

tactic: rfl
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
x : R
⊢ (p.sum fun e a => (RingHom.id R) a * x ^ e) = p.sum fun e a => a * x ^ e
state_after: no goals
Theorem: PartENat.toWithTop_one'
File: Mathlib/Data/Nat/PartENat.lean

tactic: convert toWithTop_one
state_before: h : Decidable (Dom 1)
⊢ toWithTop 1 = 1
state_after: no goals
Theorem: WithTop.image_coe_Ici
File: Mathlib/Order/Interval/Set/WithBotTop.lean

tactic: rw [← preimage_coe_Ici, image_preimage_eq_inter_range, range_coe, Ici_inter_Iio]
state_before: α : Type u_1
inst✝ : Preorder α
a b : α
⊢ some '' Ici a = Ico ↑a ⊤
state_after: no goals
Theorem: Cubic.leadingCoeff_of_b_ne_zero
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: rw [of_a_eq_zero ha, leadingCoeff_quadratic hb]
state_before: R : Type u_1
S : Type u_2
F : Type u_3
K : Type u_4
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
ha : P.a = 0
hb : P.b ≠ 0
⊢ P.toPoly.leadingCoeff = P.b
state_after: no goals