1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: PFunctor.M.isPath_cons'
File: Mathlib/Data/PFunctor/Univariate/M.lean

tactic: generalize h : M.mk ⟨a, f⟩ = x
state_before: F : PFunctor.{u}
X : Type u_1
f✝ : X → ↑F X
xs : Path F
a : F.A
f : F.B a → F.M
i : F.B a
⊢ IsPath (⟨a, i⟩ :: xs) (M.mk ⟨a, f⟩) → IsPath xs (f i)
state_after: F : PFunctor.{u}
X : Type u_1
f✝ : X → ↑F X
xs : Path F
a : F.A
f : F.B a → F.M
i : F.B a
x : F.M
h : M.mk ⟨a, f⟩ = x
⊢ IsPath (⟨a, i⟩ :: xs) x → IsPath xs (f i)

tactic: rintro (_ | ⟨_, _, _, _, rfl, hp⟩)
state_before: F : PFunctor.{u}
X : Type u_1
f✝ : X → ↑F X
xs : Path F
a : F.A
f : F.B a → F.M
i : F.B a
x : F.M
h : M.mk ⟨a, f⟩ = x
⊢ IsPath (⟨a, i⟩ :: xs) x → IsPath xs (f i)
state_after: case cons
F : PFunctor.{u}
X : Type u_1
f✝¹ : X → ↑F X
xs : Path F
a : F.A
f : F.B a → F.M
i : F.B a
f✝ : F.B a → F.M
hp : IsPath xs (f✝ i)
h : M.mk ⟨a, f⟩ = M.mk ⟨a, f✝⟩
⊢ IsPath xs (f i)

tactic: cases mk_inj h
state_before: case cons
F : PFunctor.{u}
X : Type u_1
f✝¹ : X → ↑F X
xs : Path F
a : F.A
f : F.B a → F.M
i : F.B a
f✝ : F.B a → F.M
hp : IsPath xs (f✝ i)
h : M.mk ⟨a, f⟩ = M.mk ⟨a, f✝⟩
⊢ IsPath xs (f i)
state_after: case cons.refl
F : PFunctor.{u}
X : Type u_1
f✝ : X → ↑F X
xs : Path F
a : F.A
f : F.B a → F.M
i : F.B a
hp : IsPath xs (f i)
h : M.mk ⟨a, f⟩ = M.mk ⟨a, f⟩
⊢ IsPath xs (f i)

tactic: exact hp
state_before: case cons.refl
F : PFunctor.{u}
X : Type u_1
f✝ : X → ↑F X
xs : Path F
a : F.A
f : F.B a → F.M
i : F.B a
hp : IsPath xs (f i)
h : M.mk ⟨a, f⟩ = M.mk ⟨a, f⟩
⊢ IsPath xs (f i)
state_after: no goals
Theorem: SimplicialObject.Splitting.cofan_inj_comp_app
File: Mathlib/AlgebraicTopology/SplitSimplicialObject.lean

tactic: simp only [cofan_inj_eq_assoc, φ, assoc]
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
X Y : SimplicialObject C
s : Splitting X
f : X ⟶ Y
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
⊢ (s.cofan Δ).inj A ≫ f.app Δ = s.φ f A.fst.unop.len ≫ Y.map A.e.op
state_after: C : Type u_1
inst✝ : Category.{u_2, u_1} C
X Y : SimplicialObject C
s : Splitting X
f : X ⟶ Y
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
⊢ s.ι A.fst.unop.len ≫ X.map A.e.op ≫ f.app Δ = s.ι A.fst.unop.len ≫ f.app { unop := [A.fst.unop.len] } ≫ Y.map A.e.op

tactic: erw [NatTrans.naturality]
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
X Y : SimplicialObject C
s : Splitting X
f : X ⟶ Y
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
⊢ s.ι A.fst.unop.len ≫ X.map A.e.op ≫ f.app Δ = s.ι A.fst.unop.len ≫ f.app { unop := [A.fst.unop.len] } ≫ Y.map A.e.op
state_after: no goals
Theorem: Finset.le_truncatedSup
File: Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean

