1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MonoidHom.map_neg
File: Mathlib/Algebra/Order/Ring/Basic.lean

tactic: rw [← neg_one_mul, map_mul, map_neg_one, one_mul]
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝³ : Ring R
inst✝² : Monoid M
inst✝¹ : LinearOrder M
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
f : R →* M
x : R
⊢ f (-x) = f x
state_after: no goals
Theorem: MeasureTheory.integrableOn_map_equiv
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: simp only [IntegrableOn, e.restrict_map, integrable_map_equiv e]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
f✝ g : α → E
s✝ t : Set α
μ✝ ν : Measure α
inst✝ : MeasurableSpace β
e : α ≃ᵐ β
f : β → E
μ : Measure α
s : Set β
⊢ IntegrableOn f s (Measure.map (⇑e) μ) ↔ IntegrableOn (f ∘ ⇑e) (⇑e ⁻¹' s) μ
state_after: no goals
Theorem: Submodule.isCompl_comap_subtype_of_isCompl_of_le
File: Mathlib/LinearAlgebra/Span.lean

tactic: simpa [p.mapIic.isCompl_iff, Iic.isCompl_iff] using Iic.isCompl_inf_inf_of_isCompl_of_le h₁ h₂
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p q r : Submodule R M
h₁ : IsCompl q r
h₂ : q ≤ p
⊢ IsCompl (comap p.subtype q) (comap p.subtype r)
state_after: no goals
Theorem: CommRingCat.Colimits.quot_neg
File: Mathlib/Algebra/Category/Ring/Colimits.lean

tactic: exact Quot.mk Setoid.r (neg x)
state_before: J : Type v
inst✝ : SmallCategory J
F : J ⥤ CommRingCat
x : Prequotient F
⊢ ColimitType F
state_after: no goals

tactic: exact Quot.mk Setoid.r x
state_before: J : Type v
inst✝ : SmallCategory J
F : J ⥤ CommRingCat
x : Prequotient F
⊢ ColimitType F
state_after: no goals
Theorem: Set.infsep_zero
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: rw [infsep, ENNReal.toReal_eq_zero_iff]
state_before: α : Type u_1
β : Type u_2
inst✝ : EDist α
x y : α
s : Set α
⊢ s.infsep = 0 ↔ s.einfsep = 0 ∨ s.einfsep = ⊤
state_after: no goals
Theorem: EuclideanGeometry.circumradius_eq_of_cospherical
File: Mathlib/Geometry/Euclidean/Circumcenter.lean

tactic: rcases exists_circumradius_eq_of_cospherical hd hc with ⟨r, hr⟩
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
ps : Set P
n : ℕ
inst✝ : FiniteDimensional ℝ V
hd : finrank ℝ V = n
hc : Cospherical ps
sx₁ sx₂ : Simplex ℝ P n
hsx₁ : Set.range sx₁.points ⊆ ps
hsx₂ : Set.range sx₂.points ⊆ ps
⊢ sx₁.circumradius = sx₂.circumradius
state_after: case intro
V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
ps : Set P
n : ℕ
inst✝ : FiniteDimensional ℝ V
hd : finrank ℝ V = n
hc : Cospherical ps
sx₁ sx₂ : Simplex ℝ P n
hsx₁ : Set.range sx₁.points ⊆ ps
hsx₂ : Set.range sx₂.points ⊆ ps
r : ℝ
hr : ∀ (sx : Simplex ℝ P n), Set.range sx.points ⊆ ps → sx.circumradius = r
⊢ sx₁.circumradius = sx₂.circumradius

tactic: rw [hr sx₁ hsx₁, hr sx₂ hsx₂]
state_before: case intro
V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
ps : Set P
n : ℕ
inst✝ : FiniteDimensional ℝ V
hd : finrank ℝ V = n
hc : Cospherical ps
sx₁ sx₂ : Simplex ℝ P n
hsx₁ : Set.range sx₁.points ⊆ ps
hsx₂ : Set.range sx₂.points ⊆ ps
r : ℝ
hr : ∀ (sx : Simplex ℝ P n), Set.range sx.points ⊆ ps → sx.circumradius = r
⊢ sx₁.circumradius = sx₂.circumradius
state_after: no goals
Theorem: Set.einfsep_pos
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: rw [pos_iff_ne_zero, Ne, einfsep_zero]
state_before: α : Type u_1
β : Type u_2
inst✝ : EDist α
x y : α
s t : Set α
⊢ 0 < s.einfsep ↔ ∃ C > 0, ∀ x ∈ s, ∀ y ∈ s, x ≠ y → C ≤ edist x y
state_after: α : Type u_1
β : Type u_2
inst✝ : EDist α
x y : α
s t : Set α
⊢ (¬∀ C > 0, ∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ edist x y < C) ↔ ∃ C > 0, ∀ x ∈ s, ∀ y ∈ s, x ≠ y → C ≤ edist x y

tactic: simp only [not_forall, not_exists, not_lt, exists_prop, not_and]
state_before: α : Type u_1
β : Type u_2
inst✝ : EDist α
x y : α
s t : Set α
⊢ (¬∀ C > 0, ∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ edist x y < C) ↔ ∃ C > 0, ∀ x ∈ s, ∀ y ∈ s, x ≠ y → C ≤ edist x y
state_after: no goals
Theorem: TsirelsonInequality.sqrt_two_inv_mul_self
File: Mathlib/Algebra/Star/CHSH.lean

tactic: rw [← mul_inv]
state_before: R : Type u
⊢ (√2)⁻¹ * (√2)⁻¹ = 2⁻¹
state_after: R : Type u
⊢ (√2 * √2)⁻¹ = 2⁻¹

tactic: norm_num
state_before: R : Type u
⊢ (√2 * √2)⁻¹ = 2⁻¹
state_after: no goals
Theorem: ofNat_mem
File: Mathlib/Algebra/Ring/Subsemiring/Basic.lean

tactic: rw [← Nat.cast_eq_ofNat]
state_before: S : Type u_1
R : Type u_2
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike S R
s✝ : S
inst✝¹ : AddSubmonoidWithOneClass S R
s : S
n : ℕ
inst✝ : n.AtLeastTwo
⊢ OfNat.ofNat n ∈ s
state_after: S : Type u_1
R : Type u_2
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike S R
s✝ : S
inst✝¹ : AddSubmonoidWithOneClass S R
s : S
n : ℕ
inst✝ : n.AtLeastTwo
⊢ ↑n ∈ s

tactic: exact natCast_mem s n
state_before: S : Type u_1
R : Type u_2
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike S R
s✝ : S
inst✝¹ : AddSubmonoidWithOneClass S R
s : S
n : ℕ
inst✝ : n.AtLeastTwo
⊢ ↑n ∈ s
state_after: no goals
Theorem: MeasureTheory.setIntegral_condexpL2_indicator
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean

tactic: rw [smul_eq_mul, mul_one]
state_before: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹⁹ : RCLike 𝕜
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : InnerProductSpace 𝕜 E
inst✝¹⁶ : CompleteSpace E
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : InnerProductSpace 𝕜 E'
inst✝¹³ : CompleteSpace E'
inst✝¹² : NormedSpace ℝ E'
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup G'
inst✝⁷ : NormedSpace ℝ G'
inst✝⁶ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
E'' : Type u_8
𝕜' : Type u_9
inst✝⁵ : RCLike 𝕜'
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : InnerProductSpace 𝕜' E''
inst✝² : CompleteSpace E''
inst✝¹ : NormedSpace ℝ E''
inst✝ : NormedSpace ℝ G
hm : m ≤ m0
hs : MeasurableSet s
ht : MeasurableSet t
hμs : μ s ≠ ⊤
hμt : μ t ≠ ⊤
⊢ (μ (t ∩ s)).toReal • 1 = (μ (t ∩ s)).toReal
state_after: no goals
Theorem: AbsoluteValue.sub_le_add
File: Mathlib/Algebra/Order/AbsoluteValue.lean

tactic: simpa only [← sub_eq_add_neg, AbsoluteValue.map_neg] using abv.add_le a (-b)
state_before: ι : Type u_1
α : Type u_2
R : Type u_3
S : Type u_4
inst✝² : OrderedCommRing S
inst✝¹ : Ring R
abv : AbsoluteValue R S
inst✝ : NoZeroDivisors S
a b : R
⊢ abv (a - b) ≤ abv a + abv b
state_after: no goals
Theorem: Finset.prod_le_prod_of_subset_of_one_le'
File: Mathlib/Algebra/Order/BigOperators/Group/Finset.lean

tactic: classical calc
    ∏ i ∈ s, f i ≤ (∏ i ∈ t \ s, f i) * ∏ i ∈ s, f i :=
      le_mul_of_one_le_left' <| one_le_prod' <| by simpa only [mem_sdiff, and_imp]
    _ = ∏ i ∈ t \ s ∪ s, f i := (prod_union sdiff_disjoint).symm
    _ = ∏ i ∈ t, f i := by rw [sdiff_union_of_subset h]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝¹ : CommMonoid M
inst✝ : OrderedCommMonoid N
f g : ι → N
s t : Finset ι
h : s ⊆ t
hf : ∀ i ∈ t, i ∉ s → 1 ≤ f i
⊢ ∏ i ∈ s, f i ≤ ∏ i ∈ t, f i
state_after: no goals

tactic: calc
∏ i ∈ s, f i ≤ (∏ i ∈ t \ s, f i) * ∏ i ∈ s, f i :=
le_mul_of_one_le_left' <| one_le_prod' <| by simpa only [mem_sdiff, and_imp]
_ = ∏ i ∈ t \ s ∪ s, f i := (prod_union sdiff_disjoint).symm
_ = ∏ i ∈ t, f i := by rw [sdiff_union_of_subset h]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝¹ : CommMonoid M
inst✝ : OrderedCommMonoid N
f g : ι → N
s t : Finset ι
h : s ⊆ t
hf : ∀ i ∈ t, i ∉ s → 1 ≤ f i
⊢ ∏ i ∈ s, f i ≤ ∏ i ∈ t, f i
state_after: no goals

tactic: simpa only [mem_sdiff, and_imp]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝¹ : CommMonoid M
inst✝ : OrderedCommMonoid N
f g : ι → N
s t : Finset ι
h : s ⊆ t
hf : ∀ i ∈ t, i ∉ s → 1 ≤ f i
⊢ ∀ i ∈ t \ s, 1 ≤ f i
state_after: no goals

tactic: rw [sdiff_union_of_subset h]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝¹ : CommMonoid M
inst✝ : OrderedCommMonoid N
f g : ι → N
s t : Finset ι
h : s ⊆ t
hf : ∀ i ∈ t, i ∉ s → 1 ≤ f i
⊢ ∏ i ∈ t \ s ∪ s, f i = ∏ i ∈ t, f i
state_after: no goals
Theorem: PowerSeries.X_eq_normalizeX
File: Mathlib/RingTheory/PowerSeries/Inverse.lean

tactic: simp only [normalize_apply, normUnit_X, Units.val_one, mul_one]
state_before: R : Type u_1
k : Type u_2
inst✝ : Field k
⊢ X = normalize X
state_after: no goals
Theorem: minpoly.algHom_eq
File: Mathlib/FieldTheory/Minpoly/Basic.lean

tactic: refine dif_ctx_congr (isIntegral_algHom_iff _ hf) (fun _ => ?_) fun _ => rfl
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : Ring B'
inst✝¹ : Algebra A B
inst✝ : Algebra A B'
x✝ : B
f : B →ₐ[A] B'
hf : Injective ⇑f
x : B
⊢ minpoly A (f x) = minpoly A x
state_after: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : Ring B'
inst✝¹ : Algebra A B
inst✝ : Algebra A B'
x✝¹ : B
f : B →ₐ[A] B'
hf : Injective ⇑f
x : B
x✝ : IsIntegral A x
⊢ ⋯.min (fun x_1 => x_1.Monic ∧ eval₂ (algebraMap A B') (f x) x_1 = 0) ⋯ =
    ⋯.min (fun x_1 => x_1.Monic ∧ eval₂ (algebraMap A B) x x_1 = 0) x✝

tactic: simp_rw [← Polynomial.aeval_def, aeval_algHom, AlgHom.comp_apply, _root_.map_eq_zero_iff f hf]
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : Ring B'
inst✝¹ : Algebra A B
inst✝ : Algebra A B'
x✝¹ : B
f : B →ₐ[A] B'
hf : Injective ⇑f
x : B
x✝ : IsIntegral A x
⊢ ⋯.min (fun x_1 => x_1.Monic ∧ eval₂ (algebraMap A B') (f x) x_1 = 0) ⋯ =
    ⋯.min (fun x_1 => x_1.Monic ∧ eval₂ (algebraMap A B) x x_1 = 0) x✝
state_after: no goals
Theorem: Int.units_pow_eq_pow_mod_two
File: Mathlib/Data/Int/Order/Units.lean

tactic: conv =>
    lhs
    rw [← Nat.mod_add_div n 2];
    rw [pow_add, pow_mul, units_sq, one_pow, mul_one]
state_before: u : ℤˣ
n : ℕ
⊢ u ^ n = u ^ (n % 2)
state_after: no goals
Theorem: Batteries.RBNode.balance1_toList
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: unfold balance1
state_before: α : Type u_1
l : RBNode α
v : α
r : RBNode α
⊢ (l.balance1 v r).toList = l.toList ++ v :: r.toList
state_after: α : Type u_1
l : RBNode α
v : α
r : RBNode α
⊢ (match l, v, r with
      | node red (node red a x b) y c, z, d => node red (node black a x b) y (node black c z d)
      | node red a x (node red b y c), z, d => node red (node black a x b) y (node black c z d)
      | a, x, b => node black a x b).toList =
    l.toList ++ v :: r.toList

tactic: split <;> simp
state_before: α : Type u_1
l : RBNode α
v : α
r : RBNode α
⊢ (match l, v, r with
      | node red (node red a x b) y c, z, d => node red (node black a x b) y (node black c z d)
      | node red a x (node red b y c), z, d => node red (node black a x b) y (node black c z d)
      | a, x, b => node black a x b).toList =
    l.toList ++ v :: r.toList
state_after: no goals
Theorem: CochainComplex.HomComplex.Cochain.leftShift_smul
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean

tactic: ext p q hpq
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a n' : ℤ
hn' : n + a = n'
x : R
⊢ (x • γ).leftShift a n' hn' = x • γ.leftShift a n' hn'
state_after: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a n' : ℤ
hn' : n + a = n'
x : R
p q : ℤ
hpq : p + n' = q
⊢ ((x • γ).leftShift a n' hn').v p q hpq = (x • γ.leftShift a n' hn').v p q hpq

tactic: dsimp
state_before: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a n' : ℤ
hn' : n + a = n'
x : R
p q : ℤ
hpq : p + n' = q
⊢ ((x • γ).leftShift a n' hn').v p q hpq = (x • γ.leftShift a n' hn').v p q hpq
state_after: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a n' : ℤ
hn' : n + a = n'
x : R
p q : ℤ
hpq : p + n' = q
⊢ ((x • γ).leftShift a n' hn').v p q hpq = x • (γ.leftShift a n' hn').v p q hpq

tactic: simp only [leftShift_v _ a n' hn' p q hpq (p + a) (by omega), smul_v, Linear.comp_smul,
  smul_comm x]
state_before: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a n' : ℤ
hn' : n + a = n'
x : R
p q : ℤ
hpq : p + n' = q
⊢ ((x • γ).leftShift a n' hn').v p q hpq = x • (γ.leftShift a n' hn').v p q hpq
state_after: no goals

tactic: omega
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a n' : ℤ
hn' : n + a = n'
x : R
p q : ℤ
hpq : p + n' = q
⊢ p + a + n = q
state_after: no goals
Theorem: Complex.arg_real_mul
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: rcases eq_or_ne x 0 with (rfl | hx)
state_before: a x✝ z x : ℂ
r : ℝ
hr : 0 < r
⊢ (↑r * x).arg = x.arg
state_after: case inl
a x z : ℂ
r : ℝ
hr : 0 < r
⊢ (↑r * 0).arg = arg 0

case inr
a x✝ z x : ℂ
r : ℝ
hr : 0 < r
hx : x ≠ 0
⊢ (↑r * x).arg = x.arg

tactic: conv_lhs =>
  rw [← abs_mul_cos_add_sin_mul_I x, ← mul_assoc, ← ofReal_mul,
    arg_mul_cos_add_sin_mul_I (mul_pos hr (abs.pos hx)) x.arg_mem_Ioc]
state_before: case inr
a x✝ z x : ℂ
r : ℝ
hr : 0 < r
hx : x ≠ 0
⊢ (↑r * x).arg = x.arg
state_after: no goals

tactic: rw [mul_zero]
state_before: case inl
a x z : ℂ
r : ℝ
hr : 0 < r
⊢ (↑r * 0).arg = arg 0
state_after: no goals
Theorem: Mathlib.Meta.NormNum.IsRat.of_raw
File: Mathlib/Tactic/NormNum/Result.lean

tactic: simp [div_eq_mul_inv]
state_before: α : Type u_1
inst✝ : DivisionRing α
n : ℤ
d : ℕ
h : ↑d ≠ 0
this : Invertible ↑d
⊢ Rat.rawCast n d = ↑n * ⅟↑d
state_after: no goals
Theorem: hasDerivWithinAt_Iio_iff_Iic
File: Mathlib/Analysis/Calculus/Deriv/Basic.lean

tactic: rw [← Iic_diff_right, hasDerivWithinAt_diff_singleton]
state_before: 𝕜 : Type u
inst✝⁵ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
E : Type w
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
inst✝ : PartialOrder 𝕜
⊢ HasDerivWithinAt f f' (Iio x) x ↔ HasDerivWithinAt f f' (Iic x) x
state_after: no goals
Theorem: Finsupp.support_curry
File: Mathlib/Data/Finsupp/Basic.lean

tactic: rw [← Finset.biUnion_singleton]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝² : AddCommMonoid M
inst✝¹ : AddCommMonoid N
inst✝ : DecidableEq α
f : α × β →₀ M
⊢ f.curry.support ⊆ image Prod.fst f.support
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝² : AddCommMonoid M
inst✝¹ : AddCommMonoid N
inst✝ : DecidableEq α
f : α × β →₀ M
⊢ f.curry.support ⊆ f.support.biUnion fun a => {a.1}

tactic: refine Finset.Subset.trans support_sum ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝² : AddCommMonoid M
inst✝¹ : AddCommMonoid N
inst✝ : DecidableEq α
f : α × β →₀ M
⊢ f.curry.support ⊆ f.support.biUnion fun a => {a.1}
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝² : AddCommMonoid M
inst✝¹ : AddCommMonoid N
inst✝ : DecidableEq α
f : α × β →₀ M
⊢ (f.support.biUnion fun a => (single a.1 (single a.2 (f a))).support) ⊆ f.support.biUnion fun a => {a.1}

tactic: exact Finset.biUnion_mono fun a _ => support_single_subset
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝² : AddCommMonoid M
inst✝¹ : AddCommMonoid N
inst✝ : DecidableEq α
f : α × β →₀ M
⊢ (f.support.biUnion fun a => (single a.1 (single a.2 (f a))).support) ⊆ f.support.biUnion fun a => {a.1}
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.OpenCover.glued_cover_cocycle
File: Mathlib/AlgebraicGeometry/Gluing.lean

tactic: apply pullback.hom_ext <;> simp_rw [Category.id_comp, Category.assoc]
state_before: X : Scheme
𝒰 : X.OpenCover
x y z : 𝒰.J
⊢ 𝒰.gluedCoverT' x y z ≫ 𝒰.gluedCoverT' y z x ≫ 𝒰.gluedCoverT' z x y = 𝟙 (pullback pullback.fst pullback.fst)
state_after: case h₀
X : Scheme
𝒰 : X.OpenCover
x y z : 𝒰.J
⊢ 𝒰.gluedCoverT' x y z ≫ 𝒰.gluedCoverT' y z x ≫ 𝒰.gluedCoverT' z x y ≫ pullback.fst = pullback.fst

case h₁
X : Scheme
𝒰 : X.OpenCover
x y z : 𝒰.J
⊢ 𝒰.gluedCoverT' x y z ≫ 𝒰.gluedCoverT' y z x ≫ 𝒰.gluedCoverT' z x y ≫ pullback.snd = pullback.snd

tactic: apply glued_cover_cocycle_fst
state_before: case h₀
X : Scheme
𝒰 : X.OpenCover
x y z : 𝒰.J
⊢ 𝒰.gluedCoverT' x y z ≫ 𝒰.gluedCoverT' y z x ≫ 𝒰.gluedCoverT' z x y ≫ pullback.fst = pullback.fst
state_after: no goals

tactic: apply glued_cover_cocycle_snd
state_before: case h₁
X : Scheme
𝒰 : X.OpenCover
x y z : 𝒰.J
⊢ 𝒰.gluedCoverT' x y z ≫ 𝒰.gluedCoverT' y z x ≫ 𝒰.gluedCoverT' z x y ≫ pullback.snd = pullback.snd
state_after: no goals
Theorem: List.Nodup.diff_eq_filter
File: Mathlib/Data/List/Nodup.lean

tactic: simp
state_before: α : Type u
β : Type v
l l₁✝ l₂ : List α
r : α → α → Prop
a b : α
inst✝ : DecidableEq α
l₁ : List α
x✝ : l₁.Nodup
⊢ l₁.diff [] = List.filter (fun x => decide (x ∉ [])) l₁
state_after: no goals

tactic: rw [diff_cons, (hl₁.erase _).diff_eq_filter, hl₁.erase_eq_filter, filter_filter]
state_before: α : Type u
β : Type v
l l₁✝ l₂✝ : List α
r : α → α → Prop
a✝ b : α
inst✝ : DecidableEq α
l₁ : List α
a : α
l₂ : List α
hl₁ : l₁.Nodup
⊢ l₁.diff (a :: l₂) = List.filter (fun x => decide (x ∉ a :: l₂)) l₁
state_after: α : Type u
β : Type v
l l₁✝ l₂✝ : List α
r : α → α → Prop
a✝ b : α
inst✝ : DecidableEq α
l₁ : List α
a : α
l₂ : List α
hl₁ : l₁.Nodup
⊢ List.filter (fun a_1 => decide (decide (a_1 ∉ l₂) = true ∧ decide (a_1 ≠ a) = true)) l₁ =
    List.filter (fun x => decide (x ∉ a :: l₂)) l₁

tactic: simp only [decide_not, Bool.not_eq_true', decide_eq_false_iff_not, ne_eq, and_comm,
  Bool.decide_and, find?, mem_cons, not_or]
state_before: α : Type u
β : Type v
l l₁✝ l₂✝ : List α
r : α → α → Prop
a✝ b : α
inst✝ : DecidableEq α
l₁ : List α
a : α
l₂ : List α
hl₁ : l₁.Nodup
⊢ List.filter (fun a_1 => decide (decide (a_1 ∉ l₂) = true ∧ decide (a_1 ≠ a) = true)) l₁ =
    List.filter (fun x => decide (x ∉ a :: l₂)) l₁
state_after: no goals
Theorem: MeasureTheory.setLaverage_const
File: Mathlib/MeasureTheory/Integral/Average.lean

tactic: simp only [setLaverage_eq, lintegral_const, Measure.restrict_apply, MeasurableSet.univ,
  univ_inter, div_eq_mul_inv, mul_assoc, ENNReal.mul_inv_cancel hs₀ hs, mul_one]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ ν : Measure α
s t : Set α
f g : α → ℝ≥0∞
hs₀ : μ s ≠ 0
hs : μ s ≠ ⊤
c : ℝ≥0∞
⊢ ⨍⁻ (_x : α) in s, c ∂μ = c
state_after: no goals
Theorem: Interval.dual_map
File: Mathlib/Order/Interval/Basic.lean

tactic: cases s
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
κ : ι → Sort u_6
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α →o β
s : Interval α
⊢ dual (map f s) = map (OrderHom.dual f) (dual s)
state_after: case bot
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
κ : ι → Sort u_6
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α →o β
⊢ dual (map f ⊥) = map (OrderHom.dual f) (dual ⊥)

case coe
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
κ : ι → Sort u_6
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α →o β
a✝ : NonemptyInterval α
⊢ dual (map f ↑a✝) = map (OrderHom.dual f) (dual ↑a✝)

tactic: rfl
state_before: case bot
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
κ : ι → Sort u_6
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α →o β
⊢ dual (map f ⊥) = map (OrderHom.dual f) (dual ⊥)
state_after: no goals

tactic: exact WithBot.map_comm rfl _
state_before: case coe
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
κ : ι → Sort u_6
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α →o β
a✝ : NonemptyInterval α
⊢ dual (map f ↑a✝) = map (OrderHom.dual f) (dual ↑a✝)
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.FunctorsInverting.ext
File: Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean

tactic: cases F₁
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
F₁ F₂ : W.FunctorsInverting D
h : F₁.obj = F₂.obj
⊢ F₁ = F₂
state_after: case mk
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
F₂ : W.FunctorsInverting D
obj✝ : C ⥤ D
property✝ : W.IsInvertedBy obj✝
h : { obj := obj✝, property := property✝ }.obj = F₂.obj
⊢ { obj := obj✝, property := property✝ } = F₂

tactic: cases F₂
state_before: case mk
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
F₂ : W.FunctorsInverting D
obj✝ : C ⥤ D
property✝ : W.IsInvertedBy obj✝
h : { obj := obj✝, property := property✝ }.obj = F₂.obj
⊢ { obj := obj✝, property := property✝ } = F₂
state_after: case mk.mk
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
obj✝¹ : C ⥤ D
property✝¹ : W.IsInvertedBy obj✝¹
obj✝ : C ⥤ D
property✝ : W.IsInvertedBy obj✝
h : { obj := obj✝¹, property := property✝¹ }.obj = { obj := obj✝, property := property✝ }.obj
⊢ { obj := obj✝¹, property := property✝¹ } = { obj := obj✝, property := property✝ }

tactic: subst h
state_before: case mk.mk
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
obj✝¹ : C ⥤ D
property✝¹ : W.IsInvertedBy obj✝¹
obj✝ : C ⥤ D
property✝ : W.IsInvertedBy obj✝
h : { obj := obj✝¹, property := property✝¹ }.obj = { obj := obj✝, property := property✝ }.obj
⊢ { obj := obj✝¹, property := property✝¹ } = { obj := obj✝, property := property✝ }
state_after: case mk.mk
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
obj✝ : C ⥤ D
property✝¹ : W.IsInvertedBy obj✝
property✝ : W.IsInvertedBy { obj := obj✝, property := property✝¹ }.obj
⊢ { obj := obj✝, property := property✝¹ } =
    { obj := { obj := obj✝, property := property✝¹ }.obj, property := property✝ }

tactic: rfl
state_before: case mk.mk
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
obj✝ : C ⥤ D
property✝¹ : W.IsInvertedBy obj✝
property✝ : W.IsInvertedBy { obj := obj✝, property := property✝¹ }.obj
⊢ { obj := obj✝, property := property✝¹ } =
    { obj := { obj := obj✝, property := property✝¹ }.obj, property := property✝ }
state_after: no goals