tasksource/leandojo huggingface dataset:
Theorem: RingQuot.neg_quot
File: Mathlib/Algebra/RingQuot.lean

tactic: show neg r _ = _
state_before: R✝ : Type u₁
inst✝⁴ : Semiring R✝
S : Type u₂
inst✝³ : CommSemiring S
A : Type u₃
inst✝² : Semiring A
inst✝¹ : Algebra S A
r✝ : R✝ → R✝ → Prop
R : Type u₁
inst✝ : Ring R
r : R → R → Prop
a : R
⊢ -{ toQuot := Quot.mk (Rel r) a } = { toQuot := Quot.mk (Rel r) (-a) }

tactic: rw [neg_def]
state_before: R✝ : Type u₁
inst✝⁴ : Semiring R✝
S : Type u₂
inst✝³ : CommSemiring S
A : Type u₃
inst✝² : Semiring A
inst✝¹ : Algebra S A
r✝ : R✝ → R✝ → Prop
R : Type u₁
inst✝ : Ring R
r : R → R → Prop
a : R
⊢ RingQuot.neg r { toQuot := Quot.mk (Rel r) a } = { toQuot := Quot.mk (Rel r) (-a) }

tactic: rfl
state_before: R✝ : Type u₁
inst✝⁴ : Semiring R✝
S : Type u₂
inst✝³ : CommSemiring S
A : Type u₃
inst✝² : Semiring A
inst✝¹ : Algebra S A
r✝ : R✝ → R✝ → Prop
R : Type u₁
inst✝ : Ring R
r : R → R → Prop
a : R
⊢ (match { toQuot := Quot.mk (Rel r) a } with
    | { toQuot := a } => { toQuot := Quot.map (fun a => -a) (_ : ∀ ⦃a b : R⦄, Rel r a b → Rel r (-a) (-b)) a }) =
    { toQuot := Quot.mk (Rel r) (-a) }
Theorem: Convex.toCone_isLeast
File: Mathlib/Analysis/Convex/Cone/Basic.lean

tactic: refine' ⟨hs.subset_toCone, fun t ht x hx => _⟩
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.176423
G : Type ?u.176426
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
hs : Convex 𝕜 s
x : E
⊢ IsLeast {t | s ⊆ ↑t} (toCone s hs)

tactic: rcases hs.mem_toCone.1 hx with ⟨c, hc, y, hy, rfl⟩
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.176423
G : Type ?u.176426
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
hs : Convex 𝕜 s
x✝ : E
t : ConvexCone 𝕜 E
ht : t ∈ {t | s ⊆ ↑t}
x : E
hx : x ∈ toCone s hs
⊢ x ∈ t

tactic: exact t.smul_mem hc (ht hy)
state_before: case intro.intro.intro.intro
𝕜 : Type u_2
E : Type u_1
F : Type ?u.176423
G : Type ?u.176426
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
hs : Convex 𝕜 s
x : E
t : ConvexCone 𝕜 E
ht : t ∈ {t | s ⊆ ↑t}
c : 𝕜
hc : 0 < c
y : E
hy : y ∈ s
hx : c • y ∈ toCone s hs
⊢ c • y ∈ t
Theorem: Filter.sdiff_liminf
File: Mathlib/Order/LiminfLimsup.lean