tactic: rw [truncatedSup]
state_before: α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
⊢ a ≤ s.truncatedSup a
state_after: α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
⊢ a ≤ if h : a ∈ lowerClosure ↑s then (filter (fun b => a ≤ b) s).sup' ⋯ id else ⊤

tactic: split_ifs with h
state_before: α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
⊢ a ≤ if h : a ∈ lowerClosure ↑s then (filter (fun b => a ≤ b) s).sup' ⋯ id else ⊤
state_after: case pos
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
h : a ∈ lowerClosure ↑s
⊢ a ≤ (filter (fun b => a ≤ b) s).sup' ⋯ id

case neg
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
h : a ∉ lowerClosure ↑s
⊢ a ≤ ⊤

tactic: obtain ⟨ℬ, hb, h⟩ := h
state_before: case pos
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
h : a ∈ lowerClosure ↑s
⊢ a ≤ (filter (fun b => a ≤ b) s).sup' ⋯ id
state_after: case pos.intro.intro
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b ℬ : α
hb : ℬ ∈ ↑s
h : a ≤ ℬ
⊢ a ≤ (filter (fun b => a ≤ b) s).sup' ⋯ id

tactic: exact h.trans $ le_sup' id $ mem_filter.2 ⟨hb, h⟩
state_before: case pos.intro.intro
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b ℬ : α
hb : ℬ ∈ ↑s
h : a ≤ ℬ
⊢ a ≤ (filter (fun b => a ≤ b) s).sup' ⋯ id
state_after: no goals

tactic: exact le_top
state_before: case neg
α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeSup α
inst✝⁴ : OrderTop α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeSup β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
h : a ∉ lowerClosure ↑s
⊢ a ≤ ⊤
state_after: no goals
Theorem: MeasurableSet.univ
File: Mathlib/MeasureTheory/MeasurableSpace/Defs.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort u_6
s t u : Set α
m : MeasurableSpace α
⊢ MeasurableSet univᶜ
state_after: no goals
Theorem: AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift_uniq
File: Mathlib/Geometry/RingedSpace/OpenImmersion.lean

tactic: rw [← cancel_mono f, hl, lift_fac]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y Z : LocallyRingedSpace
f : X ⟶ Z
g : Y ⟶ Z
H : IsOpenImmersion f
H' : Set.range ⇑g.val.base ⊆ Set.range ⇑f.val.base
l : Y ⟶ X
hl : l ≫ f = g
⊢ l = lift f g H'
state_after: no goals
Theorem: Finset.sorted_zero_eq_min'
File: Mathlib/Data/Finset/Sort.lean

tactic: rwa [length_sort] at h
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
s : Finset α
h : 0 < (sort (fun x x_1 => x ≤ x_1) s).length
⊢ 0 < s.card
state_after: no goals
Theorem: ProbabilityTheory.kernel.snd_apply'
File: Mathlib/Probability/Kernel/Composition.lean

