1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: cfcₙ_nonpos_iff
File: Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean

tactic: simp_rw [← neg_nonneg, ← cfcₙ_neg]
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁸ : OrderedCommRing R
inst✝¹⁷ : Nontrivial R
inst✝¹⁶ : StarRing R
inst✝¹⁵ : StarOrderedRing R
inst✝¹⁴ : MetricSpace R
inst✝¹³ : TopologicalRing R
inst✝¹² : ContinuousStar R
inst✝¹¹ : ∀ (α : Type ?u.1276258) [inst : Zero α] [inst_1 : TopologicalSpace α], StarOrderedRing C(α, R)₀
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : NonUnitalRing A
inst✝⁸ : StarRing A
inst✝⁷ : PartialOrder A
inst✝⁶ : StarOrderedRing A
inst✝⁵ : Module R A
inst✝⁴ : IsScalarTower R A A
inst✝³ : SMulCommClass R A A
inst✝² : StarModule R A
inst✝¹ : NonUnitalContinuousFunctionalCalculus R p
inst✝ : NonnegSpectrumClass R A
f : R → R
a : A
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
h0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
⊢ cfcₙ f a ≤ 0 ↔ ∀ x ∈ σₙ R a, f x ≤ 0
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁸ : OrderedCommRing R
inst✝¹⁷ : Nontrivial R
inst✝¹⁶ : StarRing R
inst✝¹⁵ : StarOrderedRing R
inst✝¹⁴ : MetricSpace R
inst✝¹³ : TopologicalRing R
inst✝¹² : ContinuousStar R
inst✝¹¹ : ∀ (α : Type ?u.1276258) [inst : Zero α] [inst_1 : TopologicalSpace α], StarOrderedRing C(α, R)₀
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : NonUnitalRing A
inst✝⁸ : StarRing A
inst✝⁷ : PartialOrder A
inst✝⁶ : StarOrderedRing A
inst✝⁵ : Module R A
inst✝⁴ : IsScalarTower R A A
inst✝³ : SMulCommClass R A A
inst✝² : StarModule R A
inst✝¹ : NonUnitalContinuousFunctionalCalculus R p
inst✝ : NonnegSpectrumClass R A
f : R → R
a : A
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
h0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
⊢ 0 ≤ cfcₙ (fun x => -f x) a ↔ ∀ x ∈ σₙ R a, 0 ≤ -f x

tactic: exact cfcₙ_nonneg_iff (fun x ↦ -f x) a
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁸ : OrderedCommRing R
inst✝¹⁷ : Nontrivial R
inst✝¹⁶ : StarRing R
inst✝¹⁵ : StarOrderedRing R
inst✝¹⁴ : MetricSpace R
inst✝¹³ : TopologicalRing R
inst✝¹² : ContinuousStar R
inst✝¹¹ : ∀ (α : Type ?u.1276258) [inst : Zero α] [inst_1 : TopologicalSpace α], StarOrderedRing C(α, R)₀
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : NonUnitalRing A
inst✝⁸ : StarRing A
inst✝⁷ : PartialOrder A
inst✝⁶ : StarOrderedRing A
inst✝⁵ : Module R A
inst✝⁴ : IsScalarTower R A A
inst✝³ : SMulCommClass R A A
inst✝² : StarModule R A
inst✝¹ : NonUnitalContinuousFunctionalCalculus R p
inst✝ : NonnegSpectrumClass R A
f : R → R
a : A
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
h0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
⊢ 0 ≤ cfcₙ (fun x => -f x) a ↔ ∀ x ∈ σₙ R a, 0 ≤ -f x
state_after: no goals
Theorem: irrational_int_div_iff
File: Mathlib/Data/Real/Irrational.lean

tactic: simp [div_eq_mul_inv]
state_before: q : ℚ
m : ℤ
n : ℕ
x : ℝ
⊢ Irrational (↑m / x) ↔ m ≠ 0 ∧ Irrational x
state_after: no goals
Theorem: MeasureTheory.Martingale.eq_zero_of_predictable
File: Mathlib/Probability/Martingale/Basic.lean

