1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Complex.norm_natCast_cpow_of_pos
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [norm_eq_abs, ← ofReal_natCast, abs_cpow_eq_rpow_re_of_pos (Nat.cast_pos.mpr hn) _]
state_before: n : ℕ
hn : 0 < n
s : ℂ
⊢ ‖↑n ^ s‖ = ↑n ^ s.re
state_after: no goals
Theorem: MeasureTheory.Measure.map_mono_of_aemeasurable
File: Mathlib/MeasureTheory/Measure/AEMeasurable.lean

tactic: simpa [hf, hs, hf.mono_measure h] using h (f ⁻¹' s)
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
R : Type u_6
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
f✝ g : α → β
μ ν : Measure α
f : α → δ
h : μ ≤ ν
hf : AEMeasurable f ν
s : Set δ
hs : MeasurableSet s
⊢ (map f μ) s ≤ (map f ν) s
state_after: no goals
Theorem: Filter.Tendsto.atTop_add
File: Mathlib/Topology/Order/LeftRightNhds.lean

tactic: conv in _ + _ => rw [add_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atTop
hg : Tendsto g l (𝓝 C)
⊢ Tendsto (fun x => f x + g x) l atTop
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atTop
hg : Tendsto g l (𝓝 C)
⊢ Tendsto (fun x => g x + f x) l atTop

tactic: exact hg.add_atTop hf
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atTop
hg : Tendsto g l (𝓝 C)
⊢ Tendsto (fun x => g x + f x) l atTop
state_after: no goals
Theorem: sbtw_vsub_const_iff
File: Mathlib/Analysis/Convex/Between.lean

tactic: rw [Sbtw, Sbtw, wbtw_vsub_const_iff, (vsub_left_injective p).ne_iff,
  (vsub_left_injective p).ne_iff]
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y z p : P
⊢ Sbtw R (x -ᵥ p) (y -ᵥ p) (z -ᵥ p) ↔ Sbtw R x y z
state_after: no goals
Theorem: Orientation.oangle_smul_right_of_neg
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: rw [← neg_neg r, neg_smul, ← smul_neg, o.oangle_smul_right_of_pos _ _ (neg_pos_of_neg hr)]
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
r : ℝ
hr : r < 0
⊢ o.oangle x (r • y) = o.oangle x (-y)
state_after: no goals
Theorem: SameRay.norm_add
File: Mathlib/Analysis/NormedSpace/Ray.lean

tactic: rcases h.exists_eq_smul with ⟨u, a, b, ha, hb, -, rfl, rfl⟩
state_before: E : Type u_1
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
x y : E
h : SameRay ℝ x y
⊢ ‖x + y‖ = ‖x‖ + ‖y‖
state_after: case intro.intro.intro.intro.intro.intro.intro
E : Type u_1
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
u : E
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
h : SameRay ℝ (a • u) (b • u)
⊢ ‖a • u + b • u‖ = ‖a • u‖ + ‖b • u‖

tactic: rw [← add_smul, norm_smul_of_nonneg (add_nonneg ha hb), norm_smul_of_nonneg ha,
  norm_smul_of_nonneg hb, add_mul]
state_before: case intro.intro.intro.intro.intro.intro.intro
E : Type u_1
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
u : E
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
h : SameRay ℝ (a • u) (b • u)
⊢ ‖a • u + b • u‖ = ‖a • u‖ + ‖b • u‖
state_after: no goals
Theorem: Polynomial.eraseLead_X_pow
File: Mathlib/Algebra/Polynomial/EraseLead.lean

tactic: rw [X_pow_eq_monomial, eraseLead_monomial]
state_before: R : Type u_1
inst✝ : Semiring R
f : R[X]
n : ℕ
⊢ (X ^ n).eraseLead = 0
state_after: no goals
Theorem: Real.rpow_mul_natCast
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [rpow_mul hx, rpow_natCast]
state_before: x y✝ z : ℝ
n✝ : ℕ
hx : 0 ≤ x
y : ℝ
n : ℕ
⊢ x ^ (y * ↑n) = (x ^ y) ^ n
state_after: no goals
Theorem: Real.cos_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: rw [Real.pi, mul_div_cancel_left₀ _ (two_ne_zero' ℝ)]
state_before: ⊢ cos (π / 2) = 0
state_after: ⊢ cos (Classical.choose exists_cos_eq_zero) = 0

tactic: exact (Classical.choose_spec exists_cos_eq_zero).2
state_before: ⊢ cos (Classical.choose exists_cos_eq_zero) = 0
state_after: no goals
Theorem: List.Pairwise.chain
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: let ⟨r, p'⟩ := pairwise_cons.1 p
state_before: α✝ : Type u_1
R : α✝ → α✝ → Prop
a : α✝
l : List α✝
p : Pairwise R (a :: l)
⊢ Chain R a l
state_after: α✝ : Type u_1
R : α✝ → α✝ → Prop
a : α✝
l : List α✝
p : Pairwise R (a :: l)
r : ∀ (a' : α✝), a' ∈ l → R a a'
p' : Pairwise R l
⊢ Chain R a l

tactic: clear p
state_before: α✝ : Type u_1
R : α✝ → α✝ → Prop
a : α✝
l : List α✝
p : Pairwise R (a :: l)
r : ∀ (a' : α✝), a' ∈ l → R a a'
p' : Pairwise R l
⊢ Chain R a l
state_after: α✝ : Type u_1
R : α✝ → α✝ → Prop
a : α✝
l : List α✝
r : ∀ (a' : α✝), a' ∈ l → R a a'
p' : Pairwise R l
⊢ Chain R a l

tactic: induction p' generalizing a with
| nil => exact Chain.nil
| @cons b l r' _ IH =>
  simp only [chain_cons, forall_mem_cons] at r
  exact chain_cons.2 ⟨r.1, IH r'⟩
state_before: α✝ : Type u_1
R : α✝ → α✝ → Prop
a : α✝
l : List α✝
r : ∀ (a' : α✝), a' ∈ l → R a a'
p' : Pairwise R l
⊢ Chain R a l
state_after: no goals

tactic: exact Chain.nil
state_before: case nil
α✝ : Type u_1
R : α✝ → α✝ → Prop
l : List α✝
a : α✝
r : ∀ (a' : α✝), a' ∈ [] → R a a'
⊢ Chain R a []
state_after: no goals

tactic: simp only [chain_cons, forall_mem_cons] at r
state_before: case cons
α✝ : Type u_1
R : α✝ → α✝ → Prop
l✝ : List α✝
b : α✝
l : List α✝
r' : ∀ (a' : α✝), a' ∈ l → R b a'
a✝ : Pairwise R l
IH : ∀ {a : α✝}, (∀ (a' : α✝), a' ∈ l → R a a') → Chain R a l
a : α✝
r : ∀ (a' : α✝), a' ∈ b :: l → R a a'
⊢ Chain R a (b :: l)
state_after: case cons
α✝ : Type u_1
R : α✝ → α✝ → Prop
l✝ : List α✝
b : α✝
l : List α✝
r' : ∀ (a' : α✝), a' ∈ l → R b a'
a✝ : Pairwise R l
IH : ∀ {a : α✝}, (∀ (a' : α✝), a' ∈ l → R a a') → Chain R a l
a : α✝
r : R a b ∧ ∀ (x : α✝), x ∈ l → R a x
⊢ Chain R a (b :: l)

tactic: exact chain_cons.2 ⟨r.1, IH r'⟩
state_before: case cons
α✝ : Type u_1
R : α✝ → α✝ → Prop
l✝ : List α✝
b : α✝
l : List α✝
r' : ∀ (a' : α✝), a' ∈ l → R b a'
a✝ : Pairwise R l
IH : ∀ {a : α✝}, (∀ (a' : α✝), a' ∈ l → R a a') → Chain R a l
a : α✝
r : R a b ∧ ∀ (x : α✝), x ∈ l → R a x
⊢ Chain R a (b :: l)
state_after: no goals
Theorem: Surreal.dyadicMap_apply_pow'
File: Mathlib/SetTheory/Surreal/Dyadic.lean

tactic: rw [@Submonoid.log_pow_int_eq_self 2 one_lt_two]
state_before: m : ℤ
n : ℕ
⊢ ↑m * powHalf (Submonoid.log (Submonoid.pow 2 n)) = ↑m * powHalf n
state_after: no goals
Theorem: SchwartzMap.norm_le_seminorm
File: Mathlib/Analysis/Distribution/SchwartzSpace.lean

tactic: have := norm_pow_mul_le_seminorm 𝕜 f 0 x₀
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
D : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
V : Type u_7
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedField 𝕜
inst✝¹ : NormedSpace 𝕜 F
inst✝ : SMulCommClass ℝ 𝕜 F
f : 𝓢(E, F)
x₀ : E
⊢ ‖f x₀‖ ≤ (SchwartzMap.seminorm 𝕜 0 0) f
state_after: 𝕜 : Type u_1
𝕜' : Type u_2
D : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
V : Type u_7
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedField 𝕜
inst✝¹ : NormedSpace 𝕜 F
inst✝ : SMulCommClass ℝ 𝕜 F
f : 𝓢(E, F)
x₀ : E
this : ‖x₀‖ ^ 0 * ‖f x₀‖ ≤ (SchwartzMap.seminorm 𝕜 0 0) f
⊢ ‖f x₀‖ ≤ (SchwartzMap.seminorm 𝕜 0 0) f

tactic: rwa [pow_zero, one_mul] at this
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
D : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
V : Type u_7
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedField 𝕜
inst✝¹ : NormedSpace 𝕜 F
inst✝ : SMulCommClass ℝ 𝕜 F
f : 𝓢(E, F)
x₀ : E
this : ‖x₀‖ ^ 0 * ‖f x₀‖ ≤ (SchwartzMap.seminorm 𝕜 0 0) f
⊢ ‖f x₀‖ ≤ (SchwartzMap.seminorm 𝕜 0 0) f
state_after: no goals
Theorem: ProbabilityTheory.gaussianPDFReal_mul
File: Mathlib/Probability/Distributions/Gaussian.lean

tactic: conv_lhs => rw [← inv_inv c, gaussianPDFReal_inv_mul (inv_ne_zero hc)]
state_before: μ : ℝ
v : ℝ≥0
c : ℝ
hc : c ≠ 0
x : ℝ
⊢ gaussianPDFReal μ v (c * x) = |c⁻¹| * gaussianPDFReal (c⁻¹ * μ) (⟨(c ^ 2)⁻¹, ⋯⟩ * v) x
state_after: μ : ℝ
v : ℝ≥0
c : ℝ
hc : c ≠ 0
x : ℝ
⊢ |c⁻¹| * gaussianPDFReal (c⁻¹ * μ) (⟨c⁻¹ ^ 2, ⋯⟩ * v) x = |c⁻¹| * gaussianPDFReal (c⁻¹ * μ) (⟨(c ^ 2)⁻¹, ⋯⟩ * v) x

tactic: simp
state_before: μ : ℝ
v : ℝ≥0
c : ℝ
hc : c ≠ 0
x : ℝ
⊢ |c⁻¹| * gaussianPDFReal (c⁻¹ * μ) (⟨c⁻¹ ^ 2, ⋯⟩ * v) x = |c⁻¹| * gaussianPDFReal (c⁻¹ * μ) (⟨(c ^ 2)⁻¹, ⋯⟩ * v) x
state_after: no goals
Theorem: Finset.prod_subtype_eq_prod_filter
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: conv_lhs => erw [← prod_map (s.subtype p) (Function.Embedding.subtype _) f]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
f : α → β
p : α → Prop
inst✝ : DecidablePred p
⊢ ∏ x ∈ Finset.subtype p s, f ↑x = ∏ x ∈ filter p s, f x
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
f : α → β
p : α → Prop
inst✝ : DecidablePred p
⊢ ∏ x ∈ map (Embedding.subtype p) (Finset.subtype p s), f x = ∏ x ∈ filter p s, f x

tactic: exact prod_congr (subtype_map _) fun x _hx => rfl
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
f : α → β
p : α → Prop
inst✝ : DecidablePred p
⊢ ∏ x ∈ map (Embedding.subtype p) (Finset.subtype p s), f x = ∏ x ∈ filter p s, f x
state_after: no goals
Theorem: CategoryTheory.Functor.Full.of_iso
File: Mathlib/CategoryTheory/Functor/FullyFaithful.lean

tactic: simp [← NatIso.naturality_1 α]
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
E : Type u₃
inst✝¹ : Category.{v₃, u₃} E
F F' : C ⥤ D
G : D ⥤ E
inst✝ : F.Full
α : F ≅ F'
X Y : C
f : F'.obj X ⟶ F'.obj Y
⊢ F'.map (F.preimage ((α.app X).hom ≫ f ≫ (α.app Y).inv)) = f
state_after: no goals
Theorem: Fin.Ioi_zero_eq_map
File: Mathlib/Data/Fintype/Fin.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
n : ℕ
⊢ ↑(Ioi 0) = ↑(map (succEmb n) univ)
state_after: case h
α : Type u_1
β : Type u_2
n : ℕ
x✝ : Fin n.succ
⊢ x✝ ∈ ↑(Ioi 0) ↔ x✝ ∈ ↑(map (succEmb n) univ)

tactic: simp [pos_iff_ne_zero]
state_before: case h
α : Type u_1
β : Type u_2
n : ℕ
x✝ : Fin n.succ
⊢ x✝ ∈ ↑(Ioi 0) ↔ x✝ ∈ ↑(map (succEmb n) univ)
state_after: no goals
Theorem: WeierstrassCurve.Affine.baseChange_addPolynomial
File: Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean

tactic: rw [← map_addPolynomial, map_baseChange]
state_before: R✝ : Type u
inst✝¹¹ : CommRing R✝
W✝ : Affine R✝
R : Type r
inst✝¹⁰ : CommRing R
W : Affine R
S : Type s
inst✝⁹ : CommRing S
inst✝⁸ : Algebra R S
A : Type u
inst✝⁷ : CommRing A
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra S A
inst✝⁴ : IsScalarTower R S A
B : Type v
inst✝³ : CommRing B
inst✝² : Algebra R B
inst✝¹ : Algebra S B
inst✝ : IsScalarTower R S B
f : A →ₐ[S] B
x y L : A
⊢ (baseChange W B).toAffine.addPolynomial (f x) (f y) (f L) =
    Polynomial.map (↑f) ((baseChange W A).toAffine.addPolynomial x y L)
state_after: R✝ : Type u
inst✝¹¹ : CommRing R✝
W✝ : Affine R✝
R : Type r
inst✝¹⁰ : CommRing R
W : Affine R
S : Type s
inst✝⁹ : CommRing S
inst✝⁸ : Algebra R S
A : Type u
inst✝⁷ : CommRing A
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra S A
inst✝⁴ : IsScalarTower R S A
B : Type v
inst✝³ : CommRing B
inst✝² : Algebra R B
inst✝¹ : Algebra S B
inst✝ : IsScalarTower R S B
f : A →ₐ[S] B
x y L : A
⊢ (baseChange W B).toAffine.addPolynomial (f x) (f y) (f L) =
    (baseChange W B).toAffine.addPolynomial (↑f x) (↑f y) (↑f L)

tactic: rfl
state_before: R✝ : Type u
inst✝¹¹ : CommRing R✝
W✝ : Affine R✝
R : Type r
inst✝¹⁰ : CommRing R
W : Affine R
S : Type s
inst✝⁹ : CommRing S
inst✝⁸ : Algebra R S
A : Type u
inst✝⁷ : CommRing A
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra S A
inst✝⁴ : IsScalarTower R S A
B : Type v
inst✝³ : CommRing B
inst✝² : Algebra R B
inst✝¹ : Algebra S B
inst✝ : IsScalarTower R S B
f : A →ₐ[S] B
x y L : A
⊢ (baseChange W B).toAffine.addPolynomial (f x) (f y) (f L) =
    (baseChange W B).toAffine.addPolynomial (↑f x) (↑f y) (↑f L)
state_after: no goals
Theorem: Function.Involutive.iterate_eq_self
File: Mathlib/Algebra/Ring/Parity.lean

tactic: rwa [hf.iterate_even hn, eq_comm] at H
state_before: F : Type u_1
α✝ : Type u_2
β : Type u_3
R : Type u_4
α : Type u_5
f : α → α
n : ℕ
hf : Involutive f
hne : f ≠ id
H : f^[n] = f
hn : Even n
⊢ f = id
state_after: no goals
Theorem: RatFunc.liftOn_div
File: Mathlib/FieldTheory/RatFunc/Basic.lean

tactic: rw [← mk_eq_div, liftOn_mk _ _ f f0 @H']
state_before: K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
P : Sort v
p q : K[X]
f : K[X] → K[X] → P
f0 : ∀ (p : K[X]), f p 0 = f 0 1
H' : ∀ {p q p' q' : K[X]}, q ≠ 0 → q' ≠ 0 → q' * p = q * p' → f p q = f p' q'
H : optParam (∀ {p q p' q' : K[X]}, q ∈ K[X]⁰ → q' ∈ K[X]⁰ → q' * p = q * p' → f p q = f p' q') ⋯
⊢ ((algebraMap K[X] (RatFunc K)) p / (algebraMap K[X] (RatFunc K)) q).liftOn f H = f p q
state_after: no goals
Theorem: Ideal.mul_sup_eq_of_coprime_left
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: rw [sup_comm] at h
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
h : I ⊔ J = ⊤
⊢ I * K ⊔ J = K ⊔ J
state_after: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
h : J ⊔ I = ⊤
⊢ I * K ⊔ J = K ⊔ J

tactic: rw [sup_comm, sup_mul_eq_of_coprime_left h, sup_comm]
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
h : J ⊔ I = ⊤
⊢ I * K ⊔ J = K ⊔ J
state_after: no goals
Theorem: SetTheory.PGame.birthday_natCast
File: Mathlib/SetTheory/Game/Birthday.lean

tactic: simp [birthday_natCast]
state_before: a b x : PGame
n : ℕ
⊢ (↑(n + 1)).birthday = ↑(n + 1)
state_after: no goals
Theorem: CategoryTheory.tensorLeftHomEquiv_tensor
File: Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean

tactic: simp [tensorLeftHomEquiv, tensorHom_def']
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
X X' Y Y' Z Z' : C
inst✝ : ExactPairing Y Y'
f : X ⟶ Y ⊗ Z
g : X' ⟶ Z'
⊢ (tensorLeftHomEquiv (X ⊗ X') Y Y' (Z ⊗ Z')).symm ((f ⊗ g) ≫ (α_ Y Z Z').hom) =
    (α_ Y' X X').inv ≫ ((tensorLeftHomEquiv X Y Y' Z).symm f ⊗ g)
state_after: no goals
Theorem: MeasureTheory.Measure.apply_eq_zero_of_isEmpty
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [eq_empty_of_isEmpty s, measure_empty]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : IsEmpty α
x✝ : MeasurableSpace α
μ : Measure α
s : Set α
⊢ μ s = 0
state_after: no goals
Theorem: AffineSubspace.isPreconnected_setOf_wOppSide
File: Mathlib/Analysis/Convex/Side.lean

tactic: rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : SeminormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
x : P
⊢ IsPreconnected {y | s.WOppSide x y}
state_after: case inl
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : SeminormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
x : P
h : ↑s = ∅
⊢ IsPreconnected {y | s.WOppSide x y}

case inr
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : SeminormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
x : P
h : (↑s).Nonempty
⊢ IsPreconnected {y | s.WOppSide x y}

tactic: rw [coe_eq_bot_iff] at h
state_before: case inl
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : SeminormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
x : P
h : ↑s = ∅
⊢ IsPreconnected {y | s.WOppSide x y}
state_after: case inl
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : SeminormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
x : P
h : s = ⊥
⊢ IsPreconnected {y | s.WOppSide x y}

tactic: simp only [h, not_wOppSide_bot]
state_before: case inl
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : SeminormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
x : P
h : s = ⊥
⊢ IsPreconnected {y | s.WOppSide x y}
state_after: case inl
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : SeminormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
x : P
h : s = ⊥
⊢ IsPreconnected {y | False}

tactic: exact isPreconnected_empty
state_before: case inl
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : SeminormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
x : P
h : s = ⊥
⊢ IsPreconnected {y | False}
state_after: no goals

tactic: exact (isConnected_setOf_wOppSide x h).isPreconnected
state_before: case inr
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : SeminormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
x : P
h : (↑s).Nonempty
⊢ IsPreconnected {y | s.WOppSide x y}
state_after: no goals
Theorem: CategoryTheory.Functor.hasZeroObject_of_additive
File: Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean

tactic: rw [IsZero.iff_id_eq_zero, ← F.map_id, id_zero, F.map_zero]
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁷ : Category.{u_4, u_1} C
inst✝⁶ : Category.{u_5, u_2} D
inst✝⁵ : Category.{?u.32413, u_3} E
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
inst✝² : Preadditive E
F : C ⥤ D
inst✝¹ : F.Additive
inst✝ : HasZeroObject C
⊢ IsZero (F.obj 0)
state_after: no goals
Theorem: List.Ico.filter_le_of_bot
File: Mathlib/Data/List/Intervals.lean

tactic: rw [← filter_lt_of_succ_bot hnm]
state_before: n m : ℕ
hnm : n < m
⊢ filter (fun x => decide (x ≤ n)) (Ico n m) = [n]
state_after: n m : ℕ
hnm : n < m
⊢ filter (fun x => decide (x ≤ n)) (Ico n m) = filter (fun x => decide (x < n + 1)) (Ico n m)

tactic: exact filter_congr fun _ _ => by
  simpa using Nat.lt_succ_iff.symm
state_before: n m : ℕ
hnm : n < m
⊢ filter (fun x => decide (x ≤ n)) (Ico n m) = filter (fun x => decide (x < n + 1)) (Ico n m)
state_after: no goals

tactic: simpa using Nat.lt_succ_iff.symm
state_before: n m : ℕ
hnm : n < m
x✝¹ : ℕ
x✝ : x✝¹ ∈ Ico n m
⊢ decide (x✝¹ ≤ n) = decide (x✝¹ < n + 1)
state_after: no goals
Theorem: LinearMap.BilinForm.orthogonal_bot
File: Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean

tactic: ext
state_before: R : Type u_1
M : Type u_2
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁵ : CommRing R₁
inst✝⁴ : AddCommGroup M₁
inst✝³ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
B : BilinForm R M
B₁ : BilinForm R₁ M₁
N L : Submodule R M
⊢ B.orthogonal ⊥ = ⊤
state_after: case h
R : Type u_1
M : Type u_2
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁵ : CommRing R₁
inst✝⁴ : AddCommGroup M₁
inst✝³ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
B : BilinForm R M
B₁ : BilinForm R₁ M₁
N L : Submodule R M
x✝ : M
⊢ x✝ ∈ B.orthogonal ⊥ ↔ x✝ ∈ ⊤

tactic: simp [IsOrtho]
state_before: case h
R : Type u_1
M : Type u_2
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁵ : CommRing R₁
inst✝⁴ : AddCommGroup M₁
inst✝³ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
B : BilinForm R M
B₁ : BilinForm R₁ M₁
N L : Submodule R M
x✝ : M
⊢ x✝ ∈ B.orthogonal ⊥ ↔ x✝ ∈ ⊤
state_after: no goals
Theorem: Matrix.vecMul_add
File: Mathlib/Data/Matrix/Basic.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝¹ : NonUnitalNonAssocSemiring α
inst✝ : Fintype m
A B : Matrix m n α
x : m → α
⊢ x ᵥ* (A + B) = x ᵥ* A + x ᵥ* B
state_after: case h
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝¹ : NonUnitalNonAssocSemiring α
inst✝ : Fintype m
A B : Matrix m n α
x : m → α
x✝ : n
⊢ (x ᵥ* (A + B)) x✝ = (x ᵥ* A + x ᵥ* B) x✝

tactic: apply dotProduct_add
state_before: case h
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝¹ : NonUnitalNonAssocSemiring α
inst✝ : Fintype m
A B : Matrix m n α
x : m → α
x✝ : n
⊢ (x ᵥ* (A + B)) x✝ = (x ᵥ* A + x ᵥ* B) x✝
state_after: no goals