1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ENNReal.ae_eq_zero_of_lintegral_rpow_eq_zero
File: Mathlib/MeasureTheory/Integral/MeanInequalities.lean

tactic: rw [lintegral_eq_zero_iff' (hf.pow_const p)] at hf_zero
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f μ
hf_zero : ∫⁻ (a : α), f a ^ p ∂μ = 0
⊢ f =ᶠ[ae μ] 0
state_after: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f μ
hf_zero : (fun x => f x ^ p) =ᶠ[ae μ] 0
⊢ f =ᶠ[ae μ] 0

tactic: filter_upwards [hf_zero] with x
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f μ
hf_zero : (fun x => f x ^ p) =ᶠ[ae μ] 0
⊢ f =ᶠ[ae μ] 0
state_after: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f μ
hf_zero : (fun x => f x ^ p) =ᶠ[ae μ] 0
x : α
⊢ f x ^ p = 0 x → f x = 0 x

tactic: rw [Pi.zero_apply, ← not_imp_not]
state_before: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f μ
hf_zero : (fun x => f x ^ p) =ᶠ[ae μ] 0
x : α
⊢ f x ^ p = 0 x → f x = 0 x
state_after: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f μ
hf_zero : (fun x => f x ^ p) =ᶠ[ae μ] 0
x : α
⊢ ¬f x = 0 → ¬f x ^ p = 0

tactic: exact fun hx => (rpow_pos_of_nonneg (pos_iff_ne_zero.2 hx) hp0).ne'
state_before: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f μ
hf_zero : (fun x => f x ^ p) =ᶠ[ae μ] 0
x : α
⊢ ¬f x = 0 → ¬f x ^ p = 0
state_after: no goals
Theorem: MeromorphicAt.neg_iff
File: Mathlib/Analysis/Analytic/Meromorphic.lean

tactic: simpa only [neg_neg] using h.neg
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
h : MeromorphicAt (-f) x
⊢ MeromorphicAt f x
state_after: no goals
Theorem: frontier_ball
File: Mathlib/Analysis/NormedSpace/Real.lean

tactic: rw [frontier, closure_ball x hr, isOpen_ball.interior_eq, closedBall_diff_ball]
state_before: E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
x : E
r : ℝ
hr : r ≠ 0
⊢ frontier (ball x r) = sphere x r
state_after: no goals
Theorem: Set.encard_eq_one
File: Mathlib/Data/Set/Card.lean

tactic: refine ⟨fun h ↦ ?_, fun ⟨x, hx⟩ ↦ by rw [hx, encard_singleton]⟩
state_before: α : Type u_1
β : Type u_2
s t : Set α
⊢ s.encard = 1 ↔ ∃ x, s = {x}
state_after: α : Type u_1
β : Type u_2
s t : Set α
h : s.encard = 1
⊢ ∃ x, s = {x}

tactic: obtain ⟨x, hx⟩ := nonempty_of_encard_ne_zero (s := s) (by rw [h]; simp)
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : s.encard = 1
⊢ ∃ x, s = {x}
state_after: case intro
α : Type u_1
β : Type u_2
s t : Set α
h : s.encard = 1
x : α
hx : x ∈ s
⊢ ∃ x, s = {x}

tactic: exact ⟨x, ((finite_singleton x).eq_of_subset_of_encard_le' (by simpa) (by simp [h])).symm⟩
state_before: case intro
α : Type u_1
β : Type u_2
s t : Set α
h : s.encard = 1
x : α
hx : x ∈ s
⊢ ∃ x, s = {x}
state_after: no goals

tactic: rw [hx, encard_singleton]
state_before: α : Type u_1
β : Type u_2
s t : Set α
x✝ : ∃ x, s = {x}
x : α
hx : s = {x}
⊢ s.encard = 1
state_after: no goals

tactic: rw [h]
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : s.encard = 1
⊢ s.encard ≠ 0
state_after: α : Type u_1
β : Type u_2
s t : Set α
h : s.encard = 1
⊢ 1 ≠ 0

tactic: simp
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : s.encard = 1
⊢ 1 ≠ 0
state_after: no goals

tactic: simpa
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : s.encard = 1
x : α
hx : x ∈ s
⊢ {x} ⊆ s
state_after: no goals

tactic: simp [h]
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : s.encard = 1
x : α
hx : x ∈ s
⊢ s.encard ≤ {x}.encard
state_after: no goals
Theorem: Finset.prod_subset_one_on_sdiff
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: rw [← prod_sdiff h, prod_eq_one hg, one_mul]
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 β
inst✝ : DecidableEq α
h : s₁ ⊆ s₂
hg : ∀ x ∈ s₂ \ s₁, g x = 1
hfg : ∀ x ∈ s₁, f x = g x
⊢ ∏ i ∈ s₁, f i = ∏ i ∈ s₂, g i
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 β
inst✝ : DecidableEq α
h : s₁ ⊆ s₂
hg : ∀ x ∈ s₂ \ s₁, g x = 1
hfg : ∀ x ∈ s₁, f x = g x
⊢ ∏ i ∈ s₁, f i = ∏ x ∈ s₁, g x

tactic: exact prod_congr rfl hfg
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 β
inst✝ : DecidableEq α
h : s₁ ⊆ s₂
hg : ∀ x ∈ s₂ \ s₁, g x = 1
hfg : ∀ x ∈ s₁, f x = g x
⊢ ∏ i ∈ s₁, f i = ∏ x ∈ s₁, g x
state_after: no goals
Theorem: Real.Angle.cos_toReal
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: conv_rhs => rw [← coe_toReal θ, cos_coe]
state_before: θ : Angle
⊢ Real.cos θ.toReal = θ.cos
state_after: no goals
Theorem: Matrix.dotProduct_sub
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp [sub_eq_add_neg]
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✝² : Fintype m
inst✝¹ : Fintype n
inst✝ : NonUnitalNonAssocRing α
u v w : m → α
⊢ u ⬝ᵥ (v - w) = u ⬝ᵥ v - u ⬝ᵥ w
state_after: no goals
Theorem: OrthogonalFamily.isInternal_iff_of_isComplete
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: haveI : CompleteSpace (↥(iSup V)) := hc.completeSpace_coe
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_4
inst✝ : DecidableEq ι
V : ι → Submodule 𝕜 E
hV : OrthogonalFamily 𝕜 (fun i => ↥(V i)) fun i => (V i).subtypeₗᵢ
hc : IsComplete ↑(iSup V)
⊢ DirectSum.IsInternal V ↔ (iSup V)ᗮ = ⊥
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_4
inst✝ : DecidableEq ι
V : ι → Submodule 𝕜 E
hV : OrthogonalFamily 𝕜 (fun i => ↥(V i)) fun i => (V i).subtypeₗᵢ
hc : IsComplete ↑(iSup V)
this : CompleteSpace ↥(iSup V)
⊢ DirectSum.IsInternal V ↔ (iSup V)ᗮ = ⊥

tactic: simp only [DirectSum.isInternal_submodule_iff_independent_and_iSup_eq_top, hV.independent,
  true_and_iff, Submodule.orthogonal_eq_bot_iff]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_4
inst✝ : DecidableEq ι
V : ι → Submodule 𝕜 E
hV : OrthogonalFamily 𝕜 (fun i => ↥(V i)) fun i => (V i).subtypeₗᵢ
hc : IsComplete ↑(iSup V)
this : CompleteSpace ↥(iSup V)
⊢ DirectSum.IsInternal V ↔ (iSup V)ᗮ = ⊥
state_after: no goals
Theorem: Filter.Eventually.curry_nhds
File: Mathlib/Topology/Constructions.lean

tactic: rw [nhds_prod_eq] at h
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
p : X × Y → Prop
x : X
y : Y
h : ∀ᶠ (x : X × Y) in 𝓝 (x, y), p x
⊢ ∀ᶠ (x' : X) in 𝓝 x, ∀ᶠ (y' : Y) in 𝓝 y, p (x', y')
state_after: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
p : X × Y → Prop
x : X
y : Y
h : ∀ᶠ (x : X × Y) in 𝓝 x ×ˢ 𝓝 y, p x
⊢ ∀ᶠ (x' : X) in 𝓝 x, ∀ᶠ (y' : Y) in 𝓝 y, p (x', y')

tactic: exact h.curry
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
p : X × Y → Prop
x : X
y : Y
h : ∀ᶠ (x : X × Y) in 𝓝 x ×ˢ 𝓝 y, p x
⊢ ∀ᶠ (x' : X) in 𝓝 x, ∀ᶠ (y' : Y) in 𝓝 y, p (x', y')
state_after: no goals
Theorem: ModuleCat.image.lift_fac
File: Mathlib/Algebra/Category/ModuleCat/Images.lean

tactic: ext x
state_before: R : Type u
inst✝ : Ring R
G H : ModuleCat R
f : G ⟶ H
F' : MonoFactorisation f
⊢ lift F' ≫ F'.m = ι f
state_after: case h
R : Type u
inst✝ : Ring R
G H : ModuleCat R
f : G ⟶ H
F' : MonoFactorisation f
x : ↑(image f)
⊢ (lift F' ≫ F'.m) x = (ι f) x

tactic: change (F'.e ≫ F'.m) _ = _
state_before: case h
R : Type u
inst✝ : Ring R
G H : ModuleCat R
f : G ⟶ H
F' : MonoFactorisation f
x : ↑(image f)
⊢ (lift F' ≫ F'.m) x = (ι f) x
state_after: case h
R : Type u
inst✝ : Ring R
G H : ModuleCat R
f : G ⟶ H
F' : MonoFactorisation f
x : ↑(image f)
⊢ (F'.e ≫ F'.m) ↑(Classical.indefiniteDescription (fun x_1 => f x_1 = ↑x) ⋯) = (ι f) x

tactic: rw [F'.fac, (Classical.indefiniteDescription _ x.2).2]
state_before: case h
R : Type u
inst✝ : Ring R
G H : ModuleCat R
f : G ⟶ H
F' : MonoFactorisation f
x : ↑(image f)
⊢ (F'.e ≫ F'.m) ↑(Classical.indefiniteDescription (fun x_1 => f x_1 = ↑x) ⋯) = (ι f) x
state_after: case h
R : Type u
inst✝ : Ring R
G H : ModuleCat R
f : G ⟶ H
F' : MonoFactorisation f
x : ↑(image f)
⊢ ↑x = (ι f) x

tactic: rfl
state_before: case h
R : Type u
inst✝ : Ring R
G H : ModuleCat R
f : G ⟶ H
F' : MonoFactorisation f
x : ↑(image f)
⊢ ↑x = (ι f) x
state_after: no goals
Theorem: nndist_le_pi_nndist
File: Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean

tactic: rw [← ENNReal.coe_le_coe, ← edist_nndist, ← edist_nndist]
state_before: α : Type u_1
β : Type u_2
inst✝² : PseudoMetricSpace α
π : β → Type u_3
inst✝¹ : Fintype β
inst✝ : (b : β) → PseudoMetricSpace (π b)
f g : (b : β) → π b
b : β
⊢ nndist (f b) (g b) ≤ nndist f g
state_after: α : Type u_1
β : Type u_2
inst✝² : PseudoMetricSpace α
π : β → Type u_3
inst✝¹ : Fintype β
inst✝ : (b : β) → PseudoMetricSpace (π b)
f g : (b : β) → π b
b : β
⊢ edist (f b) (g b) ≤ edist f g

tactic: exact edist_le_pi_edist f g b
state_before: α : Type u_1
β : Type u_2
inst✝² : PseudoMetricSpace α
π : β → Type u_3
inst✝¹ : Fintype β
inst✝ : (b : β) → PseudoMetricSpace (π b)
f g : (b : β) → π b
b : β
⊢ edist (f b) (g b) ≤ edist f g
state_after: no goals
Theorem: ZMod.natCast_self'
File: Mathlib/Data/ZMod/Basic.lean

tactic: rw [← Nat.cast_add_one, natCast_self (n + 1)]
state_before: n : ℕ
⊢ ↑n + 1 = 0
state_after: no goals
Theorem: Metric.mem_closure_range_iff_nat
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: simp only [mem_ball, dist_comm, exists_range_iff, forall_const]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ
s : Set α
e : β → α
a : α
⊢ (∀ (i : ℕ), True → ∃ y ∈ range e, y ∈ ball a (1 / (↑i + 1))) ↔ ∀ (n : ℕ), ∃ k, dist a (e k) < 1 / (↑n + 1)
state_after: no goals
Theorem: CategoryTheory.Limits.Multicoequalizer.ι_sigmaπ
File: Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean

tactic: rw [sigmaπ, ← Category.assoc, Iso.comp_inv_eq, isoCoequalizer]
state_before: C : Type u
inst✝³ : Category.{v, u} C
I : MultispanIndex C
inst✝² : HasMulticoequalizer I
inst✝¹ : HasCoproduct I.left
inst✝ : HasCoproduct I.right
b : I.R
⊢ Sigma.ι I.right b ≫ sigmaπ I = π I b
state_after: C : Type u
inst✝³ : Category.{v, u} C
I : MultispanIndex C
inst✝² : HasMulticoequalizer I
inst✝¹ : HasCoproduct I.left
inst✝ : HasCoproduct I.right
b : I.R
⊢ Sigma.ι I.right b ≫ coequalizer.π I.fstSigmaMap I.sndSigmaMap =
    π I b ≫
      (colimit.isoColimitCocone
          {
            cocone :=
              I.multicoforkEquivSigmaCofork.inverse.obj (colimit.cocone (parallelPair I.fstSigmaMap I.sndSigmaMap)),
            isColimit :=
              IsColimit.ofPreservesCoconeInitial I.multicoforkEquivSigmaCofork.inverse
                (colimit.isColimit (parallelPair I.fstSigmaMap I.sndSigmaMap)) }).hom

tactic: simp only [MultispanIndex.multicoforkEquivSigmaCofork_inverse,
  MultispanIndex.ofSigmaCoforkFunctor_obj, colimit.isoColimitCocone_ι_hom,
  Multicofork.ofSigmaCofork_pt, colimit.cocone_x, Multicofork.π_eq_app_right]
state_before: C : Type u
inst✝³ : Category.{v, u} C
I : MultispanIndex C
inst✝² : HasMulticoequalizer I
inst✝¹ : HasCoproduct I.left
inst✝ : HasCoproduct I.right
b : I.R
⊢ Sigma.ι I.right b ≫ coequalizer.π I.fstSigmaMap I.sndSigmaMap =
    π I b ≫
      (colimit.isoColimitCocone
          {
            cocone :=
              I.multicoforkEquivSigmaCofork.inverse.obj (colimit.cocone (parallelPair I.fstSigmaMap I.sndSigmaMap)),
            isColimit :=
              IsColimit.ofPreservesCoconeInitial I.multicoforkEquivSigmaCofork.inverse
                (colimit.isColimit (parallelPair I.fstSigmaMap I.sndSigmaMap)) }).hom
state_after: C : Type u
inst✝³ : Category.{v, u} C
I : MultispanIndex C
inst✝² : HasMulticoequalizer I
inst✝¹ : HasCoproduct I.left
inst✝ : HasCoproduct I.right
b : I.R
⊢ Sigma.ι I.right b ≫ coequalizer.π I.fstSigmaMap I.sndSigmaMap =
    (Multicofork.ofSigmaCofork I (colimit.cocone (parallelPair I.fstSigmaMap I.sndSigmaMap))).π b

tactic: rfl
state_before: C : Type u
inst✝³ : Category.{v, u} C
I : MultispanIndex C
inst✝² : HasMulticoequalizer I
inst✝¹ : HasCoproduct I.left
inst✝ : HasCoproduct I.right
b : I.R
⊢ Sigma.ι I.right b ≫ coequalizer.π I.fstSigmaMap I.sndSigmaMap =
    (Multicofork.ofSigmaCofork I (colimit.cocone (parallelPair I.fstSigmaMap I.sndSigmaMap))).π b
state_after: no goals
Theorem: Matroid.Indep.subset_basis_of_subset
File: Mathlib/Data/Matroid/Basic.lean

tactic: obtain ⟨J, ⟨(hJ : M.Indep J),hIJ,hJX⟩, hJmax⟩ := M.maximality X hX I hI hIX
state_before: α : Type u_1
M : Matroid α
I X : Set α
hI : M.Indep I
hIX : I ⊆ X
hX : autoParam (X ⊆ M.E) _auto✝
⊢ ∃ J, M.Basis J X ∧ I ⊆ J
state_after: case intro.intro.intro.intro
α : Type u_1
M : Matroid α
I X : Set α
hI : M.Indep I
hIX : I ⊆ X
hX : autoParam (X ⊆ M.E) _auto✝
J : Set α
hJmax : ∀ ⦃b : Set α⦄, b ∈ {Y | M.Indep Y ∧ I ⊆ Y ∧ Y ⊆ X} → (fun x x_1 => x ⊆ x_1) J b → (fun x x_1 => x ⊆ x_1) b J
hJ : M.Indep J
hIJ : I ⊆ J
hJX : J ⊆ X
⊢ ∃ J, M.Basis J X ∧ I ⊆ J

tactic: use J
state_before: case intro.intro.intro.intro
α : Type u_1
M : Matroid α
I X : Set α
hI : M.Indep I
hIX : I ⊆ X
hX : autoParam (X ⊆ M.E) _auto✝
J : Set α
hJmax : ∀ ⦃b : Set α⦄, b ∈ {Y | M.Indep Y ∧ I ⊆ Y ∧ Y ⊆ X} → (fun x x_1 => x ⊆ x_1) J b → (fun x x_1 => x ⊆ x_1) b J
hJ : M.Indep J
hIJ : I ⊆ J
hJX : J ⊆ X
⊢ ∃ J, M.Basis J X ∧ I ⊆ J
state_after: case h
α : Type u_1
M : Matroid α
I X : Set α
hI : M.Indep I
hIX : I ⊆ X
hX : autoParam (X ⊆ M.E) _auto✝
J : Set α
hJmax : ∀ ⦃b : Set α⦄, b ∈ {Y | M.Indep Y ∧ I ⊆ Y ∧ Y ⊆ X} → (fun x x_1 => x ⊆ x_1) J b → (fun x x_1 => x ⊆ x_1) b J
hJ : M.Indep J
hIJ : I ⊆ J
hJX : J ⊆ X
⊢ M.Basis J X ∧ I ⊆ J

tactic: rw [and_iff_left hIJ, basis_iff, and_iff_right hJ, and_iff_right hJX]
state_before: case h
α : Type u_1
M : Matroid α
I X : Set α
hI : M.Indep I
hIX : I ⊆ X
hX : autoParam (X ⊆ M.E) _auto✝
J : Set α
hJmax : ∀ ⦃b : Set α⦄, b ∈ {Y | M.Indep Y ∧ I ⊆ Y ∧ Y ⊆ X} → (fun x x_1 => x ⊆ x_1) J b → (fun x x_1 => x ⊆ x_1) b J
hJ : M.Indep J
hIJ : I ⊆ J
hJX : J ⊆ X
⊢ M.Basis J X ∧ I ⊆ J
state_after: case h
α : Type u_1
M : Matroid α
I X : Set α
hI : M.Indep I
hIX : I ⊆ X
hX : autoParam (X ⊆ M.E) _auto✝
J : Set α
hJmax : ∀ ⦃b : Set α⦄, b ∈ {Y | M.Indep Y ∧ I ⊆ Y ∧ Y ⊆ X} → (fun x x_1 => x ⊆ x_1) J b → (fun x x_1 => x ⊆ x_1) b J
hJ : M.Indep J
hIJ : I ⊆ J
hJX : J ⊆ X
⊢ ∀ (J_1 : Set α), M.Indep J_1 → J ⊆ J_1 → J_1 ⊆ X → J = J_1

tactic: exact fun K hK hJK hKX ↦ hJK.antisymm (hJmax ⟨hK, hIJ.trans hJK, hKX⟩ hJK)
state_before: case h
α : Type u_1
M : Matroid α
I X : Set α
hI : M.Indep I
hIX : I ⊆ X
hX : autoParam (X ⊆ M.E) _auto✝
J : Set α
hJmax : ∀ ⦃b : Set α⦄, b ∈ {Y | M.Indep Y ∧ I ⊆ Y ∧ Y ⊆ X} → (fun x x_1 => x ⊆ x_1) J b → (fun x x_1 => x ⊆ x_1) b J
hJ : M.Indep J
hIJ : I ⊆ J
hJX : J ⊆ X
⊢ ∀ (J_1 : Set α), M.Indep J_1 → J ⊆ J_1 → J_1 ⊆ X → J = J_1
state_after: no goals
Theorem: MeasureTheory.StronglyMeasurable.integral_kernel_prod_right'
File: Mathlib/Probability/Kernel/MeasurableIntegral.lean

tactic: rw [← uncurry_curry f] at hf
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
E : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : α × β → E
hf : StronglyMeasurable f
⊢ StronglyMeasurable fun x => ∫ (y : β), f (x, y) ∂κ x
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
E : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : α × β → E
hf : StronglyMeasurable (uncurry (Function.curry f))
⊢ StronglyMeasurable fun x => ∫ (y : β), f (x, y) ∂κ x

tactic: exact hf.integral_kernel_prod_right
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
E : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : α × β → E
hf : StronglyMeasurable (uncurry (Function.curry f))
⊢ StronglyMeasurable fun x => ∫ (y : β), f (x, y) ∂κ x
state_after: no goals
Theorem: List.rdrop_append_of_le_length
File: Mathlib/Data/List/DropRight.lean

tactic: intro hk
state_before: α : Type u_1
p : α → Bool
l : List α
n : ℕ
l₁ l₂ : List α
k : ℕ
⊢ k ≤ l₂.length → (l₁ ++ l₂).rdrop k = l₁ ++ l₂.rdrop k
state_after: α : Type u_1
p : α → Bool
l : List α
n : ℕ
l₁ l₂ : List α
k : ℕ
hk : k ≤ l₂.length
⊢ (l₁ ++ l₂).rdrop k = l₁ ++ l₂.rdrop k

tactic: rw [← length_reverse] at hk
state_before: α : Type u_1
p : α → Bool
l : List α
n : ℕ
l₁ l₂ : List α
k : ℕ
hk : k ≤ l₂.length
⊢ (l₁ ++ l₂).rdrop k = l₁ ++ l₂.rdrop k
state_after: α : Type u_1
p : α → Bool
l : List α
n : ℕ
l₁ l₂ : List α
k : ℕ
hk : k ≤ l₂.reverse.length
⊢ (l₁ ++ l₂).rdrop k = l₁ ++ l₂.rdrop k

tactic: rw [rdrop_eq_reverse_drop_reverse, reverse_append, drop_append_of_le_length hk,
  reverse_append, reverse_reverse, ← rdrop_eq_reverse_drop_reverse]
state_before: α : Type u_1
p : α → Bool
l : List α
n : ℕ
l₁ l₂ : List α
k : ℕ
hk : k ≤ l₂.reverse.length
⊢ (l₁ ++ l₂).rdrop k = l₁ ++ l₂.rdrop k
state_after: no goals
Theorem: InnerProductSpaceable.nat
File: Mathlib/Analysis/InnerProductSpace/OfNorm.lean

tactic: induction' n with n ih
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
n : ℕ
x y : E
⊢ inner_ 𝕜 (↑n • x) y = ↑n * inner_ 𝕜 x y
state_after: case zero
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y : E
⊢ inner_ 𝕜 (↑0 • x) y = ↑0 * inner_ 𝕜 x y

case succ
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y : E
n : ℕ
ih : inner_ 𝕜 (↑n • x) y = ↑n * inner_ 𝕜 x y
⊢ inner_ 𝕜 (↑(n + 1) • x) y = ↑(n + 1) * inner_ 𝕜 x y

tactic: simp only [inner_, Nat.zero_eq, zero_sub, Nat.cast_zero, zero_mul,
  eq_self_iff_true, zero_smul, zero_add, mul_zero, sub_self, norm_neg, smul_zero]
state_before: case zero
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y : E
⊢ inner_ 𝕜 (↑0 • x) y = ↑0 * inner_ 𝕜 x y
state_after: no goals

tactic: simp only [Nat.cast_succ, add_smul, one_smul]
state_before: case succ
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y : E
n : ℕ
ih : inner_ 𝕜 (↑n • x) y = ↑n * inner_ 𝕜 x y
⊢ inner_ 𝕜 (↑(n + 1) • x) y = ↑(n + 1) * inner_ 𝕜 x y
state_after: case succ
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y : E
n : ℕ
ih : inner_ 𝕜 (↑n • x) y = ↑n * inner_ 𝕜 x y
⊢ inner_ 𝕜 (↑n • x + x) y = (↑n + 1) * inner_ 𝕜 x y

tactic: rw [add_left, ih, add_mul, one_mul]
state_before: case succ
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y : E
n : ℕ
ih : inner_ 𝕜 (↑n • x) y = ↑n * inner_ 𝕜 x y
⊢ inner_ 𝕜 (↑n • x + x) y = (↑n + 1) * inner_ 𝕜 x y
state_after: no goals
Theorem: QuotientGroup.map_mk'_self
File: Mathlib/GroupTheory/QuotientGroup.lean

tactic: aesop
state_before: G : Type u
inst✝² : Group G
N : Subgroup G
nN : N.Normal
H : Type v
inst✝¹ : Group H
M : Type x
inst✝ : Monoid M
⊢ Subgroup.map (mk' N) N = ⊥
state_after: no goals
Theorem: ExteriorAlgebra.map_comp_ιMulti
File: Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean

tactic: ext m
state_before: R : Type u1
inst✝⁸ : CommRing R
M : Type u2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
A : Type u_1
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
N : Type u4
N' : Type u5
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : AddCommGroup N'
inst✝ : Module R N'
n : ℕ
f : M →ₗ[R] N
⊢ (map f).toLinearMap.compAlternatingMap (ιMulti R n) = (ιMulti R n).compLinearMap f
state_after: case H
R : Type u1
inst✝⁸ : CommRing R
M : Type u2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
A : Type u_1
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
N : Type u4
N' : Type u5
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : AddCommGroup N'
inst✝ : Module R N'
n : ℕ
f : M →ₗ[R] N
m : Fin n → M
⊢ ((map f).toLinearMap.compAlternatingMap (ιMulti R n)) m = ((ιMulti R n).compLinearMap f) m

tactic: exact map_apply_ιMulti _ _
state_before: case H
R : Type u1
inst✝⁸ : CommRing R
M : Type u2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
A : Type u_1
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
N : Type u4
N' : Type u5
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : AddCommGroup N'
inst✝ : Module R N'
n : ℕ
f : M →ₗ[R] N
m : Fin n → M
⊢ ((map f).toLinearMap.compAlternatingMap (ιMulti R n)) m = ((ιMulti R n).compLinearMap f) m
state_after: no goals
Theorem: Complex.range_abs
File: Mathlib/Data/Complex/Abs.lean

tactic: simp only [range_subset_iff, Ici, mem_setOf_eq, apply_nonneg, forall_const]
state_before: ⊢ range ⇑abs ⊆ Ici 0
state_after: no goals