1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Ordinal.brange_bfamilyOfFamily'
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: refine Set.ext fun a => ⟨?_, ?_⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
f : ι → α
⊢ (type r).brange (bfamilyOfFamily' r f) = range f
state_after: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
f : ι → α
a : α
⊢ a ∈ (type r).brange (bfamilyOfFamily' r f) → a ∈ range f

case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
f : ι → α
a : α
⊢ a ∈ range f → a ∈ (type r).brange (bfamilyOfFamily' r f)

tactic: rintro ⟨i, hi, rfl⟩
state_before: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
f : ι → α
a : α
⊢ a ∈ (type r).brange (bfamilyOfFamily' r f) → a ∈ range f
state_after: case refine_1.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
f : ι → α
i : Ordinal.{u}
hi : i < type r
⊢ bfamilyOfFamily' r f i hi ∈ range f

tactic: apply mem_range_self
state_before: case refine_1.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
f : ι → α
i : Ordinal.{u}
hi : i < type r
⊢ bfamilyOfFamily' r f i hi ∈ range f
state_after: no goals

tactic: rintro ⟨b, rfl⟩
state_before: case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
f : ι → α
a : α
⊢ a ∈ range f → a ∈ (type r).brange (bfamilyOfFamily' r f)
state_after: case refine_2.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
f : ι → α
b : ι
⊢ f b ∈ (type r).brange (bfamilyOfFamily' r f)

tactic: exact ⟨_, _, bfamilyOfFamily'_typein _ _ _⟩
state_before: case refine_2.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
f : ι → α
b : ι
⊢ f b ∈ (type r).brange (bfamilyOfFamily' r f)
state_after: no goals
Theorem: HomologicalComplex.quasiIso_map_iff_of_preservesHomology
File: Mathlib/Algebra/Homology/QuasiIso.lean

tactic: simp only [quasiIso_iff, quasiIsoAt_map_iff_of_preservesHomology φ F]
state_before: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝¹² : Category.{v, u} C
inst✝¹¹ : HasZeroMorphisms C
c : ComplexShape ι
K✝ L✝ M K' L' : HomologicalComplex C c
C₁ : Type u_3
C₂ : Type u_4
inst✝¹⁰ : Category.{u_5, u_3} C₁
inst✝⁹ : Category.{u_6, u_4} C₂
inst✝⁸ : Preadditive C₁
inst✝⁷ : Preadditive C₂
K L : HomologicalComplex C₁ c
φ : K ⟶ L
F : C₁ ⥤ C₂
inst✝⁶ : F.Additive
inst✝⁵ : F.PreservesHomology
inst✝⁴ : ∀ (i : ι), K.HasHomology i
inst✝³ : ∀ (i : ι), L.HasHomology i
inst✝² : ∀ (i : ι), ((F.mapHomologicalComplex c).obj K).HasHomology i
inst✝¹ : ∀ (i : ι), ((F.mapHomologicalComplex c).obj L).HasHomology i
inst✝ : F.ReflectsIsomorphisms
⊢ QuasiIso ((F.mapHomologicalComplex c).map φ) ↔ QuasiIso φ
state_after: no goals
Theorem: MeasureTheory.Measure.setIntegral_toReal_rnDeriv_eq_withDensity'
File: Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean

tactic: rw [integral_toReal (Measure.measurable_rnDeriv _ _).aemeasurable]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
⊢ ∫ (x : α) in s, (μ.rnDeriv ν x).toReal ∂ν = ((ν.withDensity (μ.rnDeriv ν)) s).toReal
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
⊢ (∫⁻ (a : α) in s, μ.rnDeriv ν a ∂ν).toReal = ((ν.withDensity (μ.rnDeriv ν)) s).toReal

α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
⊢ ∀ᵐ (x : α) ∂ν.restrict s, μ.rnDeriv ν x < ⊤

tactic: rw [ENNReal.toReal_eq_toReal_iff, ← withDensity_apply _ hs]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
⊢ (∫⁻ (a : α) in s, μ.rnDeriv ν a ∂ν).toReal = ((ν.withDensity (μ.rnDeriv ν)) s).toReal
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
⊢ (ν.withDensity (μ.rnDeriv ν)) s = (ν.withDensity (μ.rnDeriv ν)) s ∨
    (ν.withDensity (μ.rnDeriv ν)) s = 0 ∧ (ν.withDensity (μ.rnDeriv ν)) s = ⊤ ∨
      (ν.withDensity (μ.rnDeriv ν)) s = ⊤ ∧ (ν.withDensity (μ.rnDeriv ν)) s = 0

tactic: simp
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
⊢ (ν.withDensity (μ.rnDeriv ν)) s = (ν.withDensity (μ.rnDeriv ν)) s ∨
    (ν.withDensity (μ.rnDeriv ν)) s = 0 ∧ (ν.withDensity (μ.rnDeriv ν)) s = ⊤ ∨
      (ν.withDensity (μ.rnDeriv ν)) s = ⊤ ∧ (ν.withDensity (μ.rnDeriv ν)) s = 0
state_after: no goals

tactic: exact ae_restrict_of_ae (Measure.rnDeriv_lt_top _ _)
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
⊢ ∀ᵐ (x : α) ∂ν.restrict s, μ.rnDeriv ν x < ⊤
state_after: no goals
Theorem: le_one_of_mul_le_right
File: Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean

tactic: simpa only [mul_one]
state_before: α : Type u_1
β : Type u_2
inst✝² : MulOneClass α
inst✝¹ : LE α
inst✝ : ContravariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
h : a * b ≤ a
⊢ ?m.21449 * b ≤ ?m.21449 * 1
state_after: no goals
Theorem: Fin.insertNth_last'
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: simp [insertNth_last]
state_before: m n : ℕ
α : Fin (n + 1) → Type u
β : Type v
x : β
p : Fin n → β
⊢ (last n).insertNth x p = snoc p x
state_after: no goals
Theorem: PowerSeries.Unit_of_divided_by_X_pow_order_nonzero
File: Mathlib/RingTheory/PowerSeries/Inverse.lean

tactic: simp only [Unit_of_divided_by_X_pow_order, dif_neg hf, Units.val_mk]
state_before: R : Type u_1
k : Type u_2
inst✝ : Field k
f : k⟦X⟧
hf : f ≠ 0
⊢ ↑f.Unit_of_divided_by_X_pow_order = divided_by_X_pow_order hf
state_after: no goals
Theorem: OrthogonalFamily.eq_ite
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: split_ifs with h
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁷ : _root_.RCLike 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
ι : Type u_4
G : ι → Type u_5
inst✝² : (i : ι) → NormedAddCommGroup (G i)
inst✝¹ : (i : ι) → InnerProductSpace 𝕜 (G i)
V : (i : ι) → G i →ₗᵢ[𝕜] E
hV : OrthogonalFamily 𝕜 G V
dec_V : (i : ι) → (x : G i) → Decidable (x ≠ 0)
inst✝ : DecidableEq ι
i j : ι
v : G i
w : G j
⊢ ⟪(V i) v, (V j) w⟫_𝕜 = if i = j then ⟪(V i) v, (V j) w⟫_𝕜 else 0
state_after: case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁷ : _root_.RCLike 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
ι : Type u_4
G : ι → Type u_5
inst✝² : (i : ι) → NormedAddCommGroup (G i)
inst✝¹ : (i : ι) → InnerProductSpace 𝕜 (G i)
V : (i : ι) → G i →ₗᵢ[𝕜] E
hV : OrthogonalFamily 𝕜 G V
dec_V : (i : ι) → (x : G i) → Decidable (x ≠ 0)
inst✝ : DecidableEq ι
i j : ι
v : G i
w : G j
h : i = j
⊢ ⟪(V i) v, (V j) w⟫_𝕜 = ⟪(V i) v, (V j) w⟫_𝕜

case neg
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁷ : _root_.RCLike 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
ι : Type u_4
G : ι → Type u_5
inst✝² : (i : ι) → NormedAddCommGroup (G i)
inst✝¹ : (i : ι) → InnerProductSpace 𝕜 (G i)
V : (i : ι) → G i →ₗᵢ[𝕜] E
hV : OrthogonalFamily 𝕜 G V
dec_V : (i : ι) → (x : G i) → Decidable (x ≠ 0)
inst✝ : DecidableEq ι
i j : ι
v : G i
w : G j
h : ¬i = j
⊢ ⟪(V i) v, (V j) w⟫_𝕜 = 0

tactic: rfl
state_before: case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁷ : _root_.RCLike 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
ι : Type u_4
G : ι → Type u_5
inst✝² : (i : ι) → NormedAddCommGroup (G i)
inst✝¹ : (i : ι) → InnerProductSpace 𝕜 (G i)
V : (i : ι) → G i →ₗᵢ[𝕜] E
hV : OrthogonalFamily 𝕜 G V
dec_V : (i : ι) → (x : G i) → Decidable (x ≠ 0)
inst✝ : DecidableEq ι
i j : ι
v : G i
w : G j
h : i = j
⊢ ⟪(V i) v, (V j) w⟫_𝕜 = ⟪(V i) v, (V j) w⟫_𝕜
state_after: no goals

tactic: exact hV h v w
state_before: case neg
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁷ : _root_.RCLike 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
ι : Type u_4
G : ι → Type u_5
inst✝² : (i : ι) → NormedAddCommGroup (G i)
inst✝¹ : (i : ι) → InnerProductSpace 𝕜 (G i)
V : (i : ι) → G i →ₗᵢ[𝕜] E
hV : OrthogonalFamily 𝕜 G V
dec_V : (i : ι) → (x : G i) → Decidable (x ≠ 0)
inst✝ : DecidableEq ι
i j : ι
v : G i
w : G j
h : ¬i = j
⊢ ⟪(V i) v, (V j) w⟫_𝕜 = 0
state_after: no goals
Theorem: Multiset.fold_cons'_left
File: Mathlib/Data/Multiset/Fold.lean

tactic: rw [fold_cons'_right, hc.comm]
state_before: α : Type u_1
β : Type u_2
op : α → α → α
hc : Std.Commutative op
ha : Std.Associative op
b a : α
s : Multiset α
⊢ fold op b (a ::ₘ s) = fold op (op a b) s
state_after: no goals
Theorem: Turing.TM1to0.tr_eval
File: Mathlib/Computability/TuringMachine.lean

tactic: rw [Part.map_eq_map, Part.map_map, TM1.eval]
state_before: Γ : Type u_1
inst✝² : Inhabited Γ
Λ : Type u_2
inst✝¹ : Inhabited Λ
σ : Type u_3
inst✝ : Inhabited σ
M : Λ → Stmt₁
l : List Γ
⊢ Part.map (fun c => c.Tape.right₀)
      (trCfg M <$> eval (TM1.step M) { l := some default, var := default, Tape := Tape.mk₁ l }) =
    TM1.eval M l
state_after: Γ : Type u_1
inst✝² : Inhabited Γ
Λ : Type u_2
inst✝¹ : Inhabited Λ
σ : Type u_3
inst✝ : Inhabited σ
M : Λ → Stmt₁
l : List Γ
⊢ Part.map ((fun c => c.Tape.right₀) ∘ trCfg M)
      (eval (TM1.step M) { l := some default, var := default, Tape := Tape.mk₁ l }) =
    Part.map (fun c => c.Tape.right₀) (eval (TM1.step M) (TM1.init l))

tactic: congr with ⟨⟩
state_before: Γ : Type u_1
inst✝² : Inhabited Γ
Λ : Type u_2
inst✝¹ : Inhabited Λ
σ : Type u_3
inst✝ : Inhabited σ
M : Λ → Stmt₁
l : List Γ
⊢ Part.map ((fun c => c.Tape.right₀) ∘ trCfg M)
      (eval (TM1.step M) { l := some default, var := default, Tape := Tape.mk₁ l }) =
    Part.map (fun c => c.Tape.right₀) (eval (TM1.step M) (TM1.init l))
state_after: no goals
Theorem: Polynomial.smul_monomial
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: simp
state_before: R : Type u
a✝ b✝ : R
m n✝ : ℕ
inst✝¹ : Semiring R
p q : R[X]
S : Type u_1
inst✝ : SMulZeroClass S R
a : S
n : ℕ
b : R
⊢ (a • (monomial n) b).toFinsupp = ((monomial n) (a • b)).toFinsupp
state_after: R : Type u
a✝ b✝ : R
m n✝ : ℕ
inst✝¹ : Semiring R
p q : R[X]
S : Type u_1
inst✝ : SMulZeroClass S R
a : S
n : ℕ
b : R
⊢ a • Finsupp.single n b = Finsupp.single n (a • b)

tactic: rw [smul_single]
state_before: R : Type u
a✝ b✝ : R
m n✝ : ℕ
inst✝¹ : Semiring R
p q : R[X]
S : Type u_1
inst✝ : SMulZeroClass S R
a : S
n : ℕ
b : R
⊢ a • Finsupp.single n b = Finsupp.single n (a • b)
state_after: no goals
Theorem: ENNReal.mul_inv_le_iff
File: Mathlib/Data/ENNReal/Inv.lean

tactic: rw [mul_comm, ENNReal.inv_mul_le_iff h1 h2, mul_comm]
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z : ℝ≥0∞
h1 : y ≠ 0
h2 : y ≠ ⊤
⊢ x * y⁻¹ ≤ z ↔ x ≤ z * y
state_after: no goals
Theorem: FractionalIdeal.one_div_spanSingleton
File: Mathlib/RingTheory/FractionalIdeal/Operations.lean

tactic: simp [h]
state_before: R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁶ : CommRing P
inst✝⁵ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁴ : CommRing R₁
K : Type u_4
inst✝³ : Field K
inst✝² : Algebra R₁ K
inst✝¹ : IsFractionRing R₁ K
inst✝ : IsDomain R₁
x : K
h : x = 0
⊢ 1 / spanSingleton R₁⁰ x = spanSingleton R₁⁰ x⁻¹
state_after: no goals

tactic: simp [h]
state_before: R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁶ : CommRing P
inst✝⁵ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁴ : CommRing R₁
K : Type u_4
inst✝³ : Field K
inst✝² : Algebra R₁ K
inst✝¹ : IsFractionRing R₁ K
inst✝ : IsDomain R₁
x : K
h : ¬x = 0
⊢ spanSingleton R₁⁰ x * spanSingleton R₁⁰ x⁻¹ = 1
state_after: no goals
Theorem: Complex.nonempty_linearEquiv_real
File: Mathlib/Data/Complex/FiniteDimensional.lean

tactic: simp
state_before: ⊢ Module.rank ℚ ℂ = Module.rank ℚ ℝ
state_after: no goals
Theorem: CompleteLattice.inf_continuous
File: Mathlib/Order/OmegaCompletePartialOrder.lean

tactic: refine fun c => eq_of_forall_ge_iff fun z => ?_
state_before: α : Type u_1
β : Type u_2
inst✝¹ : OmegaCompletePartialOrder α
inst✝ : CompleteLinearOrder β
f g : α →o β
hf : Continuous f
hg : Continuous g
⊢ Continuous (f ⊓ g)
state_after: α : Type u_1
β : Type u_2
inst✝¹ : OmegaCompletePartialOrder α
inst✝ : CompleteLinearOrder β
f g : α →o β
hf : Continuous f
hg : Continuous g
c : Chain α
z : β
⊢ (f ⊓ g) (ωSup c) ≤ z ↔ ωSup (c.map (f ⊓ g)) ≤ z

tactic: simp only [inf_le_iff, hf c, hg c, ωSup_le_iff, ← forall_or_left, ← forall_or_right,
           Chain.map_coe, OrderHom.coe_inf, ge_iff_le, Pi.inf_apply, Function.comp]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : OmegaCompletePartialOrder α
inst✝ : CompleteLinearOrder β
f g : α →o β
hf : Continuous f
hg : Continuous g
c : Chain α
z : β
⊢ (f ⊓ g) (ωSup c) ≤ z ↔ ωSup (c.map (f ⊓ g)) ≤ z
state_after: α : Type u_1
β : Type u_2
inst✝¹ : OmegaCompletePartialOrder α
inst✝ : CompleteLinearOrder β
f g : α →o β
hf : Continuous f
hg : Continuous g
c : Chain α
z : β
⊢ (∀ (x x_1 : ℕ), f (c x_1) ≤ z ∨ g (c x) ≤ z) ↔ ∀ (i : ℕ), f (c i) ≤ z ∨ g (c i) ≤ z

tactic: exact ⟨fun h _ ↦ h _ _, fun h i j ↦
  (h (max j i)).imp (le_trans <| f.mono <| c.mono <| le_max_left _ _)
    (le_trans <| g.mono <| c.mono <| le_max_right _ _)⟩
state_before: α : Type u_1
β : Type u_2
inst✝¹ : OmegaCompletePartialOrder α
inst✝ : CompleteLinearOrder β
f g : α →o β
hf : Continuous f
hg : Continuous g
c : Chain α
z : β
⊢ (∀ (x x_1 : ℕ), f (c x_1) ≤ z ∨ g (c x) ≤ z) ↔ ∀ (i : ℕ), f (c i) ≤ z ∨ g (c i) ≤ z
state_after: no goals
Theorem: Ordinal.lift_type_lt
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: haveI := @RelEmbedding.isWellOrder _ _ (@Equiv.ulift.{max v w} α ⁻¹'o r) r
  (RelIso.preimage Equiv.ulift.{max v w} r) _
state_before: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
⊢ lift.{max v w, u} (type r) < lift.{max u w, v} (type s) ↔ Nonempty (r ≺i s)
state_after: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
this : IsWellOrder (ULift.{max v w, u} α) (⇑Equiv.ulift ⁻¹'o r)
⊢ lift.{max v w, u} (type r) < lift.{max u w, v} (type s) ↔ Nonempty (r ≺i s)

tactic: haveI := @RelEmbedding.isWellOrder _ _ (@Equiv.ulift.{max u w} β ⁻¹'o s) s
  (RelIso.preimage Equiv.ulift.{max u w} s) _
state_before: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
this : IsWellOrder (ULift.{max v w, u} α) (⇑Equiv.ulift ⁻¹'o r)
⊢ lift.{max v w, u} (type r) < lift.{max u w, v} (type s) ↔ Nonempty (r ≺i s)
state_after: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
this✝ : IsWellOrder (ULift.{max v w, u} α) (⇑Equiv.ulift ⁻¹'o r)
this : IsWellOrder (ULift.{max u w, v} β) (⇑Equiv.ulift ⁻¹'o s)
⊢ lift.{max v w, u} (type r) < lift.{max u w, v} (type s) ↔ Nonempty (r ≺i s)

tactic: exact ⟨fun ⟨f⟩ =>
  ⟨(f.equivLT (RelIso.preimage Equiv.ulift r).symm).ltLe
      (InitialSeg.ofIso (RelIso.preimage Equiv.ulift s))⟩,
  fun ⟨f⟩ =>
  ⟨(f.equivLT (RelIso.preimage Equiv.ulift r)).ltLe
      (InitialSeg.ofIso (RelIso.preimage Equiv.ulift s).symm)⟩⟩
state_before: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
this✝ : IsWellOrder (ULift.{max v w, u} α) (⇑Equiv.ulift ⁻¹'o r)
this : IsWellOrder (ULift.{max u w, v} β) (⇑Equiv.ulift ⁻¹'o s)
⊢ lift.{max v w, u} (type r) < lift.{max u w, v} (type s) ↔ Nonempty (r ≺i s)
state_after: no goals
Theorem: MeasureTheory.snorm'_zero
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: simp [snorm', hp0_lt]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp0_lt : 0 < q
⊢ snorm' 0 q μ = 0
state_after: no goals
Theorem: Polynomial.Monic.mul_left_eq_zero_iff
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: by_cases hq : q = 0 <;> simp [h.mul_left_ne_zero, hq]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
h : p.Monic
q : R[X]
⊢ q * p = 0 ↔ q = 0
state_after: no goals
Theorem: CircleDeg1Lift.translationNumber_mul_of_commute
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: refine tendsto_nhds_unique ?_
  (f.tendsto_translationNumber_aux.add g.tendsto_translationNumber_aux)
state_before: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
⊢ τ (f * g) = τ f + τ g
state_after: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
⊢ Tendsto (fun x => f.transnumAuxSeq x + g.transnumAuxSeq x) atTop (𝓝 (τ (f * g)))

tactic: simp only [transnumAuxSeq, ← add_div]
state_before: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
⊢ Tendsto (fun x => f.transnumAuxSeq x + g.transnumAuxSeq x) atTop (𝓝 (τ (f * g)))
state_after: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
⊢ Tendsto (fun x => ((f ^ 2 ^ x) 0 + (g ^ 2 ^ x) 0) / 2 ^ x) atTop (𝓝 (τ (f * g)))

tactic: refine (f * g).tendsto_translationNumber_of_dist_bounded_aux
  (fun n ↦ (f ^ n) 0 + (g ^ n) 0) 1 fun n ↦ ?_
state_before: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
⊢ Tendsto (fun x => ((f ^ 2 ^ x) 0 + (g ^ 2 ^ x) 0) / 2 ^ x) atTop (𝓝 (τ (f * g)))
state_after: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
n : ℕ
⊢ dist (((f * g) ^ n) 0) ((fun n => (f ^ n) 0 + (g ^ n) 0) n) ≤ 1

tactic: rw [h.mul_pow, dist_comm]
state_before: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
n : ℕ
⊢ dist (((f * g) ^ n) 0) ((fun n => (f ^ n) 0 + (g ^ n) 0) n) ≤ 1
state_after: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
n : ℕ
⊢ dist ((fun n => (f ^ n) 0 + (g ^ n) 0) n) ((f ^ n * g ^ n) 0) ≤ 1

tactic: exact le_of_lt ((f ^ n).dist_map_map_zero_lt (g ^ n))
state_before: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
n : ℕ
⊢ dist ((fun n => (f ^ n) 0 + (g ^ n) 0) n) ((f ^ n * g ^ n) 0) ≤ 1
state_after: no goals
Theorem: Matroid.loopyOn_indep_iff
File: Mathlib/Data/Matroid/Constructions.lean

tactic: simp only [loopyOn, restrict_indep_iff, emptyOn_indep_iff, and_iff_left_iff_imp]
state_before: α : Type u_1
M : Matroid α
E B I X R J : Set α
⊢ (loopyOn E).Indep I ↔ I = ∅
state_after: α : Type u_1
M : Matroid α
E B I X R J : Set α
⊢ I = ∅ → I ⊆ E

tactic: rintro rfl
state_before: α : Type u_1
M : Matroid α
E B I X R J : Set α
⊢ I = ∅ → I ⊆ E
state_after: α : Type u_1
M : Matroid α
E B X R J : Set α
⊢ ∅ ⊆ E

tactic: apply empty_subset
state_before: α : Type u_1
M : Matroid α
E B X R J : Set α
⊢ ∅ ⊆ E
state_after: no goals
Theorem: EReal.mem_nhds_top_iff
File: Mathlib/Topology/Instances/EReal.lean

tactic: simp only [true_and]
state_before: α : Type u_1
inst✝ : TopologicalSpace α
s : Set EReal
⊢ (∃ i, True ∧ Ioi ↑i ⊆ s) ↔ ∃ y, Ioi ↑y ⊆ s
state_after: no goals
Theorem: IsIdempotentElem.pow
File: Mathlib/Algebra/Ring/Idempotents.lean

tactic: conv_rhs => rw [← h.eq]
state_before: M : Type u_1
N : Type u_2
S : Type u_3
M₀ : Type u_4
M₁ : Type u_5
R : Type u_6
G : Type u_7
G₀ : Type u_8
inst✝⁷ : Mul M
inst✝⁶ : Monoid N
inst✝⁵ : Semigroup S
inst✝⁴ : MulZeroClass M₀
inst✝³ : MulOneClass M₁
inst✝² : NonAssocRing R
inst✝¹ : Group G
inst✝ : CancelMonoidWithZero G₀
p : N
n✝ : ℕ
h : IsIdempotentElem p
n : ℕ
x✝ : IsIdempotentElem (p ^ n)
⊢ p ^ n.succ * p ^ n.succ = p ^ n.succ
state_after: M : Type u_1
N : Type u_2
S : Type u_3
M₀ : Type u_4
M₁ : Type u_5
R : Type u_6
G : Type u_7
G₀ : Type u_8
inst✝⁷ : Mul M
inst✝⁶ : Monoid N
inst✝⁵ : Semigroup S
inst✝⁴ : MulZeroClass M₀
inst✝³ : MulOneClass M₁
inst✝² : NonAssocRing R
inst✝¹ : Group G
inst✝ : CancelMonoidWithZero G₀
p : N
n✝ : ℕ
h : IsIdempotentElem p
n : ℕ
x✝ : IsIdempotentElem (p ^ n)
⊢ p ^ n.succ * p ^ n.succ = (p * p) ^ n.succ

tactic: rw [← sq, ← sq, ← pow_mul, ← pow_mul']
state_before: M : Type u_1
N : Type u_2
S : Type u_3
M₀ : Type u_4
M₁ : Type u_5
R : Type u_6
G : Type u_7
G₀ : Type u_8
inst✝⁷ : Mul M
inst✝⁶ : Monoid N
inst✝⁵ : Semigroup S
inst✝⁴ : MulZeroClass M₀
inst✝³ : MulOneClass M₁
inst✝² : NonAssocRing R
inst✝¹ : Group G
inst✝ : CancelMonoidWithZero G₀
p : N
n✝ : ℕ
h : IsIdempotentElem p
n : ℕ
x✝ : IsIdempotentElem (p ^ n)
⊢ p ^ n.succ * p ^ n.succ = (p * p) ^ n.succ
state_after: no goals
Theorem: hasFDerivWithinAt_inter
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: simp [HasFDerivWithinAt, nhdsWithin_restrict' s h]
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h : t ∈ 𝓝 x
⊢ HasFDerivWithinAt f f' (s ∩ t) x ↔ HasFDerivWithinAt f f' s x
state_after: no goals