1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: PiLp.aux_uniformity_eq
File: Mathlib/Analysis/NormedSpace/PiLp.lean

tactic: have A : UniformInducing (WithLp.equiv p (∀ i, β i)) :=
  (antilipschitzWith_equiv_aux p β).uniformInducing
    (lipschitzWith_equiv_aux p β).uniformContinuous
state_before: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝³ : Fact (1 ≤ p)
inst✝² : (i : ι) → PseudoMetricSpace (α i)
inst✝¹ : (i : ι) → PseudoEMetricSpace (β i)
inst✝ : Fintype ι
⊢ 𝓤 (PiLp p β) = 𝓤 ((i : ι) → β i)
state_after: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝³ : Fact (1 ≤ p)
inst✝² : (i : ι) → PseudoMetricSpace (α i)
inst✝¹ : (i : ι) → PseudoEMetricSpace (β i)
inst✝ : Fintype ι
A : UniformInducing ⇑(WithLp.equiv p ((i : ι) → β i))
⊢ 𝓤 (PiLp p β) = 𝓤 ((i : ι) → β i)

tactic: have : (fun x : PiLp p β × PiLp p β => (WithLp.equiv p _ x.fst, WithLp.equiv p _ x.snd)) = id :=
  by ext i <;> rfl
state_before: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝³ : Fact (1 ≤ p)
inst✝² : (i : ι) → PseudoMetricSpace (α i)
inst✝¹ : (i : ι) → PseudoEMetricSpace (β i)
inst✝ : Fintype ι
A : UniformInducing ⇑(WithLp.equiv p ((i : ι) → β i))
⊢ 𝓤 (PiLp p β) = 𝓤 ((i : ι) → β i)
state_after: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝³ : Fact (1 ≤ p)
inst✝² : (i : ι) → PseudoMetricSpace (α i)
inst✝¹ : (i : ι) → PseudoEMetricSpace (β i)
inst✝ : Fintype ι
A : UniformInducing ⇑(WithLp.equiv p ((i : ι) → β i))
this : (fun x => ((WithLp.equiv p ((i : ι) → β i)) x.1, (WithLp.equiv p ((i : ι) → β i)) x.2)) = id
⊢ 𝓤 (PiLp p β) = 𝓤 ((i : ι) → β i)

tactic: rw [← A.comap_uniformity, this, comap_id]
state_before: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝³ : Fact (1 ≤ p)
inst✝² : (i : ι) → PseudoMetricSpace (α i)
inst✝¹ : (i : ι) → PseudoEMetricSpace (β i)
inst✝ : Fintype ι
A : UniformInducing ⇑(WithLp.equiv p ((i : ι) → β i))
this : (fun x => ((WithLp.equiv p ((i : ι) → β i)) x.1, (WithLp.equiv p ((i : ι) → β i)) x.2)) = id
⊢ 𝓤 (PiLp p β) = 𝓤 ((i : ι) → β i)
state_after: no goals

tactic: ext i <;> rfl
state_before: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝³ : Fact (1 ≤ p)
inst✝² : (i : ι) → PseudoMetricSpace (α i)
inst✝¹ : (i : ι) → PseudoEMetricSpace (β i)
inst✝ : Fintype ι
A : UniformInducing ⇑(WithLp.equiv p ((i : ι) → β i))
⊢ (fun x => ((WithLp.equiv p ((i : ι) → β i)) x.1, (WithLp.equiv p ((i : ι) → β i)) x.2)) = id
state_after: no goals
Theorem: Finsupp.supported_union
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: erw [Set.union_eq_iUnion, supported_iUnion, iSup_bool_eq]
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
⊢ supported M R (s ∪ t) = supported M R s ⊔ supported M R t
state_after: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
⊢ supported M R (bif true then s else t) ⊔ supported M R (bif false then s else t) = supported M R s ⊔ supported M R t

tactic: rfl
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
⊢ supported M R (bif true then s else t) ⊔ supported M R (bif false then s else t) = supported M R s ⊔ supported M R t
state_after: no goals
Theorem: UniformFun.hasBasis_nhds_one_of_basis
File: Mathlib/Topology/Algebra/UniformConvergence.lean

