1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: nhds_left'_sup_nhds_right'
File: Mathlib/Topology/Order/LeftRight.lean

tactic: rw [← nhdsWithin_union, Iio_union_Ioi]
state_before: α : Type u_1
β : Type u_2
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : TopologicalSpace β
a : α
⊢ 𝓝[<] a ⊔ 𝓝[>] a = 𝓝[≠] a
state_after: no goals
Theorem: Matrix.isUnit_iff_isUnit_det
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

tactic: simp only [← nonempty_invertible_iff_isUnit, (invertibleEquivDetInvertible A).nonempty_congr]
state_before: l : Type u_1
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
⊢ IsUnit A ↔ IsUnit A.det
state_after: no goals
Theorem: PiTensorProduct.congr_symm_tprod
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

tactic: simp only [congr, LinearEquiv.ofLinear_symm_apply, map_tprod, LinearEquiv.coe_coe]
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝¹¹ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝¹⁰ : (i : ι) → AddCommMonoid (s i)
inst✝⁹ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
E : Type u_9
inst✝⁶ : AddCommMonoid E
inst✝⁵ : Module R E
F : Type u_10
inst✝⁴ : AddCommMonoid F
t : ι → Type u_11
t' : ι → Type u_12
inst✝³ : (i : ι) → AddCommMonoid (t i)
inst✝² : (i : ι) → Module R (t i)
inst✝¹ : (i : ι) → AddCommMonoid (t' i)
inst✝ : (i : ι) → Module R (t' i)
g : (i : ι) → t i →ₗ[R] t' i
f✝ : (i : ι) → s i →ₗ[R] t i
f : (i : ι) → s i ≃ₗ[R] t i
p : (i : ι) → t i
⊢ (congr f).symm ((tprod R) p) = ⨂ₜ[R] (i : ι), (f i).symm (p i)
state_after: no goals
Theorem: Lagrange.interpolate_empty
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: rw [interpolate_apply, sum_empty]
state_before: F : Type u_1
inst✝¹ : Field F
ι : Type u_2
inst✝ : DecidableEq ι
s t : Finset ι
i j : ι
v r r' : ι → F
⊢ (interpolate ∅ v) r = 0
state_after: no goals
Theorem: Set.encard_le_encard_iff_encard_diff_le_encard_diff
File: Mathlib/Data/Set/Card.lean

tactic: rw [← encard_diff_add_encard_inter s t, ← encard_diff_add_encard_inter t s, inter_comm t s,
  WithTop.add_le_add_iff_right h.encard_lt_top.ne]
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : (s ∩ t).Finite
⊢ s.encard ≤ t.encard ↔ (s \ t).encard ≤ (t \ s).encard
state_after: no goals
Theorem: MeasureTheory.FiniteMeasure.mass_nonzero_iff
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

tactic: rw [not_iff_not]
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
⊢ μ.mass ≠ 0 ↔ μ ≠ 0
state_after: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
⊢ μ.mass = 0 ↔ μ = 0

tactic: exact FiniteMeasure.mass_zero_iff μ
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
⊢ μ.mass = 0 ↔ μ = 0
state_after: no goals
Theorem: Complex.Gamma_zero
File: Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean

tactic: simp_rw [Gamma, zero_re, sub_zero, Nat.floor_one, GammaAux, div_zero]
state_before: ⊢ Gamma 0 = 0
state_after: no goals
Theorem: Field.DirectLimit.inv_mul_cancel
File: Mathlib/Algebra/DirectLimit.lean

tactic: rw [_root_.mul_comm, DirectLimit.mul_inv_cancel G f hp]
state_before: R : Type u
inst✝⁴ : Ring R
ι : Type v
inst✝³ : Preorder ι
G : ι → Type w
inst✝² : Nonempty ι
inst✝¹ : IsDirected ι fun x x_1 => x ≤ x_1
inst✝ : (i : ι) → Field (G i)
f : (i j : ι) → i ≤ j → G i → G j
f' : (i j : ι) → i ≤ j → G i →+* G j
p : Ring.DirectLimit G f
hp : p ≠ 0
⊢ inv G f p * p = 1
state_after: no goals
Theorem: Filter.Tendsto.partialSups
File: Mathlib/Topology/Order/PartialSups.lean

tactic: simp only [partialSups_eq_sup'_range]
state_before: L : Type u_1
inst✝² : SemilatticeSup L
inst✝¹ : TopologicalSpace L
inst✝ : ContinuousSup L
α : Type u_2
l : Filter α
f : ℕ → α → L
g : ℕ → L
n : ℕ
hf : ∀ k ≤ n, Tendsto (f k) l (𝓝 (g k))
⊢ Tendsto ((partialSups f) n) l (𝓝 ((partialSups g) n))
state_after: L : Type u_1
inst✝² : SemilatticeSup L
inst✝¹ : TopologicalSpace L
inst✝ : ContinuousSup L
α : Type u_2
l : Filter α
f : ℕ → α → L
g : ℕ → L
n : ℕ
hf : ∀ k ≤ n, Tendsto (f k) l (𝓝 (g k))
⊢ Tendsto ((Finset.range (n + 1)).sup' ⋯ f) l (𝓝 ((Finset.range (n + 1)).sup' ⋯ g))

tactic: refine finset_sup'_nhds _ ?_
state_before: L : Type u_1
inst✝² : SemilatticeSup L
inst✝¹ : TopologicalSpace L
inst✝ : ContinuousSup L
α : Type u_2
l : Filter α
f : ℕ → α → L
g : ℕ → L
n : ℕ
hf : ∀ k ≤ n, Tendsto (f k) l (𝓝 (g k))
⊢ Tendsto ((Finset.range (n + 1)).sup' ⋯ f) l (𝓝 ((Finset.range (n + 1)).sup' ⋯ g))
state_after: L : Type u_1
inst✝² : SemilatticeSup L
inst✝¹ : TopologicalSpace L
inst✝ : ContinuousSup L
α : Type u_2
l : Filter α
f : ℕ → α → L
g : ℕ → L
n : ℕ
hf : ∀ k ≤ n, Tendsto (f k) l (𝓝 (g k))
⊢ ∀ i ∈ Finset.range (n + 1), Tendsto (f i) l (𝓝 (g i))

tactic: simpa [Nat.lt_succ_iff]
state_before: L : Type u_1
inst✝² : SemilatticeSup L
inst✝¹ : TopologicalSpace L
inst✝ : ContinuousSup L
α : Type u_2
l : Filter α
f : ℕ → α → L
g : ℕ → L
n : ℕ
hf : ∀ k ≤ n, Tendsto (f k) l (𝓝 (g k))
⊢ ∀ i ∈ Finset.range (n + 1), Tendsto (f i) l (𝓝 (g i))
state_after: no goals
Theorem: Eq.sameCycle
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: rw [h]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
p : α → Prop
x y z : α
h : x = y
f : Perm α
⊢ f.SameCycle x y
state_after: no goals
Theorem: BumpCovering.smooth_toPartitionOfUnity
File: Mathlib/Geometry/Manifold/PartitionOfUnity.lean

tactic: simp only [Pi.sub_def, mulSupport_one_sub]
state_before: ι : Type uι
E✝ : Type uE
inst✝¹³ : NormedAddCommGroup E✝
inst✝¹² : NormedSpace ℝ E✝
inst✝¹¹ : FiniteDimensional ℝ E✝
F : Type uF
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
H✝ : Type uH
inst✝⁸ : TopologicalSpace H✝
I✝ : ModelWithCorners ℝ E✝ H✝
M✝ : Type uM
inst✝⁷ : TopologicalSpace M✝
inst✝⁶ : ChartedSpace H✝ M✝
inst✝⁵ : SmoothManifoldWithCorners I✝ M✝
E : Type uE
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
H : Type uH
inst✝² : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
s : Set M
f : BumpCovering ι M s
hf : ∀ (i : ι), Smooth I 𝓘(ℝ, ℝ) ⇑(f i)
i : ι
⊢ LocallyFinite fun i => mulSupport ((fun x => 1) - ⇑(f i))
state_after: ι : Type uι
E✝ : Type uE
inst✝¹³ : NormedAddCommGroup E✝
inst✝¹² : NormedSpace ℝ E✝
inst✝¹¹ : FiniteDimensional ℝ E✝
F : Type uF
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
H✝ : Type uH
inst✝⁸ : TopologicalSpace H✝
I✝ : ModelWithCorners ℝ E✝ H✝
M✝ : Type uM
inst✝⁷ : TopologicalSpace M✝
inst✝⁶ : ChartedSpace H✝ M✝
inst✝⁵ : SmoothManifoldWithCorners I✝ M✝
E : Type uE
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
H : Type uH
inst✝² : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
s : Set M
f : BumpCovering ι M s
hf : ∀ (i : ι), Smooth I 𝓘(ℝ, ℝ) ⇑(f i)
i : ι
⊢ LocallyFinite fun i => support ⇑(f i)

tactic: exact f.locallyFinite
state_before: ι : Type uι
E✝ : Type uE
inst✝¹³ : NormedAddCommGroup E✝
inst✝¹² : NormedSpace ℝ E✝
inst✝¹¹ : FiniteDimensional ℝ E✝
F : Type uF
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
H✝ : Type uH
inst✝⁸ : TopologicalSpace H✝
I✝ : ModelWithCorners ℝ E✝ H✝
M✝ : Type uM
inst✝⁷ : TopologicalSpace M✝
inst✝⁶ : ChartedSpace H✝ M✝
inst✝⁵ : SmoothManifoldWithCorners I✝ M✝
E : Type uE
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
H : Type uH
inst✝² : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
s : Set M
f : BumpCovering ι M s
hf : ∀ (i : ι), Smooth I 𝓘(ℝ, ℝ) ⇑(f i)
i : ι
⊢ LocallyFinite fun i => support ⇑(f i)
state_after: no goals
Theorem: Filter.blimsup_or_eq_sup
File: Mathlib/Order/LiminfLimsup.lean

tactic: simp only [blimsup_eq_limsup, ← limsup_sup_filter, ← inf_sup_left, sup_principal, setOf_or]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
⊢ (blimsup u f fun x => p x ∨ q x) = blimsup u f p ⊔ blimsup u f q
state_after: no goals
Theorem: List.map₂Right'_nil_left
File: Mathlib/Data/List/Basic.lean

tactic: cases bs <;> rfl
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : Option α → β → γ
a : α
as : List α
b : β
bs : List β
⊢ map₂Right' f [] bs = (map (f none) bs, [])
state_after: no goals
Theorem: NumberField.mixedEmbedding.normAtPlace_nonneg
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean

tactic: rw [normAtPlace, MonoidWithZeroHom.coe_mk, ZeroHom.coe_mk]
state_before: K : Type u_1
inst✝ : Field K
w : InfinitePlace K
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ 0 ≤ (normAtPlace w) x
state_after: K : Type u_1
inst✝ : Field K
w : InfinitePlace K
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ 0 ≤ if hw : w.IsReal then ‖x.1 ⟨w, hw⟩‖ else ‖x.2 ⟨w, ⋯⟩‖

tactic: split_ifs <;> exact norm_nonneg _
state_before: K : Type u_1
inst✝ : Field K
w : InfinitePlace K
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ 0 ≤ if hw : w.IsReal then ‖x.1 ⟨w, hw⟩‖ else ‖x.2 ⟨w, ⋯⟩‖
state_after: no goals
Theorem: Set.mk_preimage_prod_left_eq_empty
File: Mathlib/Data/Set/Prod.lean

tactic: ext a
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
hb : b ∉ t
⊢ (fun a => (a, b)) ⁻¹' s ×ˢ t = ∅
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a✝ : α
b : β
hb : b ∉ t
a : α
⊢ a ∈ (fun a => (a, b)) ⁻¹' s ×ˢ t ↔ a ∈ ∅

tactic: simp [hb]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a✝ : α
b : β
hb : b ∉ t
a : α
⊢ a ∈ (fun a => (a, b)) ⁻¹' s ×ˢ t ↔ a ∈ ∅
state_after: no goals
Theorem: Set.Finite.pi
File: Mathlib/Data/Set/Finite.lean

tactic: cases nonempty_fintype ι
state_before: α : Type u
β : Type v
ι✝ : Sort w
γ : Type x
ι : Type u_1
inst✝ : Finite ι
κ : ι → Type u_2
t : (i : ι) → Set (κ i)
ht : ∀ (i : ι), (t i).Finite
⊢ (univ.pi t).Finite
state_after: case intro
α : Type u
β : Type v
ι✝ : Sort w
γ : Type x
ι : Type u_1
inst✝ : Finite ι
κ : ι → Type u_2
t : (i : ι) → Set (κ i)
ht : ∀ (i : ι), (t i).Finite
val✝ : Fintype ι
⊢ (univ.pi t).Finite

tactic: lift t to ∀ d, Finset (κ d) using ht
state_before: case intro
α : Type u
β : Type v
ι✝ : Sort w
γ : Type x
ι : Type u_1
inst✝ : Finite ι
κ : ι → Type u_2
t : (i : ι) → Set (κ i)
ht : ∀ (i : ι), (t i).Finite
val✝ : Fintype ι
⊢ (univ.pi t).Finite
state_after: case intro.intro
α : Type u
β : Type v
ι✝ : Sort w
γ : Type x
ι : Type u_1
inst✝ : Finite ι
κ : ι → Type u_2
val✝ : Fintype ι
t : (i : ι) → Finset (κ i)
⊢ (univ.pi fun i => ↑(t i)).Finite

tactic: classical
  rw [← Fintype.coe_piFinset]
  apply Finset.finite_toSet
state_before: case intro.intro
α : Type u
β : Type v
ι✝ : Sort w
γ : Type x
ι : Type u_1
inst✝ : Finite ι
κ : ι → Type u_2
val✝ : Fintype ι
t : (i : ι) → Finset (κ i)
⊢ (univ.pi fun i => ↑(t i)).Finite
state_after: no goals

tactic: rw [← Fintype.coe_piFinset]
state_before: case intro.intro
α : Type u
β : Type v
ι✝ : Sort w
γ : Type x
ι : Type u_1
inst✝ : Finite ι
κ : ι → Type u_2
val✝ : Fintype ι
t : (i : ι) → Finset (κ i)
⊢ (univ.pi fun i => ↑(t i)).Finite
state_after: case intro.intro
α : Type u
β : Type v
ι✝ : Sort w
γ : Type x
ι : Type u_1
inst✝ : Finite ι
κ : ι → Type u_2
val✝ : Fintype ι
t : (i : ι) → Finset (κ i)
⊢ (↑(Fintype.piFinset t)).Finite

tactic: apply Finset.finite_toSet
state_before: case intro.intro
α : Type u
β : Type v
ι✝ : Sort w
γ : Type x
ι : Type u_1
inst✝ : Finite ι
κ : ι → Type u_2
val✝ : Fintype ι
t : (i : ι) → Finset (κ i)
⊢ (↑(Fintype.piFinset t)).Finite
state_after: no goals
Theorem: toIcoMod_eq_self
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [toIcoMod_eq_iff, and_iff_left]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ toIcoMod hp a b = b ↔ b ∈ Set.Ico a (a + p)
state_after: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ ∃ z, b = b + z • p

tactic: exact ⟨0, by simp⟩
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ ∃ z, b = b + z • p
state_after: no goals

tactic: simp
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ b = b + 0 • p
state_after: no goals
Theorem: CategoryTheory.PresheafOfGroups.OneCohomologyRelation.refl
File: Mathlib/CategoryTheory/Sites/NonabelianCohomology/H1.lean

tactic: simp
state_before: C : Type u
inst✝ : Category.{v, u} C
G : Cᵒᵖ ⥤ Grp
X : C
I : Type w'
U : I → C
γ : OneCochain G U
x✝⁴ x✝³ : I
x✝² : C
x✝¹ : x✝² ⟶ U x✝⁴
x✝ : x✝² ⟶ U x✝³
⊢ (G.map x✝¹.op) (1 x✝⁴) * γ.ev x✝⁴ x✝³ x✝¹ x✝ = γ.ev x✝⁴ x✝³ x✝¹ x✝ * (G.map x✝.op) (1 x✝³)
state_after: no goals
Theorem: ProbabilityTheory.iIndepFun.isProbabilityMeasure
File: Mathlib/Probability/Independence/Basic.lean

tactic: simpa using h.meas_biInter (S := ∅) (s := fun _ ↦ univ)
state_before: Ω : Type u_1
ι : Type u_2
β✝¹ : Type u_3
γ✝ : Type u_4
κ : ι → Type u_5
β✝ : Type u_6
β' : Type u_7
γ : Type u_8
γ' : Type u_9
_mΩ : MeasurableSpace Ω
μ : Measure Ω
f✝ : Ω → β✝
g : Ω → β'
β : ι → Type u_10
m : (i : ι) → MeasurableSpace (β i)
f : (i : ι) → Ω → β i
h : iIndepFun m f μ
⊢ μ univ = 1
state_after: no goals
Theorem: CategoryTheory.Subobject.isIso_iff_mk_eq_top
File: Mathlib/CategoryTheory/Subobject/Lattice.lean

tactic: rw [← ofMkLEMk_comp h.le, Category.comp_id]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
X✝ Y✝ Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
X Y : C
f : X ⟶ Y
inst✝ : Mono f
h : mk f = ⊤
⊢ IsIso f
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
X✝ Y✝ Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
X Y : C
f : X ⟶ Y
inst✝ : Mono f
h : mk f = ⊤
⊢ IsIso (ofMkLEMk f (𝟙 Y) ⋯)

tactic: exact (isoOfMkEqMk _ _ h).isIso_hom
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
X✝ Y✝ Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
X Y : C
f : X ⟶ Y
inst✝ : Mono f
h : mk f = ⊤
⊢ IsIso (ofMkLEMk f (𝟙 Y) ⋯)
state_after: no goals
Theorem: Rel.interedges_disjoint_right
File: Mathlib/Combinatorics/SimpleGraph/Density.lean

tactic: rw [Finset.disjoint_left] at ht ⊢
state_before: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝ : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
s : Finset α
t t' : Finset β
ht : Disjoint t t'
⊢ Disjoint (interedges r s t) (interedges r s t')
state_after: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝ : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
s : Finset α
t t' : Finset β
ht : ∀ ⦃a : β⦄, a ∈ t → a ∉ t'
⊢ ∀ ⦃a : α × β⦄, a ∈ interedges r s t → a ∉ interedges r s t'

tactic: intro _ hx hy
state_before: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝ : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
s : Finset α
t t' : Finset β
ht : ∀ ⦃a : β⦄, a ∈ t → a ∉ t'
⊢ ∀ ⦃a : α × β⦄, a ∈ interedges r s t → a ∉ interedges r s t'
state_after: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝ : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
s : Finset α
t t' : Finset β
ht : ∀ ⦃a : β⦄, a ∈ t → a ∉ t'
a✝ : α × β
hx : a✝ ∈ interedges r s t
hy : a✝ ∈ interedges r s t'
⊢ False

tactic: rw [mem_interedges_iff] at hx hy
state_before: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝ : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
s : Finset α
t t' : Finset β
ht : ∀ ⦃a : β⦄, a ∈ t → a ∉ t'
a✝ : α × β
hx : a✝ ∈ interedges r s t
hy : a✝ ∈ interedges r s t'
⊢ False
state_after: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝ : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
s : Finset α
t t' : Finset β
ht : ∀ ⦃a : β⦄, a ∈ t → a ∉ t'
a✝ : α × β
hx : a✝.1 ∈ s ∧ a✝.2 ∈ t ∧ r a✝.1 a✝.2
hy : a✝.1 ∈ s ∧ a✝.2 ∈ t' ∧ r a✝.1 a✝.2
⊢ False

tactic: exact ht hx.2.1 hy.2.1
state_before: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝ : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
s : Finset α
t t' : Finset β
ht : ∀ ⦃a : β⦄, a ∈ t → a ∉ t'
a✝ : α × β
hx : a✝.1 ∈ s ∧ a✝.2 ∈ t ∧ r a✝.1 a✝.2
hy : a✝.1 ∈ s ∧ a✝.2 ∈ t' ∧ r a✝.1 a✝.2
⊢ False
state_after: no goals
Theorem: subset_sSup_emptyset
File: Mathlib/Order/CompleteLatticeIntervals.lean

tactic: simp [sSup]
state_before: ι : Sort u_1
α : Type u_2
s : Set α
inst✝² : Preorder α
inst✝¹ : SupSet α
inst✝ : Inhabited ↑s
⊢ sSup ∅ = default
state_after: no goals
Theorem: GeneralizedContinuedFraction.of_s_head_aux
File: Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean

tactic: rw [of, IntFractPair.seq1]
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v✝ : K
n : ℕ
v : K
⊢ (of v).s.get? 0 = (IntFractPair.stream v 1).bind (some ∘ fun p => { a := 1, b := ↑p.b })
state_after: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v✝ : K
n : ℕ
v : K
⊢ (match (IntFractPair.of v, Stream'.Seq.tail ⟨IntFractPair.stream v, ⋯⟩) with
          | (h, s) => { h := ↑h.b, s := Stream'.Seq.map (fun p => { a := 1, b := ↑p.b }) s }).s.get?
      0 =
    (IntFractPair.stream v 1).bind (some ∘ fun p => { a := 1, b := ↑p.b })

tactic: simp only [of, Stream'.Seq.map_tail, Stream'.Seq.map, Stream'.Seq.tail, Stream'.Seq.head,
  Stream'.Seq.get?, Stream'.map]
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v✝ : K
n : ℕ
v : K
⊢ (match (IntFractPair.of v, Stream'.Seq.tail ⟨IntFractPair.stream v, ⋯⟩) with
          | (h, s) => { h := ↑h.b, s := Stream'.Seq.map (fun p => { a := 1, b := ↑p.b }) s }).s.get?
      0 =
    (IntFractPair.stream v 1).bind (some ∘ fun p => { a := 1, b := ↑p.b })
state_after: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v✝ : K
n : ℕ
v : K
⊢ Option.map (fun p => { a := 1, b := ↑p.b }) ((IntFractPair.stream v).tail.get 0) =
    (IntFractPair.stream v 1).bind (some ∘ fun p => { a := 1, b := ↑p.b })

tactic: rw [← Stream'.get_succ, Stream'.get, Option.map]
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v✝ : K
n : ℕ
v : K
⊢ Option.map (fun p => { a := 1, b := ↑p.b }) ((IntFractPair.stream v).tail.get 0) =
    (IntFractPair.stream v 1).bind (some ∘ fun p => { a := 1, b := ↑p.b })
state_after: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v✝ : K
n : ℕ
v : K
⊢ (match IntFractPair.stream v (Nat.succ 0) with
    | some x => some { a := 1, b := ↑x.b }
    | none => none) =
    (IntFractPair.stream v 1).bind (some ∘ fun p => { a := 1, b := ↑p.b })

tactic: split <;> simp_all only [Option.some_bind, Option.none_bind, Function.comp_apply]
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v✝ : K
n : ℕ
v : K
⊢ (match IntFractPair.stream v (Nat.succ 0) with
    | some x => some { a := 1, b := ↑x.b }
    | none => none) =
    (IntFractPair.stream v 1).bind (some ∘ fun p => { a := 1, b := ↑p.b })
state_after: no goals
Theorem: IsCompact.isLindelof
File: Mathlib/Topology/Compactness/Lindelof.lean

tactic: tauto
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsCompact s
⊢ IsLindelof s
state_after: no goals
Theorem: Int.testBit_ldiff
File: Mathlib/Data/Int/Bitwise.lean

tactic: rw [← bitwise_diff, testBit_bitwise]
state_before: m n : ℤ
k : ℕ
⊢ (m.ldiff n).testBit k = (m.testBit k && !n.testBit k)
state_after: no goals
Theorem: MeasureTheory.measure_sUnion
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [sUnion_eq_biUnion, measure_biUnion hs hd h]
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
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
S : Set (Set α)
hs : S.Countable
hd : S.Pairwise Disjoint
h : ∀ s ∈ S, MeasurableSet s
⊢ μ (⋃₀ S) = ∑' (s : ↑S), μ ↑s
state_after: no goals
Theorem: periodic_expMapCircle
File: Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean

tactic: rw [Int.cast_one, one_mul]
state_before: z : ℝ
⊢ z + 2 * π = z + ↑1 * (2 * π)
state_after: no goals
Theorem: MvPowerSeries.monomial_def
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: rw [monomial]
state_before: σ : Type u_1
R : Type u_2
inst✝¹ : Semiring R
inst✝ : DecidableEq σ
n : σ →₀ ℕ
⊢ monomial R n = LinearMap.stdBasis R (fun x => R) n
state_after: σ : Type u_1
R : Type u_2
inst✝¹ : Semiring R
inst✝ : DecidableEq σ
n : σ →₀ ℕ
⊢ LinearMap.stdBasis R (fun x => R) n = LinearMap.stdBasis R (fun x => R) n

tactic: convert rfl
state_before: σ : Type u_1
R : Type u_2
inst✝¹ : Semiring R
inst✝ : DecidableEq σ
n : σ →₀ ℕ
⊢ LinearMap.stdBasis R (fun x => R) n = LinearMap.stdBasis R (fun x => R) n
state_after: no goals
Theorem: CochainComplex.mappingCone.inl_descCochain
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

tactic: omega
state_before: C : Type u_1
inst✝² : Category.{?u.111535, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
n m : ℤ
α : Cochain F K m
β : Cochain G K n
h : m + 1 = n
⊢ -1 + n = m
state_after: no goals

tactic: simp [descCochain]
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
n m : ℤ
α : Cochain F K m
β : Cochain G K n
h : m + 1 = n
⊢ (inl φ).comp (descCochain φ α β h) ⋯ = α
state_after: no goals
Theorem: CategoryTheory.isZero_Tor'_succ_of_projective
File: Mathlib/CategoryTheory/Monoidal/Tor.lean

tactic: apply Functor.isZero_leftDerived_obj_projective_succ
state_before: C : Type u_1
inst✝⁵ : Category.{u_2, u_1} C
inst✝⁴ : MonoidalCategory C
inst✝³ : Abelian C
inst✝² : MonoidalPreadditive C
inst✝¹ : HasProjectiveResolutions C
X Y : C
inst✝ : Projective X
n : ℕ
⊢ IsZero (((Tor' C (n + 1)).obj X).obj Y)
state_after: no goals
Theorem: Polynomial.map_dickson
File: Mathlib/RingTheory/Polynomial/Dickson.lean

tactic: simp_rw [dickson_zero, Polynomial.map_sub, Polynomial.map_natCast, Polynomial.map_ofNat]
state_before: R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
k : ℕ
a : R
f : R →+* S
⊢ map f (dickson k a 0) = dickson k (f a) 0
state_after: no goals

tactic: simp only [dickson_one, map_X]
state_before: R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
k : ℕ
a : R
f : R →+* S
⊢ map f (dickson k a 1) = dickson k (f a) 1
state_after: no goals

tactic: simp only [dickson_add_two, Polynomial.map_sub, Polynomial.map_mul, map_X, map_C]
state_before: R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
k : ℕ
a : R
f : R →+* S
n : ℕ
⊢ map f (dickson k a (n + 2)) = dickson k (f a) (n + 2)
state_after: R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
k : ℕ
a : R
f : R →+* S
n : ℕ
⊢ X * map f (dickson k a (n + 1)) - C (f a) * map f (dickson k a n) =
    X * dickson k (f a) (n + 1) - C (f a) * dickson k (f a) n

tactic: rw [map_dickson f n, map_dickson f (n + 1)]
state_before: R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
k : ℕ
a : R
f : R →+* S
n : ℕ
⊢ X * map f (dickson k a (n + 1)) - C (f a) * map f (dickson k a n) =
    X * dickson k (f a) (n + 1) - C (f a) * dickson k (f a) n
state_after: no goals
Theorem: mul_nonneg_iff_of_pos_right
File: Mathlib/Algebra/Order/Ring/Defs.lean

tactic: simpa using (mul_le_mul_right h : 0 * c ≤ b * c ↔ 0 ≤ b)
state_before: α : Type u
β : Type u_1
inst✝ : LinearOrderedSemiring α
a b c d : α
h : 0 < c
⊢ 0 ≤ b * c ↔ 0 ≤ b
state_after: no goals