tactic: induction' n with k ih
state_before: Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : Preorder ι
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
f✝ g : ι → Ω → E
ℱ : Filtration ι m0
𝒢 : Filtration ℕ m0
inst✝ : SigmaFiniteFiltration μ 𝒢
f : ℕ → Ω → E
hfmgle : Martingale f 𝒢 μ
hfadp : Adapted 𝒢 fun n => f (n + 1)
n : ℕ
⊢ f n =ᶠ[ae μ] f 0
state_after: case zero
Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : Preorder ι
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
f✝ g : ι → Ω → E
ℱ : Filtration ι m0
𝒢 : Filtration ℕ m0
inst✝ : SigmaFiniteFiltration μ 𝒢
f : ℕ → Ω → E
hfmgle : Martingale f 𝒢 μ
hfadp : Adapted 𝒢 fun n => f (n + 1)
⊢ f 0 =ᶠ[ae μ] f 0

case succ
Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : Preorder ι
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
f✝ g : ι → Ω → E
ℱ : Filtration ι m0
𝒢 : Filtration ℕ m0
inst✝ : SigmaFiniteFiltration μ 𝒢
f : ℕ → Ω → E
hfmgle : Martingale f 𝒢 μ
hfadp : Adapted 𝒢 fun n => f (n + 1)
k : ℕ
ih : f k =ᶠ[ae μ] f 0
⊢ f (k + 1) =ᶠ[ae μ] f 0

tactic: rfl
state_before: case zero
Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : Preorder ι
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
f✝ g : ι → Ω → E
ℱ : Filtration ι m0
𝒢 : Filtration ℕ m0
inst✝ : SigmaFiniteFiltration μ 𝒢
f : ℕ → Ω → E
hfmgle : Martingale f 𝒢 μ
hfadp : Adapted 𝒢 fun n => f (n + 1)
⊢ f 0 =ᶠ[ae μ] f 0
state_after: no goals

tactic: exact ((Germ.coe_eq.mp (congr_arg Germ.ofFun <| condexp_of_stronglyMeasurable (𝒢.le _) (hfadp _)
  (hfmgle.integrable _))).symm.trans (hfmgle.2 k (k + 1) k.le_succ)).trans ih
state_before: case succ
Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝⁴ : Preorder ι
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
f✝ g : ι → Ω → E
ℱ : Filtration ι m0
𝒢 : Filtration ℕ m0
inst✝ : SigmaFiniteFiltration μ 𝒢
f : ℕ → Ω → E
hfmgle : Martingale f 𝒢 μ
hfadp : Adapted 𝒢 fun n => f (n + 1)
k : ℕ
ih : f k =ᶠ[ae μ] f 0
⊢ f (k + 1) =ᶠ[ae μ] f 0
state_after: no goals
Theorem: CategoryTheory.ShortComplex.ab_exact_iff_range_eq_ker
File: Mathlib/Algebra/Homology/ShortComplex/Ab.lean

tactic: rw [ab_exact_iff_ker_le_range]
state_before: S : ShortComplex Ab
⊢ S.Exact ↔ AddMonoidHom.range S.f = AddMonoidHom.ker S.g
state_after: S : ShortComplex Ab
⊢ AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f ↔ AddMonoidHom.range S.f = AddMonoidHom.ker S.g

tactic: constructor
state_before: S : ShortComplex Ab
⊢ AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f ↔ AddMonoidHom.range S.f = AddMonoidHom.ker S.g
state_after: case mp
S : ShortComplex Ab
⊢ AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f → AddMonoidHom.range S.f = AddMonoidHom.ker S.g

case mpr
S : ShortComplex Ab
⊢ AddMonoidHom.range S.f = AddMonoidHom.ker S.g → AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f

tactic: intro h
state_before: case mp
S : ShortComplex Ab
⊢ AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f → AddMonoidHom.range S.f = AddMonoidHom.ker S.g
state_after: case mp
S : ShortComplex Ab
h : AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f
⊢ AddMonoidHom.range S.f = AddMonoidHom.ker S.g

tactic: refine le_antisymm ?_ h
state_before: case mp
S : ShortComplex Ab
h : AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f
⊢ AddMonoidHom.range S.f = AddMonoidHom.ker S.g
state_after: case mp
S : ShortComplex Ab
h : AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f
⊢ AddMonoidHom.range S.f ≤ AddMonoidHom.ker S.g