tactic: have := h.comap fun p : G × G => p.2 / p.1
state_before: α : Type u_1
G : Type u_2
ι : Type u_3
inst✝² : Group G
𝔖 : Set (Set α)
inst✝¹ : UniformSpace G
inst✝ : UniformGroup G
p : ι → Prop
b : ι → Set G
h : (𝓝 1).HasBasis p b
⊢ (𝓝 1).HasBasis p fun i => {f | ∀ (x : α), toFun f x ∈ b i}
state_after: α : Type u_1
G : Type u_2
ι : Type u_3
inst✝² : Group G
𝔖 : Set (Set α)
inst✝¹ : UniformSpace G
inst✝ : UniformGroup G
p : ι → Prop
b : ι → Set G
h : (𝓝 1).HasBasis p b
this : (comap (fun p => p.2 / p.1) (𝓝 1)).HasBasis p fun i => (fun p => p.2 / p.1) ⁻¹' b i
⊢ (𝓝 1).HasBasis p fun i => {f | ∀ (x : α), toFun f x ∈ b i}

tactic: rw [← uniformity_eq_comap_nhds_one] at this
state_before: α : Type u_1
G : Type u_2
ι : Type u_3
inst✝² : Group G
𝔖 : Set (Set α)
inst✝¹ : UniformSpace G
inst✝ : UniformGroup G
p : ι → Prop
b : ι → Set G
h : (𝓝 1).HasBasis p b
this : (comap (fun p => p.2 / p.1) (𝓝 1)).HasBasis p fun i => (fun p => p.2 / p.1) ⁻¹' b i
⊢ (𝓝 1).HasBasis p fun i => {f | ∀ (x : α), toFun f x ∈ b i}
state_after: α : Type u_1
G : Type u_2
ι : Type u_3
inst✝² : Group G
𝔖 : Set (Set α)
inst✝¹ : UniformSpace G
inst✝ : UniformGroup G
p : ι → Prop
b : ι → Set G
h : (𝓝 1).HasBasis p b
this : (𝓤 G).HasBasis p fun i => (fun p => p.2 / p.1) ⁻¹' b i
⊢ (𝓝 1).HasBasis p fun i => {f | ∀ (x : α), toFun f x ∈ b i}