tactic: rw [← compl_inj_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.176896
ι : Type ?u.176899
inst✝ : CompleteBooleanAlgebra α
f : Filter β
u : β → α
a : α
⊢ a \ liminf u f = limsup (fun b => a \ u b) f
Theorem: Finset.affineCombination_sdiff_sub
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: simp_rw [affineCombination_apply, vadd_vsub_vadd_cancel_right]
state_before: k : Type u_4
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
S : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type ?u.352836
s₂✝ : Finset ι₂
inst✝ : DecidableEq ι
s₂ : Finset ι
h : s₂ ⊆ s
w : ι → k
p : ι → P
⊢ ↑(affineCombination k (s \ s₂) p) w -ᵥ ↑(affineCombination k s₂ p) (-w) = ↑(weightedVSub s p) w

tactic: exact s.weightedVSub_sdiff_sub h _ _
state_before: k : Type u_4
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
S : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type ?u.352836
s₂✝ : Finset ι₂
inst✝ : DecidableEq ι
s₂ : Finset ι
h : s₂ ⊆ s
w : ι → k
p : ι → P
⊢ ↑(weightedVSubOfPoint (s \ s₂) p (Classical.choice (_ : Nonempty P))) w -
      ↑(weightedVSubOfPoint s₂ p (Classical.choice (_ : Nonempty P))) (-w) =
    ↑(weightedVSub s p) w
Theorem: Nat.one_le_floor_iff
File: Mathlib/Algebra/Order/Floor.lean

tactic: exact_mod_cast @le_floor_iff' α _ _ x 1 one_ne_zero
state_before: F : Type ?u.29827
α : Type u_1
β : Type ?u.29833
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a : α
n : ℕ
x : α
⊢ 1 ≤ ⌊x⌋₊ ↔ 1 ≤ x
Theorem: CategoryTheory.MonoidalCategory.leftUnitor_tensor_inv
File: Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean

tactic: coherence
state_before: C : Type u_2
inst✝¹ : Category C
inst✝ : MonoidalCategory C
X Y : C
⊢ (λ_ (X ⊗ Y)).inv = ((λ_ X).inv ⊗ 𝟙 Y) ≫ (α_ (𝟙_ C) X Y).hom
Theorem: Cardinal.blsub_lt_ord_lift_of_isRegular
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rwa [hc.cof_eq]
state_before: α : Type ?u.158839
r : α → α → Prop
o : Ordinal
f : (a : Ordinal) → a < o → Ordinal
c : Cardinal
hc : IsRegular c
ho : lift (card o) < c
⊢ lift (card o) < Ordinal.cof (ord c)
Theorem: UniformSpace.compactSpace_iff_seqCompactSpace
File: Mathlib/Topology/Sequences.lean

tactic: simp only [← isCompact_univ_iff, seqCompactSpace_iff, UniformSpace.isCompact_iff_isSeqCompact]
state_before: X : Type u_1
Y : Type ?u.22819
inst✝¹ : UniformSpace X
s : Set X
inst✝ : IsCountablyGenerated (𝓤 X)
⊢ CompactSpace X ↔ SeqCompactSpace X
Theorem: Polynomial.degree_smul_le
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: refine (degree_le_iff_coeff_zero _ _).2 fun m hm => ?_
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ q : R[X]
ι : Type ?u.705453
a : R
p : R[X]
⊢ degree (a • p) ≤ degree p

tactic: rw [degree_lt_iff_coeff_zero] at hm
state_before: R : Type u
S : Type v
a✝ b c d : R
n m✝ : ℕ
inst✝ : Semiring R
p✝ q : R[X]
ι : Type ?u.705453
a : R
p : R[X]
m : ℕ
hm : degree p < ↑m
⊢ coeff (a • p) m = 0

tactic: simp [hm m le_rfl]
state_before: R : Type u
S : Type v
a✝ b c d : R
n m✝ : ℕ
inst✝ : Semiring R
p✝ q : R[X]
ι : Type ?u.705453
a : R
p : R[X]
m : ℕ
hm : ∀ (m_1 : ℕ), m ≤ m_1 → coeff p m_1 = 0
⊢ coeff (a • p) m = 0
Theorem: NNReal.le_iInf_add_iInf
File: Mathlib/Data/Real/NNReal.lean

tactic: rw [← NNReal.coe_le_coe, NNReal.coe_add, coe_iInf, coe_iInf]
state_before: ι : Sort u_1
ι' : Sort u_2
inst✝¹ : Nonempty ι
inst✝ : Nonempty ι'
f : ι → ℝ≥0
g : ι' → ℝ≥0
a : ℝ≥0
h : ∀ (i : ι) (j : ι'), a ≤ f i + g j
⊢ a ≤ (⨅ (i : ι), f i) + ⨅ (j : ι'), g j

tactic: exact le_ciInf_add_ciInf h
state_before: ι : Sort u_1
ι' : Sort u_2
inst✝¹ : Nonempty ι
inst✝ : Nonempty ι'
f : ι → ℝ≥0
g : ι' → ℝ≥0
a : ℝ≥0
h : ∀ (i : ι) (j : ι'), a ≤ f i + g j
⊢ ↑a ≤ (⨅ (i : ι), ↑(f i)) + ⨅ (i : ι'), ↑(g i)
Theorem: Nat.closedEmbedding_coe_rat
File: Mathlib/Topology/Instances/Rat.lean

tactic: simpa using Nat.pairwise_one_le_dist
state_before: ⊢ Pairwise fun x y => 1 ≤ dist ↑x ↑y
Theorem: Submodule.isOrtho_iSup_right
File: Mathlib/Analysis/InnerProductSpace/Orthogonal.lean

tactic: simp_rw [isOrtho_comm]
state_before: 𝕜 : Type u_2
E : Type u_3
F : Type ?u.143983
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
ι : Sort u_1
U : Submodule 𝕜 E
V : ι → Submodule 𝕜 E
⊢ (∀ (i : ι), V i ⟂ U) ↔ ∀ (i : ι), U ⟂ V i
Theorem: csSup_div
File: Mathlib/Algebra/Order/Pointwise.lean

tactic: rw [div_eq_mul_inv, csSup_mul hs₀ hs₁ ht₀.inv ht₁.inv, csSup_inv ht₀ ht₁, div_eq_mul_inv]
state_before: α : Type u_1
inst✝³ : ConditionallyCompleteLattice α
inst✝² : Group α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
s t : Set α
hs₀ : Set.Nonempty s
hs₁ : BddAbove s
ht₀ : Set.Nonempty t
ht₁ : BddBelow t
⊢ sSup (s / t) = sSup s / sInf t
Theorem: Ordinal.blsub_eq_zero_iff
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [← lsub_eq_blsub, lsub_eq_zero_iff]
state_before: α : Type ?u.357763
β : Type ?u.357766
γ : Type ?u.357769
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
f : (a : Ordinal) → a < o → Ordinal
⊢ blsub o f = 0 ↔ o = 0

tactic: exact out_empty_iff_eq_zero
state_before: α : Type ?u.357763
β : Type ?u.357766
γ : Type ?u.357769
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
f : (a : Ordinal) → a < o → Ordinal
⊢ IsEmpty (Quotient.out o).α ↔ o = 0
Theorem: SimpleGraph.Colorable.cliqueFree
File: Mathlib/Combinatorics/SimpleGraph/Coloring.lean

tactic: by_contra h
state_before: V : Type u
G : SimpleGraph V
α : Type v
C : Coloring G α
n m : ℕ
hc : Colorable G n
hm : n < m
⊢ CliqueFree G m

tactic: simp only [CliqueFree, isNClique_iff, not_forall, Classical.not_not] at h
state_before: V : Type u
G : SimpleGraph V
α : Type v
C : Coloring G α
n m : ℕ
hc : Colorable G n
hm : n < m
h : ¬CliqueFree G m
⊢ False

tactic: obtain ⟨s, h, rfl⟩ := h
state_before: V : Type u
G : SimpleGraph V
α : Type v
C : Coloring G α
n m : ℕ
hc : Colorable G n
hm : n < m
h : ∃ x, IsClique G ↑x ∧ Finset.card x = m
⊢ False

tactic: exact Nat.lt_le_antisymm hm (h.card_le_of_colorable hc)
state_before: case intro.intro
V : Type u
G : SimpleGraph V
α : Type v
C : Coloring G α
n : ℕ
hc : Colorable G n
s : Finset V
h : IsClique G ↑s
hm : n < Finset.card s
⊢ False
Theorem: CategoryTheory.tensorLeftHomEquiv_symm_coevaluation_comp_tensor_id
File: Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean

tactic: dsimp [tensorLeftHomEquiv, rightAdjointMate]
state_before: C : Type u₁
inst✝³ : Category C
inst✝² : MonoidalCategory C
X Y : C
inst✝¹ : HasRightDual X
inst✝ : HasRightDual Y
f : X ⟶ Y
⊢ ↑(tensorLeftHomEquiv (𝟙_ C) Y Yᘁ Xᘁ).symm (η_ X Xᘁ ≫ (f ⊗ 𝟙 Xᘁ)) = (ρ_ Yᘁ).hom ≫ fᘁ

tactic: simp
state_before: C : Type u₁
inst✝³ : Category C
inst✝² : MonoidalCategory C
X Y : C
inst✝¹ : HasRightDual X
inst✝ : HasRightDual Y
f : X ⟶ Y
⊢ (𝟙 Yᘁ ⊗ η_ X Xᘁ ≫ (f ⊗ 𝟙 Xᘁ)) ≫ (α_ Yᘁ Y Xᘁ).inv ≫ (ε_ Y Yᘁ ⊗ 𝟙 Xᘁ) ≫ (λ_ Xᘁ).hom =
    (ρ_ Yᘁ).hom ≫ (ρ_ Yᘁ).inv ≫ (𝟙 Yᘁ ⊗ η_ X Xᘁ) ≫ (𝟙 Yᘁ ⊗ f ⊗ 𝟙 Xᘁ) ≫ (α_ Yᘁ Y Xᘁ).inv ≫ (ε_ Y Yᘁ ⊗ 𝟙 Xᘁ) ≫ (λ_ Xᘁ).hom
Theorem: MeasureTheory.FiniteMeasure.continuous_mass
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

tactic: simp_rw [← testAgainstNN_one]
state_before: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type ?u.126329
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
⊢ Continuous fun μ => mass μ

tactic: exact continuous_testAgainstNN_eval 1
state_before: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type ?u.126329
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
⊢ Continuous fun μ => testAgainstNN μ 1
Theorem: Finset.le_prod_nonempty_of_submultiplicative_on_pred
File: Mathlib/Algebra/BigOperators/Order.lean

tactic: refine' le_trans (Multiset.le_prod_nonempty_of_submultiplicative_on_pred f p h_mul hp_mul _ _ _) _
state_before: ι : Type u_3
α : Type ?u.59
β : Type ?u.62
M : Type u_2
N : Type u_1
G : Type ?u.71
k : Type ?u.74
R : Type ?u.77
inst✝¹ : CommMonoid M
inst✝ : OrderedCommMonoid N
f : M → N
p : M → Prop
h_mul : ∀ (x y : M), p x → p y → f (x * y) ≤ f x * f y
hp_mul : ∀ (x y : M), p x → p y → p (x * y)
g : ι → M
s : Finset ι
hs_nonempty : Finset.Nonempty s
hs : ∀ (i : ι), i ∈ s → p (g i)
⊢ f (∏ i in s, g i) ≤ ∏ i in s, f (g i)

tactic: rw [Multiset.map_map]
state_before: case refine'_3
ι : Type u_3
α : Type ?u.59
β : Type ?u.62
M : Type u_2
N : Type u_1
G : Type ?u.71
k : Type ?u.74
R : Type ?u.77
inst✝¹ : CommMonoid M
inst✝ : OrderedCommMonoid N
f : M → N
p : M → Prop
h_mul : ∀ (x y : M), p x → p y → f (x * y) ≤ f x * f y
hp_mul : ∀ (x y : M), p x → p y → p (x * y)
g : ι → M
s : Finset ι
hs_nonempty : Finset.Nonempty s
hs : ∀ (i : ι), i ∈ s → p (g i)
⊢ Multiset.prod (Multiset.map f (Multiset.map (fun i => g i) s.val)) ≤ ∏ i in s, f (g i)

tactic: rfl
state_before: case refine'_3
ι : Type u_3
α : Type ?u.59
β : Type ?u.62
M : Type u_2
N : Type u_1
G : Type ?u.71
k : Type ?u.74
R : Type ?u.77
inst✝¹ : CommMonoid M
inst✝ : OrderedCommMonoid N
f : M → N
p : M → Prop
h_mul : ∀ (x y : M), p x → p y → f (x * y) ≤ f x * f y
hp_mul : ∀ (x y : M), p x → p y → p (x * y)
g : ι → M
s : Finset ι
hs_nonempty : Finset.Nonempty s
hs : ∀ (i : ι), i ∈ s → p (g i)
⊢ Multiset.prod (Multiset.map (f ∘ fun i => g i) s.val) ≤ ∏ i in s, f (g i)

tactic: simp [hs_nonempty.ne_empty]
state_before: case refine'_1
ι : Type u_3
α : Type ?u.59
β : Type ?u.62
M : Type u_2
N : Type u_1
G : Type ?u.71
k : Type ?u.74
R : Type ?u.77
inst✝¹ : CommMonoid M
inst✝ : OrderedCommMonoid N
f : M → N
p : M → Prop
h_mul : ∀ (x y : M), p x → p y → f (x * y) ≤ f x * f y
hp_mul : ∀ (x y : M), p x → p y → p (x * y)
g : ι → M
s : Finset ι
hs_nonempty : Finset.Nonempty s
hs : ∀ (i : ι), i ∈ s → p (g i)
⊢ Multiset.map (fun i => g i) s.val ≠ ∅

tactic: exact Multiset.forall_mem_map_iff.mpr hs
state_before: case refine'_2
ι : Type u_3
α : Type ?u.59
β : Type ?u.62
M : Type u_2
N : Type u_1
G : Type ?u.71
k : Type ?u.74
R : Type ?u.77
inst✝¹ : CommMonoid M
inst✝ : OrderedCommMonoid N
f : M → N
p : M → Prop
h_mul : ∀ (x y : M), p x → p y → f (x * y) ≤ f x * f y
hp_mul : ∀ (x y : M), p x → p y → p (x * y)
g : ι → M
s : Finset ι
hs_nonempty : Finset.Nonempty s
hs : ∀ (i : ι), i ∈ s → p (g i)
⊢ ∀ (a : M), a ∈ Multiset.map (fun i => g i) s.val → p a
Theorem: Pmf.mem_support_normalize_iff
File: Mathlib/Probability/ProbabilityMassFunction/Constructions.lean

tactic: simp
state_before: α : Type u_1
β : Type ?u.141337
γ : Type ?u.141340
f : α → ℝ≥0∞
hf0 : tsum f ≠ 0
hf : tsum f ≠ ⊤
a : α
⊢ a ∈ support (normalize f hf0 hf) ↔ f a ≠ 0
Theorem: Vector.mem_iff_get
File: Mathlib/Data/Vector/Mem.lean

tactic: simp only [List.mem_iff_get, Fin.exists_iff, Vector.get_eq_get]
state_before: α : Type u_1
β : Type ?u.160
n : ℕ
a a' : α
v : Vector α n
⊢ a ∈ toList v ↔ ∃ i, get v i = a

tactic: exact
  ⟨fun ⟨i, hi, h⟩ => ⟨i, by rwa [toList_length] at hi, h⟩, fun ⟨i, hi, h⟩ =>
    ⟨i, by rwa [toList_length], h⟩⟩
state_before: α : Type u_1
β : Type ?u.160
n : ℕ
a a' : α
v : Vector α n
⊢ (∃ i h, List.get (toList v) { val := i, isLt := h } = a) ↔
    ∃ i h, List.get (toList v) (↑(Fin.cast (_ : n = List.length (toList v))) { val := i, isLt := h }) = a

tactic: rwa [toList_length] at hi
state_before: α : Type u_1
β : Type ?u.160
n : ℕ
a a' : α
v : Vector α n
x✝ : ∃ i h, List.get (toList v) { val := i, isLt := h } = a
i : ℕ
hi : i < List.length (toList v)
h : List.get (toList v) { val := i, isLt := hi } = a
⊢ i < n

tactic: rwa [toList_length]
state_before: α : Type u_1
β : Type ?u.160
n : ℕ
a a' : α
v : Vector α n
x✝ : ∃ i h, List.get (toList v) (↑(Fin.cast (_ : n = List.length (toList v))) { val := i, isLt := h }) = a
i : ℕ
hi : i < n
h : List.get (toList v) (↑(Fin.cast (_ : n = List.length (toList v))) { val := i, isLt := hi }) = a
⊢ i < List.length (toList v)
Theorem: CategoryTheory.Limits.pushoutCoconeOfRightIso_ι_app_none
File: Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean

tactic: simp
state_before: C : Type u
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
W X Y Z : C
f : X ⟶ Y
g : X ⟶ Z
inst✝ : IsIso g
⊢ (pushoutCoconeOfRightIso f g).ι.app none = f
Theorem: intervalIntegrable_iff_integrable_Ioc_of_le
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rw [intervalIntegrable_iff, uIoc_of_le hab]
state_before: ι : Type ?u.462744
𝕜 : Type ?u.462747
E : Type u_1
F : Type ?u.462753
A : Type ?u.462756
inst✝ : NormedAddCommGroup E
f : ℝ → E
a b : ℝ
μ : MeasureTheory.Measure ℝ
hab : a ≤ b
⊢ IntervalIntegrable f μ a b ↔ IntegrableOn f (Ioc a b)
Theorem: mem_segment_iff_sameRay
File: Mathlib/Analysis/Convex/Segment.lean

tactic: refine' ⟨sameRay_of_mem_segment, fun h => _⟩
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.214396
G : Type ?u.214399
ι : Type ?u.214402
π : ι → Type ?u.214407
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
x y z : E
⊢ x ∈ [y-[𝕜]z] ↔ SameRay 𝕜 (x - y) (z - x)

tactic: rcases h.exists_eq_smul_add with ⟨a, b, ha, hb, hab, hxy, hzx⟩
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.214396
G : Type ?u.214399
ι : Type ?u.214402
π : ι → Type ?u.214407
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
x y z : E
h : SameRay 𝕜 (x - y) (z - x)
⊢ x ∈ [y-[𝕜]z]

tactic: rw [add_comm, sub_add_sub_cancel] at hxy hzx
state_before: case intro.intro.intro.intro.intro.intro
𝕜 : Type u_2
E : Type u_1
F : Type ?u.214396
G : Type ?u.214399
ι : Type ?u.214402
π : ι → Type ?u.214407
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
x y z : E
h : SameRay 𝕜 (x - y) (z - x)
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
hxy : x - y = a • (x - y + (z - x))
hzx : z - x = b • (x - y + (z - x))
⊢ x ∈ [y-[𝕜]z]

tactic: rw [← mem_segment_translate _ (-x), neg_add_self]
state_before: case intro.intro.intro.intro.intro.intro
𝕜 : Type u_2
E : Type u_1
F : Type ?u.214396
G : Type ?u.214399
ι : Type ?u.214402
π : ι → Type ?u.214407
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
x y z : E
h : SameRay 𝕜 (x - y) (z - x)
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
hxy : x - y = a • (z - y)
hzx : z - x = b • (z - y)
⊢ x ∈ [y-[𝕜]z]

tactic: refine' ⟨b, a, hb, ha, add_comm a b ▸ hab, _⟩
state_before: case intro.intro.intro.intro.intro.intro
𝕜 : Type u_2
E : Type u_1
F : Type ?u.214396
G : Type ?u.214399
ι : Type ?u.214402
π : ι → Type ?u.214407
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
x y z : E
h : SameRay 𝕜 (x - y) (z - x)
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
hxy : x - y = a • (z - y)
hzx : z - x = b • (z - y)
⊢ 0 ∈ [-x + y-[𝕜]-x + z]

tactic: rw [← sub_eq_neg_add, ← neg_sub, hxy, ← sub_eq_neg_add, hzx, smul_neg, smul_comm, neg_add_self]
state_before: case intro.intro.intro.intro.intro.intro
𝕜 : Type u_2
E : Type u_1
F : Type ?u.214396
G : Type ?u.214399
ι : Type ?u.214402
π : ι → Type ?u.214407
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
x y z : E
h : SameRay 𝕜 (x - y) (z - x)
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
hxy : x - y = a • (z - y)
hzx : z - x = b • (z - y)
⊢ b • (-x + y) + a • (-x + z) = 0
Theorem: Traversable.foldrm_toList
File: Mathlib/Control/Fold.lean

tactic: change _ = foldrM.ofFreeMonoid f (FreeMonoid.ofList <| toList xs) x
state_before: α β γ : Type u
t : Type u → Type u
inst✝³ : Traversable t
inst✝² : IsLawfulTraversable t
m : Type u → Type u
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f : α → β → m β
x : β
xs : t α
⊢ foldrm f x xs = List.foldrM f x (toList xs)

tactic: simp only [foldrm, toList_spec, foldMap_hom_free (foldrM.ofFreeMonoid f),
  foldrm.ofFreeMonoid_comp_of, foldrM.get, FreeMonoid.ofList_toList]
state_before: α β γ : Type u
t : Type u → Type u
inst✝³ : Traversable t
inst✝² : IsLawfulTraversable t
m : Type u → Type u
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f : α → β → m β
x : β
xs : t α
⊢ foldrm f x xs = ↑(foldrM.ofFreeMonoid f) (↑FreeMonoid.ofList (toList xs)) x
Theorem: Fin.exists_succAbove_eq_iff
File: Mathlib/Data/Fin/Basic.lean

tactic: refine' ⟨_, exists_succAbove_eq⟩
state_before: n m : ℕ
x y : Fin (n + 1)
⊢ (∃ z, ↑(succAbove x) z = y) ↔ y ≠ x

tactic: rintro ⟨y, rfl⟩
state_before: n m : ℕ
x y : Fin (n + 1)
⊢ (∃ z, ↑(succAbove x) z = y) → y ≠ x

tactic: exact succAbove_ne _ _
state_before: case intro
n m : ℕ
x : Fin (n + 1)
y : Fin n
⊢ ↑(succAbove x) y ≠ x
Theorem: MeasureTheory.StronglyMeasurable.integral_prod_right'
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

tactic: rw [← uncurry_curry f] at hf
state_before: α : Type u_2
α' : Type ?u.2378632
β : Type u_1
β' : Type ?u.2378638
γ : Type ?u.2378641
E : Type u_3
inst✝⁸ : MeasurableSpace α
inst✝⁷ : MeasurableSpace α'
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace β'
inst✝⁴ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : SigmaFinite ν
f : α × β → E
hf : StronglyMeasurable f
⊢ StronglyMeasurable fun x => ∫ (y : β), f (x, y) ∂ν

tactic: exact hf.integral_prod_right
state_before: α : Type u_2
α' : Type ?u.2378632
β : Type u_1
β' : Type ?u.2378638
γ : Type ?u.2378641
E : Type u_3
inst✝⁸ : MeasurableSpace α
inst✝⁷ : MeasurableSpace α'
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace β'
inst✝⁴ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : SigmaFinite ν
f : α × β → E
hf : StronglyMeasurable (uncurry (curry f))
⊢ StronglyMeasurable fun x => ∫ (y : β), f (x, y) ∂ν
Theorem: Dfinsupp.prod_eq_prod_fintype
File: Mathlib/Data/Dfinsupp/Basic.lean

tactic: suffices (∏ i in v.support, f i (v i)) = ∏ i, f i (v i) by simp [Dfinsupp.prod, this]
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝³ : Fintype ι
inst✝² : (i : ι) → Zero (β i)
inst✝¹ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
inst✝ : CommMonoid γ
v : Π₀ (i : ι), β i
f : (i : ι) → β i → γ
hf : ∀ (i : ι), f i 0 = 1
⊢ prod v f = ∏ i : ι, f i (↑equivFunOnFintype v i)

tactic: apply Finset.prod_subset v.support.subset_univ
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝³ : Fintype ι
inst✝² : (i : ι) → Zero (β i)
inst✝¹ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
inst✝ : CommMonoid γ
v : Π₀ (i : ι), β i
f : (i : ι) → β i → γ
hf : ∀ (i : ι), f i 0 = 1
⊢ ∏ i in support v, f i (↑v i) = ∏ i : ι, f i (↑v i)

tactic: intro i _ hi
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝³ : Fintype ι
inst✝² : (i : ι) → Zero (β i)
inst✝¹ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
inst✝ : CommMonoid γ
v : Π₀ (i : ι), β i
f : (i : ι) → β i → γ
hf : ∀ (i : ι), f i 0 = 1
⊢ ∀ (x : ι), x ∈ Finset.univ → ¬x ∈ support v → f x (↑v x) = 1

tactic: rw [mem_support_iff, not_not] at hi
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝³ : Fintype ι
inst✝² : (i : ι) → Zero (β i)
inst✝¹ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
inst✝ : CommMonoid γ
v : Π₀ (i : ι), β i
f : (i : ι) → β i → γ
hf : ∀ (i : ι), f i 0 = 1
i : ι
a✝ : i ∈ Finset.univ
hi : ¬i ∈ support v
⊢ f i (↑v i) = 1

tactic: rw [hi, hf]
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝³ : Fintype ι
inst✝² : (i : ι) → Zero (β i)
inst✝¹ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
inst✝ : CommMonoid γ
v : Π₀ (i : ι), β i
f : (i : ι) → β i → γ
hf : ∀ (i : ι), f i 0 = 1
i : ι
a✝ : i ∈ Finset.univ
hi : ↑v i = 0
⊢ f i (↑v i) = 1

tactic: simp [Dfinsupp.prod, this]
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝³ : Fintype ι
inst✝² : (i : ι) → Zero (β i)
inst✝¹ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
inst✝ : CommMonoid γ
v : Π₀ (i : ι), β i
f : (i : ι) → β i → γ
hf : ∀ (i : ι), f i 0 = 1
this : ∏ i in support v, f i (↑v i) = ∏ i : ι, f i (↑v i)
⊢ prod v f = ∏ i : ι, f i (↑equivFunOnFintype v i)
Theorem: MeasureTheory.VectorMeasure.AbsolutelyContinuous.neg_right
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: intro s hs
state_before: α : Type u_2
β : Type ?u.628486
m : MeasurableSpace α
L : Type ?u.628492
M : Type u_3
N✝ : Type ?u.628498
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommMonoid N✝
inst✝³ : TopologicalSpace N✝
v✝ : VectorMeasure α M
w✝ : VectorMeasure α N✝
N : Type u_1
inst✝² : AddCommGroup N
inst✝¹ : TopologicalSpace N
inst✝ : TopologicalAddGroup N
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
⊢ v ≪ᵥ -w

tactic: rw [neg_apply, neg_eq_zero] at hs
state_before: α : Type u_2
β : Type ?u.628486
m : MeasurableSpace α
L : Type ?u.628492
M : Type u_3
N✝ : Type ?u.628498
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommMonoid N✝
inst✝³ : TopologicalSpace N✝
v✝ : VectorMeasure α M
w✝ : VectorMeasure α N✝
N : Type u_1
inst✝² : AddCommGroup N
inst✝¹ : TopologicalSpace N
inst✝ : TopologicalAddGroup N
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
s : Set α
hs : ↑(-w) s = 0
⊢ ↑v s = 0

tactic: exact h hs
state_before: α : Type u_2
β : Type ?u.628486
m : MeasurableSpace α
L : Type ?u.628492
M : Type u_3
N✝ : Type ?u.628498
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommMonoid N✝
inst✝³ : TopologicalSpace N✝
v✝ : VectorMeasure α M
w✝ : VectorMeasure α N✝
N : Type u_1
inst✝² : AddCommGroup N
inst✝¹ : TopologicalSpace N
inst✝ : TopologicalAddGroup N
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
s : Set α
hs : ↑w s = 0
⊢ ↑v s = 0