tactic: rintro _ ⟨x₁, rfl⟩
state_before: case mp
S : ShortComplex Ab
h : AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f
⊢ AddMonoidHom.range S.f ≤ AddMonoidHom.ker S.g
state_after: case mp.intro
S : ShortComplex Ab
h : AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f
x₁ : ↑S.X₁
⊢ S.f x₁ ∈ AddMonoidHom.ker S.g

tactic: erw [AddMonoidHom.mem_ker, ← comp_apply, S.zero]
state_before: case mp.intro
S : ShortComplex Ab
h : AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f
x₁ : ↑S.X₁
⊢ S.f x₁ ∈ AddMonoidHom.ker S.g
state_after: case mp.intro
S : ShortComplex Ab
h : AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f
x₁ : ↑S.X₁
⊢ 0 x₁ = 0

tactic: rfl
state_before: case mp.intro
S : ShortComplex Ab
h : AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f
x₁ : ↑S.X₁
⊢ 0 x₁ = 0
state_after: no goals

tactic: intro h
state_before: case mpr
S : ShortComplex Ab
⊢ AddMonoidHom.range S.f = AddMonoidHom.ker S.g → AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f
state_after: case mpr
S : ShortComplex Ab
h : AddMonoidHom.range S.f = AddMonoidHom.ker S.g
⊢ AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f

tactic: rw [h]
state_before: case mpr
S : ShortComplex Ab
h : AddMonoidHom.range S.f = AddMonoidHom.ker S.g
⊢ AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f
state_after: no goals
Theorem: CategoryTheory.Limits.PreservesEqualizer.iso_inv_ι
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Equalizers.lean

tactic: rw [← Iso.cancel_iso_hom_left (PreservesEqualizer.iso G f g), ← Category.assoc, Iso.hom_inv_id]
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
G : C ⥤ D
X Y Z : C
f g : X ⟶ Y
h : Z ⟶ X
w : h ≫ f = h ≫ g
inst✝² : HasEqualizer f g
inst✝¹ : HasEqualizer (G.map f) (G.map g)
inst✝ : PreservesLimit (parallelPair f g) G
⊢ (iso G f g).inv ≫ G.map (equalizer.ι f g) = equalizer.ι (G.map f) (G.map g)
state_after: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
G : C ⥤ D
X Y Z : C
f g : X ⟶ Y
h : Z ⟶ X
w : h ≫ f = h ≫ g
inst✝² : HasEqualizer f g
inst✝¹ : HasEqualizer (G.map f) (G.map g)
inst✝ : PreservesLimit (parallelPair f g) G
⊢ 𝟙 (G.obj (equalizer f g)) ≫ G.map (equalizer.ι f g) = (iso G f g).hom ≫ equalizer.ι (G.map f) (G.map g)

tactic: simp
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
G : C ⥤ D
X Y Z : C
f g : X ⟶ Y
h : Z ⟶ X
w : h ≫ f = h ≫ g
inst✝² : HasEqualizer f g
inst✝¹ : HasEqualizer (G.map f) (G.map g)
inst✝ : PreservesLimit (parallelPair f g) G
⊢ 𝟙 (G.obj (equalizer f g)) ≫ G.map (equalizer.ι f g) = (iso G f g).hom ≫ equalizer.ι (G.map f) (G.map g)
state_after: no goals
Theorem: Polynomial.trinomial_natTrailingDegree
File: Mathlib/Algebra/Polynomial/UnitTrinomial.lean