tactic: convert UniformFun.hasBasis_nhds_of_basis α _ (1 : α →ᵤ G) this
state_before: α : Type u_1
G : Type u_2
ι : Type u_3
inst✝² : Group G
𝔖 : Set (Set α)
inst✝¹ : UniformSpace G
inst✝ : UniformGroup G
p : ι → Prop
b : ι → Set G
h : (𝓝 1).HasBasis p b
this : (𝓤 G).HasBasis p fun i => (fun p => p.2 / p.1) ⁻¹' b i
⊢ (𝓝 1).HasBasis p fun i => {f | ∀ (x : α), toFun f x ∈ b i}
state_after: case h.e'_5.h.h.e'_2.h.a
α : Type u_1
G : Type u_2
ι : Type u_3
inst✝² : Group G
𝔖 : Set (Set α)
inst✝¹ : UniformSpace G
inst✝ : UniformGroup G
p : ι → Prop
b : ι → Set G
h : (𝓝 1).HasBasis p b
this : (𝓤 G).HasBasis p fun i => (fun p => p.2 / p.1) ⁻¹' b i
x✝¹ : ι
x✝ : α →ᵤ G
⊢ (∀ (x : α), toFun x✝ x ∈ b x✝¹) ↔ (1, x✝) ∈ UniformFun.gen α G ((fun p => p.2 / p.1) ⁻¹' b x✝¹)

tactic: simp
state_before: case h.e'_5.h.h.e'_2.h.a
α : Type u_1
G : Type u_2
ι : Type u_3
inst✝² : Group G
𝔖 : Set (Set α)
inst✝¹ : UniformSpace G
inst✝ : UniformGroup G
p : ι → Prop
b : ι → Set G
h : (𝓝 1).HasBasis p b
this : (𝓤 G).HasBasis p fun i => (fun p => p.2 / p.1) ⁻¹' b i
x✝¹ : ι
x✝ : α →ᵤ G
⊢ (∀ (x : α), toFun x✝ x ∈ b x✝¹) ↔ (1, x✝) ∈ UniformFun.gen α G ((fun p => p.2 / p.1) ⁻¹' b x✝¹)
state_after: no goals
Theorem: Finset.sum_card_le
File: Mathlib/Algebra/Order/BigOperators/Group/Finset.lean

tactic: simp_rw [univ_inter]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝¹ : DecidableEq α
s : Finset α
B : Finset (Finset α)
n : ℕ
inst✝ : Fintype α
h : ∀ (a : α), (filter (fun x => a ∈ x) B).card ≤ n
⊢ ∑ s ∈ B, s.card = ∑ s ∈ B, (univ ∩ s).card
state_after: no goals
Theorem: mem_rootsOfUnity_prime_pow_mul_iff'
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: rw [← PNat.mk_coe p (expChar_pos R p), ← PNat.pow_coe, ← PNat.mul_coe, ← mem_rootsOfUnity,
  mem_rootsOfUnity_prime_pow_mul_iff]
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
inst✝¹ : IsReduced R
p k : ℕ
m : ℕ+
inst✝ : ExpChar R p
ζ : Rˣ
⊢ ζ ^ (p ^ k * ↑m) = 1 ↔ ζ ∈ rootsOfUnity m R
state_after: no goals
Theorem: Finset.powersetCard_nonempty
File: Mathlib/Data/Finset/Powerset.lean

tactic: aesop (add simp [Finset.Nonempty, exists_subset_card_eq, card_le_card])
state_before: α : Type u_1
s✝ t✝ : Finset α
n : ℕ
s t : Finset α
⊢ (powersetCard n s).Nonempty ↔ n ≤ s.card
state_after: no goals
Theorem: Finset.disjiUnion_filter_eq_of_maps_to
File: Mathlib/Data/Finset/Union.lean

tactic: simpa [filter_eq_self]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
s : Finset α
t : Finset β
f : α → β
h : ∀ x ∈ s, f x ∈ t
⊢ t.disjiUnion (fun a => filter (fun x => f x = a) s) ⋯ = s
state_after: no goals
Theorem: Valuation.RankOne.hom_eq_zero_iff
File: Mathlib/RingTheory/Valuation/RankOne.lean

tactic: rw [h, _root_.map_zero]
state_before: R : Type u_1
inst✝² : Ring R
Γ₀ : Type u_2
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
v : Valuation R Γ₀
inst✝ : v.RankOne
x : Γ₀
h : x = 0
⊢ (hom v) x = 0
state_after: no goals
Theorem: HurwitzZeta.differentiableAt_completedHurwitzZetaEven
File: Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean

tactic: refine (((hurwitzEvenFEPair a).differentiableAt_Λ ?_ (Or.inl ?_)).comp s
    (differentiableAt_id.div_const _)).div_const _
state_before: a : UnitAddCircle
s : ℂ
hs : s ≠ 0 ∨ a ≠ 0
hs' : s ≠ 1
⊢ DifferentiableAt ℂ (completedHurwitzZetaEven a) s
state_after: case refine_1
a : UnitAddCircle
s : ℂ
hs : s ≠ 0 ∨ a ≠ 0
hs' : s ≠ 1
⊢ s / 2 ≠ 0 ∨ (hurwitzEvenFEPair a).f₀ = 0

case refine_2
a : UnitAddCircle
s : ℂ
hs : s ≠ 0 ∨ a ≠ 0
hs' : s ≠ 1
⊢ s / 2 ≠ ↑(hurwitzEvenFEPair a).k

tactic: simp only [ne_eq, div_eq_zero_iff, OfNat.ofNat_ne_zero, or_false]
state_before: case refine_1
a : UnitAddCircle
s : ℂ
hs : s ≠ 0 ∨ a ≠ 0
hs' : s ≠ 1
⊢ s / 2 ≠ 0 ∨ (hurwitzEvenFEPair a).f₀ = 0
state_after: case refine_1
a : UnitAddCircle
s : ℂ
hs : s ≠ 0 ∨ a ≠ 0
hs' : s ≠ 1
⊢ ¬s = 0 ∨ (hurwitzEvenFEPair a).f₀ = 0

tactic: rcases hs with h | h
state_before: case refine_1
a : UnitAddCircle
s : ℂ
hs : s ≠ 0 ∨ a ≠ 0
hs' : s ≠ 1
⊢ ¬s = 0 ∨ (hurwitzEvenFEPair a).f₀ = 0
state_after: case refine_1.inl
a : UnitAddCircle
s : ℂ
hs' : s ≠ 1
h : s ≠ 0
⊢ ¬s = 0 ∨ (hurwitzEvenFEPair a).f₀ = 0

case refine_1.inr
a : UnitAddCircle
s : ℂ
hs' : s ≠ 1
h : a ≠ 0
⊢ ¬s = 0 ∨ (hurwitzEvenFEPair a).f₀ = 0

tactic: exact Or.inl h
state_before: case refine_1.inl
a : UnitAddCircle
s : ℂ
hs' : s ≠ 1
h : s ≠ 0
⊢ ¬s = 0 ∨ (hurwitzEvenFEPair a).f₀ = 0
state_after: no goals

tactic: simp only [hurwitzEvenFEPair, one_div, h, ↓reduceIte, or_true]
state_before: case refine_1.inr
a : UnitAddCircle
s : ℂ
hs' : s ≠ 1
h : a ≠ 0
⊢ ¬s = 0 ∨ (hurwitzEvenFEPair a).f₀ = 0
state_after: no goals

tactic: change s / 2 ≠ ↑(1 / 2 : ℝ)
state_before: case refine_2
a : UnitAddCircle
s : ℂ
hs : s ≠ 0 ∨ a ≠ 0
hs' : s ≠ 1
⊢ s / 2 ≠ ↑(hurwitzEvenFEPair a).k
state_after: case refine_2
a : UnitAddCircle
s : ℂ
hs : s ≠ 0 ∨ a ≠ 0
hs' : s ≠ 1
⊢ s / 2 ≠ ↑(1 / 2)

tactic: rw [ofReal_div, ofReal_one, ofReal_ofNat]
state_before: case refine_2
a : UnitAddCircle
s : ℂ
hs : s ≠ 0 ∨ a ≠ 0
hs' : s ≠ 1
⊢ s / 2 ≠ ↑(1 / 2)
state_after: case refine_2
a : UnitAddCircle
s : ℂ
hs : s ≠ 0 ∨ a ≠ 0
hs' : s ≠ 1
⊢ s / 2 ≠ 1 / 2

tactic: exact hs' ∘ (div_left_inj' two_ne_zero).mp
state_before: case refine_2
a : UnitAddCircle
s : ℂ
hs : s ≠ 0 ∨ a ≠ 0
hs' : s ≠ 1
⊢ s / 2 ≠ 1 / 2
state_after: no goals
Theorem: Real.IsConjExponent.toNNReal
File: Mathlib/Data/Real/ConjExponents.lean

tactic: simpa using hpq.one_lt
state_before: p q : ℝ
hpq : p.IsConjExponent q
⊢ 1 < p.toNNReal
state_after: no goals

tactic: rw [← toNNReal_inv, ← toNNReal_inv, ← toNNReal_add hpq.inv_nonneg
hpq.symm.inv_nonneg, hpq.inv_add_inv_conj, toNNReal_one]
state_before: p q : ℝ
hpq : p.IsConjExponent q
⊢ p.toNNReal⁻¹ + q.toNNReal⁻¹ = 1
state_after: no goals
Theorem: CategoryTheory.Bicategory.pentagon_inv_hom_hom_hom_hom
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: simp [← cancel_epi ((α_ f g h).hom ▷ i)]
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
h : c ⟶ d
i : d ⟶ e
⊢ (α_ f g h).inv ▷ i ≫ (α_ (f ≫ g) h i).hom ≫ (α_ f g (h ≫ i)).hom = (α_ f (g ≫ h) i).hom ≫ f ◁ (α_ g h i).hom
state_after: no goals
Theorem: Orientation.oangle_sub_right
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: rw [sub_eq_iff_eq_add, o.oangle_add hx hy hz]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y z : V
hx : x ≠ 0
hy : y ≠ 0
hz : z ≠ 0
⊢ o.oangle x z - o.oangle y z = o.oangle x y
state_after: no goals
Theorem: closedBall_rpow_sub_one_eq_empty_aux
File: Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean

tactic: rw [Metric.closedBall_eq_empty, sub_neg]
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
r t : ℝ
hr : 0 < r
ht : 1 < t
⊢ Metric.closedBall 0 (t ^ (-r⁻¹) - 1) = ∅
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
r t : ℝ
hr : 0 < r
ht : 1 < t
⊢ t ^ (-r⁻¹) < 1

tactic: exact Real.rpow_lt_one_of_one_lt_of_neg ht (by simp only [hr, Right.neg_neg_iff, inv_pos])
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
r t : ℝ
hr : 0 < r
ht : 1 < t
⊢ t ^ (-r⁻¹) < 1
state_after: no goals

tactic: simp only [hr, Right.neg_neg_iff, inv_pos]
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
r t : ℝ
hr : 0 < r
ht : 1 < t
⊢ -r⁻¹ < 0
state_after: no goals
Theorem: IsOrderConnected.neg_trans
File: Mathlib/Order/RelClasses.lean

tactic: simp [h₁, h₂]
state_before: α : Type u
β : Type v
r✝ : α → α → Prop
s : β → β → Prop
r : α → α → Prop
inst✝ : IsOrderConnected α r
a b c : α
h₁ : ¬r a b
h₂ : ¬r b c
⊢ ¬(r a b ∨ r b c)
state_after: no goals
Theorem: CircleDeg1Lift.continuous_pow
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: rw [coe_pow]
state_before: f g : CircleDeg1Lift
hf : Continuous ⇑f
n : ℕ
⊢ Continuous ⇑(f ^ n)
state_after: f g : CircleDeg1Lift
hf : Continuous ⇑f
n : ℕ
⊢ Continuous (⇑f)^[n]

tactic: exact hf.iterate n
state_before: f g : CircleDeg1Lift
hf : Continuous ⇑f
n : ℕ
⊢ Continuous (⇑f)^[n]
state_after: no goals
Theorem: isCycle_finRotate_of_le
File: Mathlib/GroupTheory/Perm/Fin.lean

tactic: obtain ⟨m, rfl⟩ := exists_add_of_le h
state_before: n : ℕ
h : 2 ≤ n
⊢ (finRotate n).IsCycle
state_after: case intro
m : ℕ
h : 2 ≤ 2 + m
⊢ (finRotate (2 + m)).IsCycle

tactic: rw [add_comm]
state_before: case intro
m : ℕ
h : 2 ≤ 2 + m
⊢ (finRotate (2 + m)).IsCycle
state_after: case intro
m : ℕ
h : 2 ≤ 2 + m
⊢ (finRotate (m + 2)).IsCycle

tactic: exact isCycle_finRotate
state_before: case intro
m : ℕ
h : 2 ≤ 2 + m
⊢ (finRotate (m + 2)).IsCycle
state_after: no goals
Theorem: Stream'.WSeq.head_some_of_get?_some
File: Mathlib/Data/Seq/WSeq.lean

tactic: induction n generalizing a with
| zero => exact ⟨_, h⟩
| succ n IH =>
    let ⟨a', h'⟩ := head_some_of_head_tail_some h
    exact IH h'
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
a : α
n : ℕ
h : some a ∈ s.get? n
⊢ ∃ a', some a' ∈ s.head
state_after: no goals

tactic: exact ⟨_, h⟩
state_before: case zero
α : Type u
β : Type v
γ : Type w
s : WSeq α
a : α
h : some a ∈ s.get? 0
⊢ ∃ a', some a' ∈ s.head
state_after: no goals

tactic: let ⟨a', h'⟩ := head_some_of_head_tail_some h
state_before: case succ
α : Type u
β : Type v
γ : Type w
s : WSeq α
n : ℕ
IH : ∀ {a : α}, some a ∈ s.get? n → ∃ a', some a' ∈ s.head
a : α
h : some a ∈ s.get? (n + 1)
⊢ ∃ a', some a' ∈ s.head
state_after: case succ
α : Type u
β : Type v
γ : Type w
s : WSeq α
n : ℕ
IH : ∀ {a : α}, some a ∈ s.get? n → ∃ a', some a' ∈ s.head
a : α
h : some a ∈ s.get? (n + 1)
a' : α
h' : some a' ∈ (s.drop n).head
⊢ ∃ a', some a' ∈ s.head

tactic: exact IH h'
state_before: case succ
α : Type u
β : Type v
γ : Type w
s : WSeq α
n : ℕ
IH : ∀ {a : α}, some a ∈ s.get? n → ∃ a', some a' ∈ s.head
a : α
h : some a ∈ s.get? (n + 1)
a' : α
h' : some a' ∈ (s.drop n).head
⊢ ∃ a', some a' ∈ s.head
state_after: no goals
Theorem: MeasureTheory.Measure.haar.chaar_nonneg
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

tactic: have := chaar_mem_haarProduct K₀ K (mem_univ _)
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
⊢ 0 ≤ chaar K₀ K
state_after: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
this : chaar K₀ K ∈ (fun K => Icc 0 ↑(index ↑K ↑K₀)) K
⊢ 0 ≤ chaar K₀ K

tactic: rw [mem_Icc] at this
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
this : chaar K₀ K ∈ (fun K => Icc 0 ↑(index ↑K ↑K₀)) K
⊢ 0 ≤ chaar K₀ K
state_after: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
this : 0 ≤ chaar K₀ K ∧ chaar K₀ K ≤ ↑(index ↑K ↑K₀)
⊢ 0 ≤ chaar K₀ K

tactic: exact this.1
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
this : 0 ≤ chaar K₀ K ∧ chaar K₀ K ≤ ↑(index ↑K ↑K₀)
⊢ 0 ≤ chaar K₀ K
state_after: no goals
Theorem: MeasureTheory.Measure.restrict_eq_zero
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: rw [← measure_univ_eq_zero, restrict_apply_univ]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ μ.restrict s = 0 ↔ μ s = 0
state_after: no goals
Theorem: Associates.mk_isRelPrime_iff
File: Mathlib/Algebra/Associated.lean

tactic: simp_rw [IsRelPrime, forall_associated, mk_dvd_mk, isUnit_mk]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CommMonoid α
a b : α
⊢ IsRelPrime (Associates.mk a) (Associates.mk b) ↔ IsRelPrime a b
state_after: no goals
Theorem: Hyperreal.infiniteNeg_iff_infinitesimal_inv_neg
File: Mathlib/Data/Real/Hyperreal.lean

tactic: rw [← infinitePos_neg, infinitePos_iff_infinitesimal_inv_pos, inv_neg, neg_pos, infinitesimal_neg]
state_before: x : ℝ*
⊢ x.InfiniteNeg ↔ x⁻¹.Infinitesimal ∧ x⁻¹ < 0
state_after: no goals
Theorem: Nat.leRecOn_injective
File: Mathlib/Data/Nat/Defs.lean

tactic: induction hnm with
| refl =>
  intro x y H
  rwa [leRecOn_self, leRecOn_self] at H
| step hnm ih =>
  intro x y H
  rw [leRecOn_succ hnm, leRecOn_succ hnm] at H
  exact ih (Hnext _ H)
state_before: a b c d m✝ n✝ k : ℕ
p q : ℕ → Prop
C : ℕ → Sort u_1
n m : ℕ
hnm : n ≤ m
next : {k : ℕ} → C k → C (k + 1)
Hnext : ∀ (n : ℕ), Injective next
⊢ Injective (leRecOn hnm fun {k} => next)
state_after: no goals

tactic: intro x y H
state_before: case refl
a b c d m✝ n✝ k : ℕ
p q : ℕ → Prop
C : ℕ → Sort u_1
n m : ℕ
next : {k : ℕ} → C k → C (k + 1)
Hnext : ∀ (n : ℕ), Injective next
⊢ Injective (leRecOn ⋯ fun {k} => next)
state_after: case refl
a b c d m✝ n✝ k : ℕ
p q : ℕ → Prop
C : ℕ → Sort u_1
n m : ℕ
next : {k : ℕ} → C k → C (k + 1)
Hnext : ∀ (n : ℕ), Injective next
x y : C n
H : leRecOn ⋯ (fun {k} => next) x = leRecOn ⋯ (fun {k} => next) y
⊢ x = y

tactic: rwa [leRecOn_self, leRecOn_self] at H
state_before: case refl
a b c d m✝ n✝ k : ℕ
p q : ℕ → Prop
C : ℕ → Sort u_1
n m : ℕ
next : {k : ℕ} → C k → C (k + 1)
Hnext : ∀ (n : ℕ), Injective next
x y : C n
H : leRecOn ⋯ (fun {k} => next) x = leRecOn ⋯ (fun {k} => next) y
⊢ x = y
state_after: no goals

tactic: intro x y H
state_before: case step
a b c d m✝¹ n✝ k : ℕ
p q : ℕ → Prop
C : ℕ → Sort u_1
n m : ℕ
next : {k : ℕ} → C k → C (k + 1)
Hnext : ∀ (n : ℕ), Injective next
m✝ : ℕ
hnm : n.le m✝
ih : Injective (leRecOn hnm fun {k} => next)
⊢ Injective (leRecOn ⋯ fun {k} => next)
state_after: case step
a b c d m✝¹ n✝ k : ℕ
p q : ℕ → Prop
C : ℕ → Sort u_1
n m : ℕ
next : {k : ℕ} → C k → C (k + 1)
Hnext : ∀ (n : ℕ), Injective next
m✝ : ℕ
hnm : n.le m✝
ih : Injective (leRecOn hnm fun {k} => next)
x y : C n
H : leRecOn ⋯ (fun {k} => next) x = leRecOn ⋯ (fun {k} => next) y
⊢ x = y

tactic: rw [leRecOn_succ hnm, leRecOn_succ hnm] at H
state_before: case step
a b c d m✝¹ n✝ k : ℕ
p q : ℕ → Prop
C : ℕ → Sort u_1
n m : ℕ
next : {k : ℕ} → C k → C (k + 1)
Hnext : ∀ (n : ℕ), Injective next
m✝ : ℕ
hnm : n.le m✝
ih : Injective (leRecOn hnm fun {k} => next)
x y : C n
H : leRecOn ⋯ (fun {k} => next) x = leRecOn ⋯ (fun {k} => next) y
⊢ x = y
state_after: case step
a b c d m✝¹ n✝ k : ℕ
p q : ℕ → Prop
C : ℕ → Sort u_1
n m : ℕ
next : {k : ℕ} → C k → C (k + 1)
Hnext : ∀ (n : ℕ), Injective next
m✝ : ℕ
hnm : n.le m✝
ih : Injective (leRecOn hnm fun {k} => next)
x y : C n
H : next (leRecOn hnm (fun {k} => next) x) = next (leRecOn hnm (fun {k} => next) y)
⊢ x = y

tactic: exact ih (Hnext _ H)
state_before: case step
a b c d m✝¹ n✝ k : ℕ
p q : ℕ → Prop
C : ℕ → Sort u_1
n m : ℕ
next : {k : ℕ} → C k → C (k + 1)
Hnext : ∀ (n : ℕ), Injective next
m✝ : ℕ
hnm : n.le m✝
ih : Injective (leRecOn hnm fun {k} => next)
x y : C n
H : next (leRecOn hnm (fun {k} => next) x) = next (leRecOn hnm (fun {k} => next) y)
⊢ x = y
state_after: no goals
Theorem: FiniteField.cast_card_eq_zero
File: Mathlib/FieldTheory/Finite/Basic.lean

tactic: simp
state_before: K : Type u_1
R : Type u_2
inst✝¹ : Field K
inst✝ : Fintype K
⊢ ↑q = 0
state_after: no goals
Theorem: Filter.ofSets_filter_eq_generate
File: Mathlib/Order/Filter/Bases.lean

tactic: rw [← (FilterBasis.ofSets s).generate, FilterBasis.ofSets_sets, ← generate_eq_generate_inter]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l l' : Filter α
p : ι → Prop
s✝ : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
s : Set (Set α)
⊢ (FilterBasis.ofSets s).filter = generate s
state_after: no goals
Theorem: IsLowerSet.sdiff_of_isUpperSet
File: Mathlib/Order/UpperLower/Basic.lean

tactic: aesop
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : LE α
inst✝ : LE β
s t : Set α
a : α
hs : IsLowerSet s
ht : IsUpperSet t
⊢ ∀ b ∈ s, ∀ c ∈ t, c ≤ b → b ∈ t
state_after: no goals
Theorem: Real.arccos_eq_zero
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: simp [arccos, sub_eq_zero]
state_before: x✝ y x : ℝ
⊢ arccos x = 0 ↔ 1 ≤ x
state_after: no goals
Theorem: CategoryTheory.Limits.biprod.braiding'_eq_braiding
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: aesop_cat
state_before: J : Type w
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
P✝ Q✝ : C
inst✝ : HasBinaryBiproducts C
P Q : C
⊢ braiding' P Q = braiding P Q
state_after: no goals
Theorem: dualTensorHomEquivOfBasis_symm_cancel_left
File: Mathlib/LinearAlgebra/Contraction.lean

tactic: rw [← dualTensorHomEquivOfBasis_apply b,
  LinearEquiv.symm_apply_apply <| dualTensorHomEquivOfBasis (N := N) b]
state_before: ι : Type w
R : Type u
M : Type v₁
N : Type v₂
P : Type v₃
Q : Type v₄
inst✝¹⁰ : CommRing R
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup N
inst✝⁷ : AddCommGroup P
inst✝⁶ : AddCommGroup Q
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : Module R P
inst✝² : Module R Q
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
b : Basis ι R M
x : Dual R M ⊗[R] N
⊢ (dualTensorHomEquivOfBasis b).symm ((dualTensorHom R M N) x) = x
state_after: no goals
Theorem: div_le_div_iff'
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: simpa only [div_eq_mul_inv] using mul_inv_le_mul_inv_iff'
state_before: α : Type u
inst✝² : CommGroup α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
⊢ a / b ≤ c / d ↔ a * d ≤ c * b
state_after: no goals
Theorem: IsCoprime.mul_add_right_left
File: Mathlib/RingTheory/Coprime/Basic.lean

tactic: rw [add_comm]
state_before: R : Type u
inst✝ : CommRing R
x y : R
h : IsCoprime x y
z : R
⊢ IsCoprime (z * y + x) y
state_after: R : Type u
inst✝ : CommRing R
x y : R
h : IsCoprime x y
z : R
⊢ IsCoprime (x + z * y) y

tactic: exact h.add_mul_right_left z
state_before: R : Type u
inst✝ : CommRing R
x y : R
h : IsCoprime x y
z : R
⊢ IsCoprime (x + z * y) y
state_after: no goals
Theorem: QuotientGroup.leftRel_r_eq_leftCosetEquivalence
File: Mathlib/GroupTheory/Coset.lean

tactic: ext
state_before: α : Type u_1
inst✝ : Group α
s : Subgroup α
⊢ Setoid.r = LeftCosetEquivalence ↑s
state_after: case h.h.a
α : Type u_1
inst✝ : Group α
s : Subgroup α
x✝¹ x✝ : α
⊢ Setoid.r x✝¹ x✝ ↔ LeftCosetEquivalence (↑s) x✝¹ x✝

tactic: rw [leftRel_eq]
state_before: case h.h.a
α : Type u_1
inst✝ : Group α
s : Subgroup α
x✝¹ x✝ : α
⊢ Setoid.r x✝¹ x✝ ↔ LeftCosetEquivalence (↑s) x✝¹ x✝
state_after: case h.h.a
α : Type u_1
inst✝ : Group α
s : Subgroup α
x✝¹ x✝ : α
⊢ (fun x y => x⁻¹ * y ∈ s) x✝¹ x✝ ↔ LeftCosetEquivalence (↑s) x✝¹ x✝

tactic: exact (leftCoset_eq_iff s).symm
state_before: case h.h.a
α : Type u_1
inst✝ : Group α
s : Subgroup α
x✝¹ x✝ : α
⊢ (fun x y => x⁻¹ * y ∈ s) x✝¹ x✝ ↔ LeftCosetEquivalence (↑s) x✝¹ x✝
state_after: no goals