1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: StrictConcaveOn.slope_lt_of_hasDerivWithinAt_Ioi
File: Mathlib/Analysis/Convex/Deriv.lean

tactic: simpa only [Pi.neg_def, slope_neg, neg_neg] using
  neg_lt_neg (hfc.neg.lt_slope_of_hasDerivWithinAt_Ioi hx hy hxy hf'.neg)
state_before: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : StrictConcaveOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' (Ioi x) x
⊢ slope f x y < f'
state_after: no goals
Theorem: Int.dvd_of_dvd_mul_right_of_gcd_one
File: Mathlib/Data/Int/GCD.lean

tactic: rw [mul_comm] at habc
state_before: a b c : ℤ
habc : a ∣ b * c
hab : a.gcd b = 1
⊢ a ∣ c
state_after: a b c : ℤ
habc : a ∣ c * b
hab : a.gcd b = 1
⊢ a ∣ c

tactic: exact dvd_of_dvd_mul_left_of_gcd_one habc hab
state_before: a b c : ℤ
habc : a ∣ c * b
hab : a.gcd b = 1
⊢ a ∣ c
state_after: no goals
Theorem: Monotone.map_iSup_of_continuousAt'
File: Mathlib/Topology/Order/Monotone.lean

tactic: rw [iSup, Monotone.map_sSup_of_continuousAt' Cf Mf (range_nonempty g) bdd, ← range_comp, iSup]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : ConditionallyCompleteLinearOrder β
inst✝³ : TopologicalSpace β
inst✝² : OrderClosedTopology β
inst✝¹ : Nonempty γ
ι : Sort u_4
inst✝ : Nonempty ι
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Mf : Monotone f
bdd : autoParam (BddAbove (range g)) _auto✝
⊢ f (⨆ i, g i) = ⨆ i, f (g i)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : ConditionallyCompleteLinearOrder β
inst✝³ : TopologicalSpace β
inst✝² : OrderClosedTopology β
inst✝¹ : Nonempty γ
ι : Sort u_4
inst✝ : Nonempty ι
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Mf : Monotone f
bdd : autoParam (BddAbove (range g)) _auto✝
⊢ sSup (range (f ∘ g)) = sSup (range fun i => f (g i))

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : ConditionallyCompleteLinearOrder β
inst✝³ : TopologicalSpace β
inst✝² : OrderClosedTopology β
inst✝¹ : Nonempty γ
ι : Sort u_4
inst✝ : Nonempty ι
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Mf : Monotone f
bdd : autoParam (BddAbove (range g)) _auto✝
⊢ sSup (range (f ∘ g)) = sSup (range fun i => f (g i))
state_after: no goals
Theorem: Polynomial.toFinsupp_C_mul_X
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: rw [C_mul_X_eq_monomial, toFinsupp_monomial]
state_before: R : Type u
a✝ b : R
m n : ℕ
inst✝ : Semiring R
p q : R[X]
a : R
⊢ (C a * X).toFinsupp = Finsupp.single 1 a
state_after: no goals
Theorem: Set.Icc_diff_both
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: rw [insert_eq, ← diff_diff, Icc_diff_left, Ioc_diff_right]
state_before: α : Type u_1
β : Type u_2
inst✝ : PartialOrder α
a b c : α
⊢ Icc a b \ {a, b} = Ioo a b
state_after: no goals
Theorem: CategoryTheory.Sieve.overEquiv_top
File: Mathlib/CategoryTheory/Sites/Over.lean

tactic: ext Z g
state_before: C : Type u
inst✝ : Category.{v, u} C
X : C
Y : Over X
⊢ (overEquiv Y) ⊤ = ⊤
state_after: case h
C : Type u
inst✝ : Category.{v, u} C
X : C
Y : Over X
Z : C
g : Z ⟶ Y.left
⊢ ((overEquiv Y) ⊤).arrows g ↔ ⊤.arrows g

tactic: simp only [top_apply, iff_true]
state_before: case h
C : Type u
inst✝ : Category.{v, u} C
X : C
Y : Over X
Z : C
g : Z ⟶ Y.left
⊢ ((overEquiv Y) ⊤).arrows g ↔ ⊤.arrows g
state_after: case h
C : Type u
inst✝ : Category.{v, u} C
X : C
Y : Over X
Z : C
g : Z ⟶ Y.left
⊢ ((overEquiv Y) ⊤).arrows g

tactic: dsimp [overEquiv, Presieve.functorPushforward]
state_before: case h
C : Type u
inst✝ : Category.{v, u} C
X : C
Y : Over X
Z : C
g : Z ⟶ Y.left
⊢ ((overEquiv Y) ⊤).arrows g
state_after: case h
C : Type u
inst✝ : Category.{v, u} C
X : C
Y : Over X
Z : C
g : Z ⟶ Y.left
⊢ ∃ Z_1 g_1 h, ⊤.arrows g_1 ∧ g = h ≫ g_1.left

tactic: exact ⟨Y, 𝟙 Y, g, by simp, by simp⟩
state_before: case h
C : Type u
inst✝ : Category.{v, u} C
X : C
Y : Over X
Z : C
g : Z ⟶ Y.left
⊢ ∃ Z_1 g_1 h, ⊤.arrows g_1 ∧ g = h ≫ g_1.left
state_after: no goals

tactic: simp
state_before: C : Type u
inst✝ : Category.{v, u} C
X : C
Y : Over X
Z : C
g : Z ⟶ Y.left
⊢ ⊤.arrows (𝟙 Y)
state_after: no goals

tactic: simp
state_before: C : Type u
inst✝ : Category.{v, u} C
X : C
Y : Over X
Z : C
g : Z ⟶ Y.left
⊢ g = g ≫ (𝟙 Y).left
state_after: no goals
Theorem: Batteries.RBNode.forIn_visit_eq_bindList
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: induction t generalizing init <;> simp [*, forIn.visit]
state_before: m : Type u_1 → Type u_2
α : Type u_3
α✝ : Type u_1
f : α → α✝ → m (ForInStep α✝)
init : α✝
inst✝¹ : Monad m
inst✝ : LawfulMonad m
t : RBNode α
⊢ forIn.visit f t init = ForInStep.bindList f t.toList (ForInStep.yield init)
state_after: no goals
Theorem: LinearMap.extendTo𝕜'_apply_re
File: Mathlib/Analysis/NormedSpace/Extend.lean

tactic: simp only [extendTo𝕜'_apply, map_sub, zero_mul, mul_zero, sub_zero,
  rclike_simps]
state_before: 𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : Module ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →ₗ[ℝ] ℝ
x : F
⊢ re (fr.extendTo𝕜' x) = fr x
state_after: no goals
Theorem: Matroid.base_restrict_iff'
File: Mathlib/Data/Matroid/Restrict.lean

tactic: simp_rw [Basis', base_iff_maximal_indep, mem_maximals_setOf_iff, restrict_indep_iff]
state_before: α : Type u_1
M : Matroid α
R I J X Y : Set α
⊢ (M ↾ X).Base I ↔ M.Basis' I X
state_after: no goals
Theorem: Cardinal.one_le_iff_ne_zero
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [one_le_iff_pos, pos_iff_ne_zero]
state_before: α β : Type u
c : Cardinal.{u_1}
⊢ 1 ≤ c ↔ c ≠ 0
state_after: no goals
Theorem: reflTransGen_of_succ_of_ge
File: Mathlib/Order/SuccPred/Relation.lean

tactic: rw [← reflTransGen_swap]
state_before: α : Type u_1
inst✝² : PartialOrder α
inst✝¹ : SuccOrder α
inst✝ : IsSuccArchimedean α
r : α → α → Prop
n m : α
h : ∀ i ∈ Ico m n, r (succ i) i
hmn : m ≤ n
⊢ ReflTransGen r n m
state_after: α : Type u_1
inst✝² : PartialOrder α
inst✝¹ : SuccOrder α
inst✝ : IsSuccArchimedean α
r : α → α → Prop
n m : α
h : ∀ i ∈ Ico m n, r (succ i) i
hmn : m ≤ n
⊢ ReflTransGen (swap r) m n

tactic: exact reflTransGen_of_succ_of_le (swap r) h hmn
state_before: α : Type u_1
inst✝² : PartialOrder α
inst✝¹ : SuccOrder α
inst✝ : IsSuccArchimedean α
r : α → α → Prop
n m : α
h : ∀ i ∈ Ico m n, r (succ i) i
hmn : m ≤ n
⊢ ReflTransGen (swap r) m n
state_after: no goals
Theorem: AffineMap.span_eq_top_of_surjective
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [← AffineSubspace.map_span, h, map_top_of_surjective f hf]
state_before: k : Type u_1
V₁ : Type u_2
P₁ : Type u_3
V₂ : Type u_4
P₂ : Type u_5
V₃ : Type u_6
P₃ : Type u_7
inst✝⁹ : Ring k
inst✝⁸ : AddCommGroup V₁
inst✝⁷ : Module k V₁
inst✝⁶ : AffineSpace V₁ P₁
inst✝⁵ : AddCommGroup V₂
inst✝⁴ : Module k V₂
inst✝³ : AffineSpace V₂ P₂
inst✝² : AddCommGroup V₃
inst✝¹ : Module k V₃
inst✝ : AffineSpace V₃ P₃
f : P₁ →ᵃ[k] P₂
s : Set P₁
hf : Function.Surjective ⇑f
h : affineSpan k s = ⊤
⊢ affineSpan k (⇑f '' s) = ⊤
state_after: no goals
Theorem: eq_mpr_bijective
File: Mathlib/Logic/Function/Basic.lean

tactic: cases h
state_before: α✝ : Sort u_1
β✝ : Sort u_2
α β : Sort u_3
h : α = β
⊢ Bijective h.mpr
state_after: case refl
α✝ : Sort u_1
β : Sort u_2
α : Sort u_3
⊢ Bijective ⋯.mpr

tactic: exact ⟨fun _ _ ↦ id, fun x ↦ ⟨x, rfl⟩⟩
state_before: case refl
α✝ : Sort u_1
β : Sort u_2
α : Sort u_3
⊢ Bijective ⋯.mpr
state_after: no goals
Theorem: Set.Definable.union
File: Mathlib/ModelTheory/Definability.lean

tactic: rcases hf with ⟨φ, hφ⟩
state_before: M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s f g : Set (α → M)
hf : A.Definable L f
hg : A.Definable L g
⊢ A.Definable L (f ∪ g)
state_after: case intro
M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s f g : Set (α → M)
hg : A.Definable L g
φ : L[[↑A]].Formula α
hφ : f = setOf φ.Realize
⊢ A.Definable L (f ∪ g)

tactic: rcases hg with ⟨θ, hθ⟩
state_before: case intro
M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s f g : Set (α → M)
hg : A.Definable L g
φ : L[[↑A]].Formula α
hφ : f = setOf φ.Realize
⊢ A.Definable L (f ∪ g)
state_after: case intro.intro
M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s f g : Set (α → M)
φ : L[[↑A]].Formula α
hφ : f = setOf φ.Realize
θ : L[[↑A]].Formula α
hθ : g = setOf θ.Realize
⊢ A.Definable L (f ∪ g)

tactic: refine ⟨φ ⊔ θ, ?_⟩
state_before: case intro.intro
M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s f g : Set (α → M)
φ : L[[↑A]].Formula α
hφ : f = setOf φ.Realize
θ : L[[↑A]].Formula α
hθ : g = setOf θ.Realize
⊢ A.Definable L (f ∪ g)
state_after: case intro.intro
M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s f g : Set (α → M)
φ : L[[↑A]].Formula α
hφ : f = setOf φ.Realize
θ : L[[↑A]].Formula α
hθ : g = setOf θ.Realize
⊢ f ∪ g = setOf (φ ⊔ θ).Realize

tactic: ext
state_before: case intro.intro
M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s f g : Set (α → M)
φ : L[[↑A]].Formula α
hφ : f = setOf φ.Realize
θ : L[[↑A]].Formula α
hθ : g = setOf θ.Realize
⊢ f ∪ g = setOf (φ ⊔ θ).Realize
state_after: case intro.intro.h
M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s f g : Set (α → M)
φ : L[[↑A]].Formula α
hφ : f = setOf φ.Realize
θ : L[[↑A]].Formula α
hθ : g = setOf θ.Realize
x✝ : α → M
⊢ x✝ ∈ f ∪ g ↔ x✝ ∈ setOf (φ ⊔ θ).Realize

tactic: rw [hφ, hθ, mem_setOf_eq, Formula.realize_sup, mem_union, mem_setOf_eq, mem_setOf_eq]
state_before: case intro.intro.h
M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s f g : Set (α → M)
φ : L[[↑A]].Formula α
hφ : f = setOf φ.Realize
θ : L[[↑A]].Formula α
hθ : g = setOf θ.Realize
x✝ : α → M
⊢ x✝ ∈ f ∪ g ↔ x✝ ∈ setOf (φ ⊔ θ).Realize
state_after: no goals
Theorem: ZMod.isUnit_prime_iff_not_dvd
File: Mathlib/Data/ZMod/Basic.lean

tactic: rw [isUnit_iff_coprime, Nat.Prime.coprime_iff_not_dvd hp]
state_before: n p : ℕ
hp : Nat.Prime p
⊢ IsUnit ↑p ↔ ¬p ∣ n
state_after: no goals
Theorem: Set.infsep_pair
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: rw [infsep_pair_eq_toReal, edist_dist]
state_before: α : Type u_1
β : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
s t : Set α
⊢ {x, y}.infsep = dist x y
state_after: α : Type u_1
β : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
s t : Set α
⊢ (ENNReal.ofReal (dist x y)).toReal = dist x y

tactic: exact ENNReal.toReal_ofReal dist_nonneg
state_before: α : Type u_1
β : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
s t : Set α
⊢ (ENNReal.ofReal (dist x y)).toReal = dist x y
state_after: no goals
Theorem: cfc_eval_C
File: Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean

tactic: simp [cfc_const r a]
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : MetricSpace R
inst✝⁶ : TopologicalSemiring R
inst✝⁵ : ContinuousStar R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f g : R → R
a✝ : A
ha✝ : autoParam (p a✝) _auto✝
hf : autoParam (ContinuousOn f (spectrum R a✝)) _auto✝
hg : autoParam (ContinuousOn g (spectrum R a✝)) _auto✝
r : R
a : A
ha : autoParam (p a) _auto✝
⊢ cfc (fun a => eval a (C r)) a = (algebraMap R A) r
state_after: no goals
Theorem: Fin.val_bit1
File: Mathlib/Data/Fin/Basic.lean

tactic: cases n
state_before: n✝ m n : ℕ
inst✝ : NeZero n
k : Fin n
⊢ ↑(bit1 k) = bit1 ↑k % n
state_after: case zero
n m : ℕ
inst✝ : NeZero 0
k : Fin 0
⊢ ↑(bit1 k) = bit1 ↑k % 0

case succ
n m n✝ : ℕ
inst✝ : NeZero (n✝ + 1)
k : Fin (n✝ + 1)
⊢ ↑(bit1 k) = bit1 ↑k % (n✝ + 1)

tactic: simp [bit1, Fin.val_bit0, Fin.val_add, Fin.val_one]
state_before: case succ
n m n✝ : ℕ
inst✝ : NeZero (n✝ + 1)
k : Fin (n✝ + 1)
⊢ ↑(bit1 k) = bit1 ↑k % (n✝ + 1)
state_after: no goals

tactic: cases' k with k h
state_before: case zero
n m : ℕ
inst✝ : NeZero 0
k : Fin 0
⊢ ↑(bit1 k) = bit1 ↑k % 0
state_after: case zero.mk
n m : ℕ
inst✝ : NeZero 0
k : ℕ
h : k < 0
⊢ ↑(bit1 ⟨k, h⟩) = bit1 ↑⟨k, h⟩ % 0

tactic: cases k
state_before: case zero.mk
n m : ℕ
inst✝ : NeZero 0
k : ℕ
h : k < 0
⊢ ↑(bit1 ⟨k, h⟩) = bit1 ↑⟨k, h⟩ % 0
state_after: case zero.mk.zero
n m : ℕ
inst✝ : NeZero 0
h : 0 < 0
⊢ ↑(bit1 ⟨0, h⟩) = bit1 ↑⟨0, h⟩ % 0

case zero.mk.succ
n m : ℕ
inst✝ : NeZero 0
n✝ : ℕ
h : n✝ + 1 < 0
⊢ ↑(bit1 ⟨n✝ + 1, h⟩) = bit1 ↑⟨n✝ + 1, h⟩ % 0

tactic: cases' h with _ h
state_before: case zero.mk.succ
n m : ℕ
inst✝ : NeZero 0
n✝ : ℕ
h : n✝ + 1 < 0
⊢ ↑(bit1 ⟨n✝ + 1, h⟩) = bit1 ↑⟨n✝ + 1, h⟩ % 0
state_after: no goals

tactic: show _ % _ = _
state_before: case zero.mk.zero
n m : ℕ
inst✝ : NeZero 0
h : 0 < 0
⊢ ↑(bit1 ⟨0, h⟩) = bit1 ↑⟨0, h⟩ % 0
state_after: case zero.mk.zero
n m : ℕ
inst✝ : NeZero 0
h : 0 < 0
⊢ ((0 + 0) % 0 + 1 % 0) % 0 = bit1 ↑⟨0, h⟩ % 0

tactic: simp at h
state_before: case zero.mk.zero
n m : ℕ
inst✝ : NeZero 0
h : 0 < 0
⊢ ((0 + 0) % 0 + 1 % 0) % 0 = bit1 ↑⟨0, h⟩ % 0
state_after: no goals
Theorem: Multiset.Ico_filter_le_left
File: Mathlib/Order/Interval/Multiset.lean

tactic: rw [Ico, ← Finset.filter_val, Finset.Ico_filter_le_left hab]
state_before: α : Type u_1
inst✝² : PartialOrder α
inst✝¹ : LocallyFiniteOrder α
a✝ b✝ a b : α
inst✝ : DecidablePred fun x => x ≤ a
hab : a < b
⊢ filter (fun x => x ≤ a) (Ico a b) = {a}
state_after: α : Type u_1
inst✝² : PartialOrder α
inst✝¹ : LocallyFiniteOrder α
a✝ b✝ a b : α
inst✝ : DecidablePred fun x => x ≤ a
hab : a < b
⊢ {a}.val = {a}

tactic: rfl
state_before: α : Type u_1
inst✝² : PartialOrder α
inst✝¹ : LocallyFiniteOrder α
a✝ b✝ a b : α
inst✝ : DecidablePred fun x => x ≤ a
hab : a < b
⊢ {a}.val = {a}
state_after: no goals
Theorem: Localization.algEquiv_mk
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: rw [mk_eq_mk', algEquiv_mk']
state_before: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
x : R
y : ↥M
⊢ (algEquiv M S) (mk x y) = mk' S x y
state_after: no goals
Theorem: isClosedMap_iff_clusterPt
File: Mathlib/Topology/Maps.lean

tactic: simp [MapClusterPt, isClosedMap_iff_closure_image, subset_def, mem_closure_iff_clusterPt,
  and_comm]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
⊢ IsClosedMap f ↔ ∀ (s : Set X) (y : Y), MapClusterPt y (𝓟 s) f → ∃ x, f x = y ∧ ClusterPt x (𝓟 s)
state_after: no goals
Theorem: CochainComplex.shiftFunctorZero_eq
File: Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean

tactic: ext
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
⊢ shiftFunctorZero (CochainComplex C ℤ) ℤ = shiftFunctorZero' C 0 ⋯
state_after: case w.w.h.h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
x✝ : CochainComplex C ℤ
i✝ : ℤ
⊢ ((shiftFunctorZero (CochainComplex C ℤ) ℤ).hom.app x✝).f i✝ = ((shiftFunctorZero' C 0 ⋯).hom.app x✝).f i✝

tactic: rw [shiftFunctorZero_hom_app_f, shiftFunctorZero'_hom_app_f]
state_before: case w.w.h.h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
x✝ : CochainComplex C ℤ
i✝ : ℤ
⊢ ((shiftFunctorZero (CochainComplex C ℤ) ℤ).hom.app x✝).f i✝ = ((shiftFunctorZero' C 0 ⋯).hom.app x✝).f i✝
state_after: no goals
Theorem: ContinuousLinearEquiv.integrable_comp_iff
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simpa using ContinuousLinearMap.integrable_comp (L.symm : E →L[𝕜] H) h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝⁷ : MeasurableSpace δ
inst✝⁶ : NormedAddCommGroup β
inst✝⁵ : NormedAddCommGroup γ
E : Type u_5
inst✝⁴ : NormedAddCommGroup E
𝕜 : Type u_6
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedSpace 𝕜 E
H : Type u_7
inst✝¹ : NormedAddCommGroup H
inst✝ : NormedSpace 𝕜 H
φ : α → H
L : H ≃L[𝕜] E
h : Integrable (fun a => L (φ a)) μ
⊢ Integrable φ μ
state_after: no goals
Theorem: MvPowerSeries.X_dvd_iff
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: rw [← pow_one (X s : MvPowerSeries σ R), X_pow_dvd_iff]
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
s : σ
φ : MvPowerSeries σ R
⊢ X s ∣ φ ↔ ∀ (m : σ →₀ ℕ), m s = 0 → (coeff R m) φ = 0
state_after: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
s : σ
φ : MvPowerSeries σ R
⊢ (∀ (m : σ →₀ ℕ), m s < 1 → (coeff R m) φ = 0) ↔ ∀ (m : σ →₀ ℕ), m s = 0 → (coeff R m) φ = 0

tactic: constructor <;> intro h m hm
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
s : σ
φ : MvPowerSeries σ R
⊢ (∀ (m : σ →₀ ℕ), m s < 1 → (coeff R m) φ = 0) ↔ ∀ (m : σ →₀ ℕ), m s = 0 → (coeff R m) φ = 0
state_after: case mp
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
s : σ
φ : MvPowerSeries σ R
h : ∀ (m : σ →₀ ℕ), m s < 1 → (coeff R m) φ = 0
m : σ →₀ ℕ
hm : m s = 0
⊢ (coeff R m) φ = 0

case mpr
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
s : σ
φ : MvPowerSeries σ R
h : ∀ (m : σ →₀ ℕ), m s = 0 → (coeff R m) φ = 0
m : σ →₀ ℕ
hm : m s < 1
⊢ (coeff R m) φ = 0

tactic: exact h m (hm.symm ▸ zero_lt_one)
state_before: case mp
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
s : σ
φ : MvPowerSeries σ R
h : ∀ (m : σ →₀ ℕ), m s < 1 → (coeff R m) φ = 0
m : σ →₀ ℕ
hm : m s = 0
⊢ (coeff R m) φ = 0
state_after: no goals

tactic: exact h m (Nat.eq_zero_of_le_zero <| Nat.le_of_succ_le_succ hm)
state_before: case mpr
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
s : σ
φ : MvPowerSeries σ R
h : ∀ (m : σ →₀ ℕ), m s = 0 → (coeff R m) φ = 0
m : σ →₀ ℕ
hm : m s < 1
⊢ (coeff R m) φ = 0
state_after: no goals
Theorem: Fin.castPred_one
File: Mathlib/Data/Fin/Basic.lean

tactic: cases n
state_before: n m : ℕ
inst✝ : NeZero n
h : optParam (¬1 = last (n + 1)) ⋯
⊢ castPred 1 h = 1
state_after: case zero
m : ℕ
inst✝ : NeZero 0
h : optParam (¬1 = last (0 + 1)) ⋯
⊢ castPred 1 h = 1

case succ
m n✝ : ℕ
inst✝ : NeZero (n✝ + 1)
h : optParam (¬1 = last (n✝ + 1 + 1)) ⋯
⊢ castPred 1 h = 1

tactic: exact subsingleton_one.elim _ 1
state_before: case zero
m : ℕ
inst✝ : NeZero 0
h : optParam (¬1 = last (0 + 1)) ⋯
⊢ castPred 1 h = 1
state_after: no goals

tactic: rfl
state_before: case succ
m n✝ : ℕ
inst✝ : NeZero (n✝ + 1)
h : optParam (¬1 = last (n✝ + 1 + 1)) ⋯
⊢ castPred 1 h = 1
state_after: no goals
Theorem: Nat.mod_eq_iff_lt
File: Mathlib/Data/Nat/Defs.lean

tactic: rw [← h]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
hn : n ≠ 0
h : m % n = m
⊢ m < n
state_after: a b c d m n k : ℕ
p q : ℕ → Prop
hn : n ≠ 0
h : m % n = m
⊢ m % n < n

tactic: exact mod_lt _ $ Nat.pos_iff_ne_zero.2 hn
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
hn : n ≠ 0
h : m % n = m
⊢ m % n < n
state_after: no goals
Theorem: Set.biInter_finsetSigma_univ
File: Mathlib/Data/Fintype/Sigma.lean

tactic: aesop
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
inst✝ : (i : ι) → Fintype (κ i)
s : Finset ι
f : Sigma κ → Set α
⊢ ⋂ ij ∈ s.sigma fun x => Finset.univ, f ij = ⋂ i ∈ s, ⋂ j, f ⟨i, j⟩
state_after: no goals
Theorem: MeasureTheory.LpAddConst_zero
File: Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean

tactic: rw [LpAddConst, if_neg]
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
⊢ LpAddConst 0 = 1
state_after: case hnc
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
⊢ 0 ∉ Set.Ioo 0 1

tactic: intro h
state_before: case hnc
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
⊢ 0 ∉ Set.Ioo 0 1
state_after: case hnc
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
h : 0 ∈ Set.Ioo 0 1
⊢ False

tactic: exact lt_irrefl _ h.1
state_before: case hnc
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
h : 0 ∈ Set.Ioo 0 1
⊢ False
state_after: no goals
Theorem: Polynomial.qsmul_eq_C_mul
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: rw [← Rat.smul_one_eq_cast, ← Polynomial.smul_C, C_1, smul_one_mul]
state_before: R : Type u
a✝ b : R
m n : ℕ
inst✝ : DivisionRing R
a : ℚ
f : R[X]
⊢ a • f = C ↑a * f
state_after: no goals
Theorem: Setoid.lift_unique
File: Mathlib/Data/Setoid/Basic.lean

tactic: ext ⟨x⟩
state_before: α : Type u_1
β : Type u_2
r : Setoid α
f : α → β
H : r ≤ ker f
g : Quotient r → β
Hg : f = g ∘ Quotient.mk''
⊢ Quotient.lift f H = g
state_after: case h.mk
α : Type u_1
β : Type u_2
r : Setoid α
f : α → β
H : r ≤ ker f
g : Quotient r → β
Hg : f = g ∘ Quotient.mk''
x✝ : Quotient r
x : α
⊢ Quotient.lift f H (Quot.mk Setoid.r x) = g (Quot.mk Setoid.r x)

tactic: erw [Quotient.lift_mk f H, Hg]
state_before: case h.mk
α : Type u_1
β : Type u_2
r : Setoid α
f : α → β
H : r ≤ ker f
g : Quotient r → β
Hg : f = g ∘ Quotient.mk''
x✝ : Quotient r
x : α
⊢ Quotient.lift f H (Quot.mk Setoid.r x) = g (Quot.mk Setoid.r x)
state_after: case h.mk
α : Type u_1
β : Type u_2
r : Setoid α
f : α → β
H : r ≤ ker f
g : Quotient r → β
Hg : f = g ∘ Quotient.mk''
x✝ : Quotient r
x : α
⊢ (g ∘ Quotient.mk'') x = g (Quot.mk Setoid.r x)

tactic: rfl
state_before: case h.mk
α : Type u_1
β : Type u_2
r : Setoid α
f : α → β
H : r ≤ ker f
g : Quotient r → β
Hg : f = g ∘ Quotient.mk''
x✝ : Quotient r
x : α
⊢ (g ∘ Quotient.mk'') x = g (Quot.mk Setoid.r x)
state_after: no goals
Theorem: Set.exists_isOpen_le_add
File: Mathlib/MeasureTheory/Measure/Regular.lean

tactic: rcases eq_or_ne (μ A) ∞ with (H | H)
state_before: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ✝ : Measure α
A : Set α
μ : Measure α
inst✝ : μ.OuterRegular
ε : ℝ≥0∞
hε : ε ≠ 0
⊢ ∃ U ⊇ A, IsOpen U ∧ μ U ≤ μ A + ε
state_after: case inl
α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ✝ : Measure α
A : Set α
μ : Measure α
inst✝ : μ.OuterRegular
ε : ℝ≥0∞
hε : ε ≠ 0
H : μ A = ⊤
⊢ ∃ U ⊇ A, IsOpen U ∧ μ U ≤ μ A + ε

case inr
α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ✝ : Measure α
A : Set α
μ : Measure α
inst✝ : μ.OuterRegular
ε : ℝ≥0∞
hε : ε ≠ 0
H : μ A ≠ ⊤
⊢ ∃ U ⊇ A, IsOpen U ∧ μ U ≤ μ A + ε

tactic: exact ⟨univ, subset_univ _, isOpen_univ, by simp only [H, _root_.top_add, le_top]⟩
state_before: case inl
α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ✝ : Measure α
A : Set α
μ : Measure α
inst✝ : μ.OuterRegular
ε : ℝ≥0∞
hε : ε ≠ 0
H : μ A = ⊤
⊢ ∃ U ⊇ A, IsOpen U ∧ μ U ≤ μ A + ε
state_after: no goals

tactic: simp only [H, _root_.top_add, le_top]
state_before: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ✝ : Measure α
A : Set α
μ : Measure α
inst✝ : μ.OuterRegular
ε : ℝ≥0∞
hε : ε ≠ 0
H : μ A = ⊤
⊢ μ univ ≤ μ A + ε
state_after: no goals

tactic: rcases A.exists_isOpen_lt_add H hε with ⟨U, AU, U_open, hU⟩
state_before: case inr
α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ✝ : Measure α
A : Set α
μ : Measure α
inst✝ : μ.OuterRegular
ε : ℝ≥0∞
hε : ε ≠ 0
H : μ A ≠ ⊤
⊢ ∃ U ⊇ A, IsOpen U ∧ μ U ≤ μ A + ε
state_after: case inr.intro.intro.intro
α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ✝ : Measure α
A : Set α
μ : Measure α
inst✝ : μ.OuterRegular
ε : ℝ≥0∞
hε : ε ≠ 0
H : μ A ≠ ⊤
U : Set α
AU : U ⊇ A
U_open : IsOpen U
hU : μ U < μ A + ε
⊢ ∃ U ⊇ A, IsOpen U ∧ μ U ≤ μ A + ε

tactic: exact ⟨U, AU, U_open, hU.le⟩
state_before: case inr.intro.intro.intro
α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ✝ : Measure α
A : Set α
μ : Measure α
inst✝ : μ.OuterRegular
ε : ℝ≥0∞
hε : ε ≠ 0
H : μ A ≠ ⊤
U : Set α
AU : U ⊇ A
U_open : IsOpen U
hU : μ U < μ A + ε
⊢ ∃ U ⊇ A, IsOpen U ∧ μ U ≤ μ A + ε
state_after: no goals