tactic: refine
  natTrailingDegree_eq_of_trailingDegree_eq_some
    ((Finset.le_inf fun i h => ?_).antisymm <|
        trailingDegree_le_of_ne_zero <| by rwa [trinomial_trailing_coeff' hkm hmn]).symm
state_before: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
⊢ (trinomial k m n u v w).natTrailingDegree = k
state_after: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
i : ℕ
h : i ∈ (trinomial k m n u v w).support
⊢ ↑k ≤ ↑i

tactic: replace h := support_trinomial' k m n u v w h
state_before: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
i : ℕ
h : i ∈ (trinomial k m n u v w).support
⊢ ↑k ≤ ↑i
state_after: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
i : ℕ
h : i ∈ {k, m, n}
⊢ ↑k ≤ ↑i

tactic: rw [mem_insert, mem_insert, mem_singleton] at h
state_before: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
i : ℕ
h : i ∈ {k, m, n}
⊢ ↑k ≤ ↑i
state_after: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
i : ℕ
h : i = k ∨ i = m ∨ i = n
⊢ ↑k ≤ ↑i

tactic: rcases h with (rfl | rfl | rfl)
state_before: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
i : ℕ
h : i = k ∨ i = m ∨ i = n
⊢ ↑k ≤ ↑i
state_after: case inl
R : Type u_1
inst✝ : Semiring R
m n : ℕ
u v w : R
hmn : m < n
hu : u ≠ 0
i : ℕ
hkm : i < m
⊢ ↑i ≤ ↑i

case inr.inl
R : Type u_1
inst✝ : Semiring R
k n : ℕ
u v w : R
hu : u ≠ 0
i : ℕ
hkm : k < i
hmn : i < n
⊢ ↑k ≤ ↑i

case inr.inr
R : Type u_1
inst✝ : Semiring R
k m : ℕ
u v w : R
hkm : k < m
hu : u ≠ 0
i : ℕ
hmn : m < i
⊢ ↑k ≤ ↑i

tactic: rwa [trinomial_trailing_coeff' hkm hmn]
state_before: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
⊢ (trinomial k m n u v w).coeff k ≠ 0
state_after: no goals

tactic: exact le_rfl
state_before: case inl
R : Type u_1
inst✝ : Semiring R
m n : ℕ
u v w : R
hmn : m < n
hu : u ≠ 0
i : ℕ
hkm : i < m
⊢ ↑i ≤ ↑i
state_after: no goals

tactic: exact WithTop.coe_le_coe.mpr hkm.le
state_before: case inr.inl
R : Type u_1
inst✝ : Semiring R
k n : ℕ
u v w : R
hu : u ≠ 0
i : ℕ
hkm : k < i
hmn : i < n
⊢ ↑k ≤ ↑i
state_after: no goals

tactic: exact WithTop.coe_le_coe.mpr (hkm.trans hmn).le
state_before: case inr.inr
R : Type u_1
inst✝ : Semiring R
k m : ℕ
u v w : R
hkm : k < m
hu : u ≠ 0
i : ℕ
hmn : m < i
⊢ ↑k ≤ ↑i
state_after: no goals
Theorem: Function.Periodic.const_add
File: Mathlib/Algebra/Periodic.lean

tactic: simpa [add_assoc] using h (a + x)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f g : α → β
c c₁ c₂ x✝ : α
inst✝ : AddSemigroup α
h : Periodic f c
a x : α
⊢ (fun x => f (a + x)) (x + c) = (fun x => f (a + x)) x
state_after: no goals
Theorem: HahnSeries.forallLTEqZero_supp_BddBelow
File: Mathlib/RingTheory/HahnSeries/Basic.lean

tactic: simp only [BddBelow, Set.Nonempty, lowerBounds]
state_before: Γ : Type u_1
R : Type u_2
inst✝² : Zero R
inst✝¹ : LinearOrder Γ
inst✝ : LocallyFiniteOrder Γ
f : Γ → R
n : Γ
hn : ∀ m < n, f m = 0
⊢ BddBelow (Function.support f)
state_after: Γ : Type u_1
R : Type u_2
inst✝² : Zero R
inst✝¹ : LinearOrder Γ
inst✝ : LocallyFiniteOrder Γ
f : Γ → R
n : Γ
hn : ∀ m < n, f m = 0
⊢ ∃ x, x ∈ {x | ∀ ⦃a : Γ⦄, a ∈ Function.support f → x ≤ a}

tactic: use n
state_before: Γ : Type u_1
R : Type u_2
inst✝² : Zero R
inst✝¹ : LinearOrder Γ
inst✝ : LocallyFiniteOrder Γ
f : Γ → R
n : Γ
hn : ∀ m < n, f m = 0
⊢ ∃ x, x ∈ {x | ∀ ⦃a : Γ⦄, a ∈ Function.support f → x ≤ a}
state_after: case h
Γ : Type u_1
R : Type u_2
inst✝² : Zero R
inst✝¹ : LinearOrder Γ
inst✝ : LocallyFiniteOrder Γ
f : Γ → R
n : Γ
hn : ∀ m < n, f m = 0
⊢ n ∈ {x | ∀ ⦃a : Γ⦄, a ∈ Function.support f → x ≤ a}

tactic: intro m hm
state_before: case h
Γ : Type u_1
R : Type u_2
inst✝² : Zero R
inst✝¹ : LinearOrder Γ
inst✝ : LocallyFiniteOrder Γ
f : Γ → R
n : Γ
hn : ∀ m < n, f m = 0
⊢ n ∈ {x | ∀ ⦃a : Γ⦄, a ∈ Function.support f → x ≤ a}
state_after: case h
Γ : Type u_1
R : Type u_2
inst✝² : Zero R
inst✝¹ : LinearOrder Γ
inst✝ : LocallyFiniteOrder Γ
f : Γ → R
n : Γ
hn : ∀ m < n, f m = 0
m : Γ
hm : m ∈ Function.support f
⊢ n ≤ m

tactic: rw [Function.mem_support, ne_eq] at hm
state_before: case h
Γ : Type u_1
R : Type u_2
inst✝² : Zero R
inst✝¹ : LinearOrder Γ
inst✝ : LocallyFiniteOrder Γ
f : Γ → R
n : Γ
hn : ∀ m < n, f m = 0
m : Γ
hm : m ∈ Function.support f
⊢ n ≤ m
state_after: case h
Γ : Type u_1
R : Type u_2
inst✝² : Zero R
inst✝¹ : LinearOrder Γ
inst✝ : LocallyFiniteOrder Γ
f : Γ → R
n : Γ
hn : ∀ m < n, f m = 0
m : Γ
hm : ¬f m = 0
⊢ n ≤ m

tactic: exact not_lt.mp (mt (hn m) hm)
state_before: case h
Γ : Type u_1
R : Type u_2
inst✝² : Zero R
inst✝¹ : LinearOrder Γ
inst✝ : LocallyFiniteOrder Γ
f : Γ → R
n : Γ
hn : ∀ m < n, f m = 0
m : Γ
hm : ¬f m = 0
⊢ n ≤ m
state_after: no goals
Theorem: finsuppTensorFinsuppLid_apply_apply
File: Mathlib/LinearAlgebra/DirectSum/Finsupp.lean

tactic: simp [finsuppTensorFinsuppLid]
state_before: R : Type u_1
S : Type u_2
M : Type u_3
N : Type u_4
ι : Type u_5
κ : Type u_6
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : Semiring S
inst✝² : Algebra R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
f : ι →₀ R
g : κ →₀ N
a : ι
b : κ
⊢ ((finsuppTensorFinsuppLid R N ι κ) (f ⊗ₜ[R] g)) (a, b) = f a • g b
state_after: no goals
Theorem: Real.isPiSystem_Iic_rat
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean

tactic: convert isPiSystem_image_Iic (((↑) : ℚ → ℝ) '' univ)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
⊢ IsPiSystem (⋃ a, {Iic ↑a})
state_after: case h.e'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
⊢ ⋃ a, {Iic ↑a} = Iic '' (Rat.cast '' univ)

tactic: ext x
state_before: case h.e'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
⊢ ⋃ a, {Iic ↑a} = Iic '' (Rat.cast '' univ)
state_after: case h.e'_2.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
x : Set ℝ
⊢ x ∈ ⋃ a, {Iic ↑a} ↔ x ∈ Iic '' (Rat.cast '' univ)

tactic: simp only [iUnion_singleton_eq_range, mem_range, image_univ, mem_image, exists_exists_eq_and]
state_before: case h.e'_2.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
x : Set ℝ
⊢ x ∈ ⋃ a, {Iic ↑a} ↔ x ∈ Iic '' (Rat.cast '' univ)
state_after: no goals
Theorem: ENNReal.div_le_iff_le_mul
File: Mathlib/Data/ENNReal/Inv.lean

tactic: suffices a * b⁻¹ ≤ c ↔ a ≤ c / b⁻¹ by simpa [div_eq_mul_inv]
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
hb0 : b ≠ 0 ∨ c ≠ ⊤
hbt : b ≠ ⊤ ∨ c ≠ 0
⊢ a / b ≤ c ↔ a ≤ c * b
state_after: a b c d : ℝ≥0∞
r p q : ℝ≥0
hb0 : b ≠ 0 ∨ c ≠ ⊤
hbt : b ≠ ⊤ ∨ c ≠ 0
⊢ a * b⁻¹ ≤ c ↔ a ≤ c / b⁻¹

tactic: refine (ENNReal.le_div_iff_mul_le ?_ ?_).symm <;> simpa
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
hb0 : b ≠ 0 ∨ c ≠ ⊤
hbt : b ≠ ⊤ ∨ c ≠ 0
⊢ a * b⁻¹ ≤ c ↔ a ≤ c / b⁻¹
state_after: no goals

tactic: simpa [div_eq_mul_inv]
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
hb0 : b ≠ 0 ∨ c ≠ ⊤
hbt : b ≠ ⊤ ∨ c ≠ 0
this : a * b⁻¹ ≤ c ↔ a ≤ c / b⁻¹
⊢ a / b ≤ c ↔ a ≤ c * b
state_after: no goals
Theorem: AddMonoidHom.toNatLinearMap_injective
File: Mathlib/Algebra/Module/LinearMap/Defs.lean

tactic: intro f g h
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹ : AddCommMonoid M
inst✝ : AddCommMonoid M₂
⊢ Injective toNatLinearMap
state_after: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹ : AddCommMonoid M
inst✝ : AddCommMonoid M₂
f g : M →+ M₂
h : f.toNatLinearMap = g.toNatLinearMap
⊢ f = g

tactic: ext x
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹ : AddCommMonoid M
inst✝ : AddCommMonoid M₂
f g : M →+ M₂
h : f.toNatLinearMap = g.toNatLinearMap
⊢ f = g
state_after: case h
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹ : AddCommMonoid M
inst✝ : AddCommMonoid M₂
f g : M →+ M₂
h : f.toNatLinearMap = g.toNatLinearMap
x : M
⊢ f x = g x

tactic: exact LinearMap.congr_fun h x
state_before: case h
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹ : AddCommMonoid M
inst✝ : AddCommMonoid M₂
f g : M →+ M₂
h : f.toNatLinearMap = g.toNatLinearMap
x : M
⊢ f x = g x
state_after: no goals
Theorem: ENNReal.ofReal_le_iff_le_toReal
File: Mathlib/Data/ENNReal/Real.lean

tactic: lift b to ℝ≥0 using hb
state_before: a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ
b : ℝ≥0∞
hb : b ≠ ⊤
⊢ ENNReal.ofReal a ≤ b ↔ a ≤ b.toReal
state_after: case intro
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ
b : ℝ≥0
⊢ ENNReal.ofReal a ≤ ↑b ↔ a ≤ (↑b).toReal

tactic: simpa [ENNReal.ofReal, ENNReal.toReal] using Real.toNNReal_le_iff_le_coe
state_before: case intro
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ
b : ℝ≥0
⊢ ENNReal.ofReal a ≤ ↑b ↔ a ≤ (↑b).toReal
state_after: no goals
Theorem: List.findIdx_lt_length
File: Mathlib/Data/List/Indexes.lean

tactic: rw [← not_iff_not, not_lt]
state_before: α : Type u
β : Type v
p : α → Bool
xs : List α
⊢ findIdx p xs < xs.length ↔ ∃ x ∈ xs, p x = true
state_after: α : Type u
β : Type v
p : α → Bool
xs : List α
⊢ xs.length ≤ findIdx p xs ↔ ¬∃ x ∈ xs, p x = true

tactic: have := @le_antisymm_iff _ _ (xs.findIdx p) xs.length
state_before: α : Type u
β : Type v
p : α → Bool
xs : List α
⊢ xs.length ≤ findIdx p xs ↔ ¬∃ x ∈ xs, p x = true
state_after: α : Type u
β : Type v
p : α → Bool
xs : List α
this : findIdx p xs = xs.length ↔ findIdx p xs ≤ xs.length ∧ xs.length ≤ findIdx p xs
⊢ xs.length ≤ findIdx p xs ↔ ¬∃ x ∈ xs, p x = true

tactic: simp only [findIdx_le_length, true_and] at this
state_before: α : Type u
β : Type v
p : α → Bool
xs : List α
this : findIdx p xs = xs.length ↔ findIdx p xs ≤ xs.length ∧ xs.length ≤ findIdx p xs
⊢ xs.length ≤ findIdx p xs ↔ ¬∃ x ∈ xs, p x = true
state_after: α : Type u
β : Type v
p : α → Bool
xs : List α
this : findIdx p xs = xs.length ↔ xs.length ≤ findIdx p xs
⊢ xs.length ≤ findIdx p xs ↔ ¬∃ x ∈ xs, p x = true

tactic: rw [← this, findIdx_eq_length, not_exists]
state_before: α : Type u
β : Type v
p : α → Bool
xs : List α
this : findIdx p xs = xs.length ↔ xs.length ≤ findIdx p xs
⊢ xs.length ≤ findIdx p xs ↔ ¬∃ x ∈ xs, p x = true
state_after: α : Type u
β : Type v
p : α → Bool
xs : List α
this : findIdx p xs = xs.length ↔ xs.length ≤ findIdx p xs
⊢ (∀ x ∈ xs, ¬p x = true) ↔ ∀ (x : α), ¬(x ∈ xs ∧ p x = true)

tactic: simp only [Bool.not_eq_true, not_and]
state_before: α : Type u
β : Type v
p : α → Bool
xs : List α
this : findIdx p xs = xs.length ↔ xs.length ≤ findIdx p xs
⊢ (∀ x ∈ xs, ¬p x = true) ↔ ∀ (x : α), ¬(x ∈ xs ∧ p x = true)
state_after: no goals
Theorem: wbtw_swap_right_iff
File: Mathlib/Analysis/Convex/Between.lean

tactic: rw [wbtw_comm, wbtw_comm (z := y), eq_comm]
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x y z : P
⊢ Wbtw R x y z ∧ Wbtw R x z y ↔ y = z
state_after: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x y z : P
⊢ Wbtw R z y x ∧ Wbtw R y z x ↔ z = y

tactic: exact wbtw_swap_left_iff R x
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x y z : P
⊢ Wbtw R z y x ∧ Wbtw R y z x ↔ z = y
state_after: no goals
Theorem: TypeVec.Arrow.ext
File: Mathlib/Data/TypeVec.lean

tactic: intro h
state_before: n : ℕ
α : TypeVec.{u_1} n
β : TypeVec.{u_2} n
f g : α ⟹ β
⊢ (∀ (i : Fin2 n), f i = g i) → f = g
state_after: n : ℕ
α : TypeVec.{u_1} n
β : TypeVec.{u_2} n
f g : α ⟹ β
h : ∀ (i : Fin2 n), f i = g i
⊢ f = g

tactic: funext i
state_before: n : ℕ
α : TypeVec.{u_1} n
β : TypeVec.{u_2} n
f g : α ⟹ β
h : ∀ (i : Fin2 n), f i = g i
⊢ f = g
state_after: case h
n : ℕ
α : TypeVec.{u_1} n
β : TypeVec.{u_2} n
f g : α ⟹ β
h : ∀ (i : Fin2 n), f i = g i
i : Fin2 n
⊢ f i = g i

tactic: apply h
state_before: case h
n : ℕ
α : TypeVec.{u_1} n
β : TypeVec.{u_2} n
f g : α ⟹ β
h : ∀ (i : Fin2 n), f i = g i
i : Fin2 n
⊢ f i = g i
state_after: no goals
Theorem: MeasureTheory.FiniteMeasure.map_add
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

tactic: ext s s_mble
state_before: Ω : Type u_1
Ω' : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSpace Ω'
f : Ω → Ω'
f_mble : Measurable f
ν₁ ν₂ : FiniteMeasure Ω
⊢ (ν₁ + ν₂).map f = ν₁.map f + ν₂.map f
state_after: case h
Ω : Type u_1
Ω' : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSpace Ω'
f : Ω → Ω'
f_mble : Measurable f
ν₁ ν₂ : FiniteMeasure Ω
s : Set Ω'
s_mble : MeasurableSet s
⊢ ↑((ν₁ + ν₂).map f) s = ↑(ν₁.map f + ν₂.map f) s

tactic: simp only [map_apply' _ f_mble.aemeasurable s_mble, toMeasure_add, Measure.add_apply]
state_before: case h
Ω : Type u_1
Ω' : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSpace Ω'
f : Ω → Ω'
f_mble : Measurable f
ν₁ ν₂ : FiniteMeasure Ω
s : Set Ω'
s_mble : MeasurableSet s
⊢ ↑((ν₁ + ν₂).map f) s = ↑(ν₁.map f + ν₂.map f) s
state_after: no goals