tactic: rw [snd_apply, Measure.map_apply measurable_snd hs]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
κ : ↥(kernel α (β × γ))
a : α
s : Set γ
hs : MeasurableSet s
⊢ ((snd κ) a) s = (κ a) {p | p.2 ∈ s}
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
κ : ↥(kernel α (β × γ))
a : α
s : Set γ
hs : MeasurableSet s
⊢ (κ a) (Prod.snd ⁻¹' s) = (κ a) {p | p.2 ∈ s}

tactic: rfl
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
κ : ↥(kernel α (β × γ))
a : α
s : Set γ
hs : MeasurableSet s
⊢ (κ a) (Prod.snd ⁻¹' s) = (κ a) {p | p.2 ∈ s}
state_after: no goals
Theorem: MeasureTheory.integrableOn_iUnion_of_summable_norm_restrict
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: refine
  integrableOn_iUnion_of_summable_integral_norm (fun i => (s i).isCompact.isClosed.measurableSet)
    (fun i => (map_continuous f).continuousOn.integrableOn_compact (s i).isCompact)
    (.of_nonneg_of_le (fun ι => integral_nonneg fun x => norm_nonneg _) (fun i => ?_) hf)
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁶ : MeasurableSpace X
ι : Type u_5
inst✝⁵ : Countable ι
μ : Measure X
inst✝⁴ : NormedAddCommGroup E
inst✝³ : TopologicalSpace X
inst✝² : BorelSpace X
inst✝¹ : MetrizableSpace X
inst✝ : IsLocallyFiniteMeasure μ
f : C(X, E)
s : ι → Compacts X
hf : Summable fun i => ‖ContinuousMap.restrict (↑(s i)) f‖ * (μ ↑(s i)).toReal
⊢ IntegrableOn (⇑f) (⋃ i, ↑(s i)) μ
state_after: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁶ : MeasurableSpace X
ι : Type u_5
inst✝⁵ : Countable ι
μ : Measure X
inst✝⁴ : NormedAddCommGroup E
inst✝³ : TopologicalSpace X
inst✝² : BorelSpace X
inst✝¹ : MetrizableSpace X
inst✝ : IsLocallyFiniteMeasure μ
f : C(X, E)
s : ι → Compacts X
hf : Summable fun i => ‖ContinuousMap.restrict (↑(s i)) f‖ * (μ ↑(s i)).toReal
i : ι
⊢ ∫ (x : X) in ↑(s i), ‖f x‖ ∂μ ≤ ‖ContinuousMap.restrict (↑(s i)) f‖ * (μ ↑(s i)).toReal

tactic: rw [← (Real.norm_of_nonneg (integral_nonneg fun x => norm_nonneg _) : ‖_‖ = ∫ x in s i, ‖f x‖ ∂μ)]
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁶ : MeasurableSpace X
ι : Type u_5
inst✝⁵ : Countable ι
μ : Measure X
inst✝⁴ : NormedAddCommGroup E
inst✝³ : TopologicalSpace X
inst✝² : BorelSpace X
inst✝¹ : MetrizableSpace X
inst✝ : IsLocallyFiniteMeasure μ
f : C(X, E)
s : ι → Compacts X
hf : Summable fun i => ‖ContinuousMap.restrict (↑(s i)) f‖ * (μ ↑(s i)).toReal
i : ι
⊢ ∫ (x : X) in ↑(s i), ‖f x‖ ∂μ ≤ ‖ContinuousMap.restrict (↑(s i)) f‖ * (μ ↑(s i)).toReal
state_after: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁶ : MeasurableSpace X
ι : Type u_5
inst✝⁵ : Countable ι
μ : Measure X
inst✝⁴ : NormedAddCommGroup E
inst✝³ : TopologicalSpace X
inst✝² : BorelSpace X
inst✝¹ : MetrizableSpace X
inst✝ : IsLocallyFiniteMeasure μ
f : C(X, E)
s : ι → Compacts X
hf : Summable fun i => ‖ContinuousMap.restrict (↑(s i)) f‖ * (μ ↑(s i)).toReal
i : ι
⊢ ‖∫ (x : X) in ↑(s i), ‖f x‖ ∂μ‖ ≤ ‖ContinuousMap.restrict (↑(s i)) f‖ * (μ ↑(s i)).toReal

tactic: exact
  norm_setIntegral_le_of_norm_le_const' (s i).isCompact.measure_lt_top
    (s i).isCompact.isClosed.measurableSet fun x hx =>
    (norm_norm (f x)).symm ▸ (f.restrict (s i : Set X)).norm_coe_le_norm ⟨x, hx⟩
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁶ : MeasurableSpace X
ι : Type u_5
inst✝⁵ : Countable ι
μ : Measure X
inst✝⁴ : NormedAddCommGroup E
inst✝³ : TopologicalSpace X
inst✝² : BorelSpace X
inst✝¹ : MetrizableSpace X
inst✝ : IsLocallyFiniteMeasure μ
f : C(X, E)
s : ι → Compacts X
hf : Summable fun i => ‖ContinuousMap.restrict (↑(s i)) f‖ * (μ ↑(s i)).toReal
i : ι
⊢ ‖∫ (x : X) in ↑(s i), ‖f x‖ ∂μ‖ ≤ ‖ContinuousMap.restrict (↑(s i)) f‖ * (μ ↑(s i)).toReal
state_after: no goals
Theorem: RingQuot.mkRingHom_rel
File: Mathlib/Algebra/RingQuot.lean

tactic: simp [mkRingHom_def, Quot.sound (Rel.of w)]
state_before: R : Type uR
inst✝³ : Semiring R
S : Type uS
inst✝² : CommSemiring S
T : Type uT
A : Type uA
inst✝¹ : Semiring A
inst✝ : Algebra S A
r✝ r : R → R → Prop
x y : R
w : r x y
⊢ (mkRingHom r) x = (mkRingHom r) y
state_after: no goals
Theorem: MulEquiv.comp_left_injective
File: Mathlib/Algebra/Group/Equiv/Basic.lean

tactic: simp [MonoidHom.comp_assoc]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
A : Type u_4
B : Type u_5
M : Type u_6
N : Type u_7
P : Type u_8
Q : Type u_9
G : Type u_10
H : Type u_11
inst✝³ : EquivLike F α β
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
e : M ≃* N
f : N →* P
⊢ (fun f => f.comp ↑e.symm) (f.comp ↑e) = f
state_after: no goals
Theorem: Convex.translate_preimage_left
File: Mathlib/Analysis/Convex/Basic.lean

tactic: simpa only [add_comm] using hs.translate_preimage_right z
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s : Set E
x : E
hs : Convex 𝕜 s
z : E
⊢ Convex 𝕜 ((fun x => x + z) ⁻¹' s)
state_after: no goals
Theorem: CategoryTheory.LaxMonoidalFunctor.prod'_μ
File: Mathlib/CategoryTheory/Monoidal/Functor.lean

tactic: dsimp [prod']
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
inst✝² : MonoidalCategory D
E : Type u₃
inst✝¹ : Category.{v₃, u₃} E
inst✝ : MonoidalCategory E
F : LaxMonoidalFunctor C D
G : LaxMonoidalFunctor C E
X Y : C
⊢ (F.prod' G).μ X Y = (F.μ X Y, G.μ X Y)
state_after: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
inst✝² : MonoidalCategory D
E : Type u₃
inst✝¹ : Category.{v₃, u₃} E
inst✝ : MonoidalCategory E
F : LaxMonoidalFunctor C D
G : LaxMonoidalFunctor C E
X Y : C
⊢ (F.μ X Y ≫ F.map (𝟙 (X ⊗ Y)), G.μ X Y ≫ G.map (𝟙 (X ⊗ Y))) = (F.μ X Y, G.μ X Y)

tactic: simp
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
inst✝² : MonoidalCategory D
E : Type u₃
inst✝¹ : Category.{v₃, u₃} E
inst✝ : MonoidalCategory E
F : LaxMonoidalFunctor C D
G : LaxMonoidalFunctor C E
X Y : C
⊢ (F.μ X Y ≫ F.map (𝟙 (X ⊗ Y)), G.μ X Y ≫ G.map (𝟙 (X ⊗ Y))) = (F.μ X Y, G.μ X Y)
state_after: no goals
Theorem: SimpleGraph.isNClique_empty
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

tactic: simp [isNClique_iff, eq_comm]
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
⊢ G.IsNClique n ∅ ↔ n = 0
state_after: no goals
Theorem: LinearMap.fst_eq_coprod
File: Mathlib/LinearAlgebra/Prod.lean

tactic: ext
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
S : Type u_3
inst✝¹³ : Semiring R
inst✝¹² : Semiring S
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : AddCommMonoid M₅
inst✝⁶ : AddCommMonoid M₆
inst✝⁵ : Module R M
inst✝⁴ : Module R M₂
inst✝³ : Module R M₃
inst✝² : Module R M₄
inst✝¹ : Module R M₅
inst✝ : Module R M₆
f : M →ₗ[R] M₂
⊢ fst R M M₂ = id.coprod 0
state_after: case h
R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
S : Type u_3
inst✝¹³ : Semiring R
inst✝¹² : Semiring S
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : AddCommMonoid M₅
inst✝⁶ : AddCommMonoid M₆
inst✝⁵ : Module R M
inst✝⁴ : Module R M₂
inst✝³ : Module R M₃
inst✝² : Module R M₄
inst✝¹ : Module R M₅
inst✝ : Module R M₆
f : M →ₗ[R] M₂
x✝ : M × M₂
⊢ (fst R M M₂) x✝ = (id.coprod 0) x✝

tactic: simp
state_before: case h
R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
S : Type u_3
inst✝¹³ : Semiring R
inst✝¹² : Semiring S
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : AddCommMonoid M₅
inst✝⁶ : AddCommMonoid M₆
inst✝⁵ : Module R M
inst✝⁴ : Module R M₂
inst✝³ : Module R M₃
inst✝² : Module R M₄
inst✝¹ : Module R M₅
inst✝ : Module R M₆
f : M →ₗ[R] M₂
x✝ : M × M₂
⊢ (fst R M M₂) x✝ = (id.coprod 0) x✝
state_after: no goals
Theorem: map_comp_mul_inv
File: Mathlib/Algebra/Group/Hom/Defs.lean

tactic: simp
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
H : Type u_8
F : Type u_9
inst✝⁶ : MulOneClass M
inst✝⁵ : MulOneClass N
inst✝⁴ : FunLike F M N
inst✝³ : FunLike F G H
inst✝² : Group G
inst✝¹ : DivisionMonoid H
inst✝ : MonoidHomClass F G H
f : F
g h : ι → G
⊢ ⇑f ∘ (g * h⁻¹) = ⇑f ∘ g * (⇑f ∘ h)⁻¹
state_after: no goals
Theorem: Orientation.ne_of_oangle_sign_eq_one
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: decide
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : (o.oangle x y).sign = 1
⊢ 1 ≠ 0
state_after: no goals
Theorem: ContinuousMap.tendsto_compactOpen_iff_forall
File: Mathlib/Topology/CompactOpen.lean

tactic: simp [nhds_iInf, nhds_induced, Filter.tendsto_comap_iff, Function.comp]
state_before: α : Type u_1
X : Type u_2
Y : Type u_3
Z : Type u_4
T : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace T
K : Set X
U : Set Y
ι : Type u_6
l : Filter ι
F : ι → C(X, Y)
f : C(X, Y)
⊢ Tendsto F l (𝓝 f) ↔ ∀ (K : Set X), IsCompact K → Tendsto (fun i => restrict K (F i)) l (𝓝 (restrict K f))
state_after: no goals
Theorem: Nat.half_le_of_sub_le_half
File: Mathlib/Data/Nat/Defs.lean

tactic: rw [Nat.le_div_iff_mul_le Nat.two_pos, Nat.sub_mul, Nat.sub_le_iff_le_add,
  Nat.mul_two, Nat.add_le_add_iff_left] at h
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
h : a - b ≤ a / 2
⊢ a / 2 ≤ b
state_after: a b c d m n k : ℕ
p q : ℕ → Prop
h : a ≤ b * 2
⊢ a / 2 ≤ b

tactic: rw [← Nat.mul_div_left b Nat.two_pos]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
h : a ≤ b * 2
⊢ a / 2 ≤ b
state_after: a b c d m n k : ℕ
p q : ℕ → Prop
h : a ≤ b * 2
⊢ a / 2 ≤ b * 2 / 2

tactic: exact Nat.div_le_div_right h
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
h : a ≤ b * 2
⊢ a / 2 ≤ b * 2 / 2
state_after: no goals
Theorem: prodXSubSMul.coeff
File: Mathlib/Algebra/Polynomial/GroupRingAction.lean

tactic: rw [← Polynomial.coeff_smul, prodXSubSMul.smul]
state_before: M : Type u_1
inst✝⁴ : Monoid M
G : Type u_2
inst✝³ : Group G
inst✝² : Fintype G
R : Type u_3
inst✝¹ : CommRing R
inst✝ : MulSemiringAction G R
x : R
g : G
n : ℕ
⊢ g • (prodXSubSMul G R x).coeff n = (prodXSubSMul G R x).coeff n
state_after: no goals
Theorem: NNReal.sum_sqrt_mul_sqrt_le
File: Mathlib/Data/Real/Sqrt.lean

tactic: simpa [*] using sum_mul_le_sqrt_mul_sqrt _ (fun x ↦ sqrt (f x)) (fun x ↦ sqrt (g x))
state_before: α : Type u_1
inst✝ : TopologicalSpace α
f✝ : α → ℝ
s✝ : Set α
x : α
ι : Type u_2
s : Finset ι
f g : ι → ℝ≥0
⊢ ∑ i ∈ s, sqrt (f i) * sqrt (g i) ≤ sqrt (∑ i ∈ s, f i) * sqrt (∑ i ∈ s, g i)
state_after: no goals
Theorem: CategoryTheory.ShortComplex.LeftHomologyData.leftHomologyIso_hom_comp_homologyIso_inv
File: Mathlib/Algebra/Homology/ShortComplex/Homology.lean

tactic: dsimp only [homologyIso]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
A : C
inst✝¹ : S.HasHomology
h : S.LeftHomologyData
inst✝ : S.HasHomology
⊢ h.leftHomologyIso.hom ≫ h.homologyIso.inv = S.leftHomologyIso.hom
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
A : C
inst✝¹ : S.HasHomology
h : S.LeftHomologyData
inst✝ : S.HasHomology
⊢ h.leftHomologyIso.hom ≫ (S.leftHomologyIso.symm ≪≫ h.leftHomologyIso).inv = S.leftHomologyIso.hom

tactic: simp only [Iso.trans_inv, Iso.symm_inv, Iso.hom_inv_id_assoc]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
A : C
inst✝¹ : S.HasHomology
h : S.LeftHomologyData
inst✝ : S.HasHomology
⊢ h.leftHomologyIso.hom ≫ (S.leftHomologyIso.symm ≪≫ h.leftHomologyIso).inv = S.leftHomologyIso.hom
state_after: no goals
Theorem: Asymptotics.IsLittleO.sub
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simpa only [sub_eq_add_neg] using h₁.add h₂.neg_left
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
f₁ f₂ : α → E'
g₁ g₂ : α → F'
h₁ : f₁ =o[l] g
h₂ : f₂ =o[l] g
⊢ (fun x => f₁ x - f₂ x) =o[l] g
state_after: no goals
Theorem: MeasureTheory.Measure.le_mkMetric
File: Mathlib/MeasureTheory/Measure/Hausdorff.lean

tactic: rw [← toOuterMeasure_le, mkMetric_toOuterMeasure]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
inst✝¹ : MeasurableSpace X
inst✝ : BorelSpace X
m : ℝ≥0∞ → ℝ≥0∞
μ : Measure X
ε : ℝ≥0∞
h₀ : 0 < ε
h : ∀ (s : Set X), diam s ≤ ε → μ s ≤ m (diam s)
⊢ μ ≤ mkMetric m
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
inst✝¹ : MeasurableSpace X
inst✝ : BorelSpace X
m : ℝ≥0∞ → ℝ≥0∞
μ : Measure X
ε : ℝ≥0∞
h₀ : 0 < ε
h : ∀ (s : Set X), diam s ≤ ε → μ s ≤ m (diam s)
⊢ μ.toOuterMeasure ≤ OuterMeasure.mkMetric m

tactic: exact OuterMeasure.le_mkMetric m μ.toOuterMeasure ε h₀ h
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
inst✝¹ : MeasurableSpace X
inst✝ : BorelSpace X
m : ℝ≥0∞ → ℝ≥0∞
μ : Measure X
ε : ℝ≥0∞
h₀ : 0 < ε
h : ∀ (s : Set X), diam s ≤ ε → μ s ≤ m (diam s)
⊢ μ.toOuterMeasure ≤ OuterMeasure.mkMetric m
state_after: no goals
Theorem: MeasureTheory.VectorMeasure.restrict_le_zero_of_not_measurable
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: rw [restrict_zero, restrict_not_measurable _ hi]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
v w : VectorMeasure α M
i j : Set α
hi : ¬MeasurableSet i
⊢ v.restrict i ≤ restrict 0 i
state_after: no goals
Theorem: map_nhds_induced_eq
File: Mathlib/Topology/Order.lean

tactic: rw [nhds_induced, Filter.map_comap, nhdsWithin]
state_before: α : Type u_1
β : Type u_2
t : TopologicalSpace β
f : α → β
a : α
⊢ map f (𝓝 a) = 𝓝[range f] f a
state_after: no goals