1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: NNReal.indicator_summable
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: refine NNReal.summable_of_le (fun a => le_trans (le_of_eq (s.indicator_apply f a)) ?_) hf
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → ℝ≥0
hf : Summable f
s : Set α
⊢ Summable (s.indicator f)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → ℝ≥0
hf : Summable f
s : Set α
a : α
⊢ (if a ∈ s then f a else 0) ≤ f a

tactic: split_ifs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → ℝ≥0
hf : Summable f
s : Set α
a : α
⊢ (if a ∈ s then f a else 0) ≤ f a
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
f : α → ℝ≥0
hf : Summable f
s : Set α
a : α
h✝ : a ∈ s
⊢ f a ≤ f a

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
f : α → ℝ≥0
hf : Summable f
s : Set α
a : α
h✝ : a ∉ s
⊢ 0 ≤ f a

tactic: exact le_refl (f a)
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
f : α → ℝ≥0
hf : Summable f
s : Set α
a : α
h✝ : a ∈ s
⊢ f a ≤ f a
state_after: no goals

tactic: exact zero_le_coe
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
f : α → ℝ≥0
hf : Summable f
s : Set α
a : α
h✝ : a ∉ s
⊢ 0 ≤ f a
state_after: no goals
Theorem: IsStrongAntichain.image
File: Mathlib/Order/Antichain.lean

tactic: rintro _ ⟨a, ha, rfl⟩ _ ⟨b, hb, rfl⟩ hab c
state_before: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a b : α
hs : IsStrongAntichain r s
f : α → β
hf : Surjective f
h : ∀ (a b : α), r' (f a) (f b) → r a b
⊢ IsStrongAntichain r' (f '' s)
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
hs : IsStrongAntichain r s
f : α → β
hf : Surjective f
h : ∀ (a b : α), r' (f a) (f b) → r a b
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : f a ≠ f b
c : β
⊢ ¬r' (f a) c ∨ ¬r' (f b) c

tactic: obtain ⟨c, rfl⟩ := hf c
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
hs : IsStrongAntichain r s
f : α → β
hf : Surjective f
h : ∀ (a b : α), r' (f a) (f b) → r a b
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : f a ≠ f b
c : β
⊢ ¬r' (f a) c ∨ ¬r' (f b) c
state_after: case intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
hs : IsStrongAntichain r s
f : α → β
hf : Surjective f
h : ∀ (a b : α), r' (f a) (f b) → r a b
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : f a ≠ f b
c : α
⊢ ¬r' (f a) (f c) ∨ ¬r' (f b) (f c)

tactic: exact (hs ha hb (ne_of_apply_ne _ hab) _).imp (mt <| h _ _) (mt <| h _ _)
state_before: case intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
hs : IsStrongAntichain r s
f : α → β
hf : Surjective f
h : ∀ (a b : α), r' (f a) (f b) → r a b
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : f a ≠ f b
c : α
⊢ ¬r' (f a) (f c) ∨ ¬r' (f b) (f c)
state_after: no goals
Theorem: Batteries.UnionFind.rootD_ext
File: .lake/packages/batteries/Batteries/Data/UnionFind/Basic.lean

tactic: if h : m2.parent x = x then
  rw [rootD_eq_self.2 h, rootD_eq_self.2 ((H _).trans h)]
else
  have := Nat.sub_lt_sub_left (m2.lt_rankMax x) (m2.rank_lt h)
  rw [← rootD_parent, H, rootD_ext H, rootD_parent]
state_before: m1 m2 : UnionFind
H : ∀ (x : Nat), m1.parent x = m2.parent x
x : Nat
⊢ m1.rootD x = m2.rootD x
state_after: no goals

tactic: rw [rootD_eq_self.2 h, rootD_eq_self.2 ((H _).trans h)]
state_before: m1 m2 : UnionFind
H : ∀ (x : Nat), m1.parent x = m2.parent x
x : Nat
h : m2.parent x = x
⊢ m1.rootD x = m2.rootD x
state_after: no goals

tactic: have := Nat.sub_lt_sub_left (m2.lt_rankMax x) (m2.rank_lt h)
state_before: m1 m2 : UnionFind
H : ∀ (x : Nat), m1.parent x = m2.parent x
x : Nat
h : ¬m2.parent x = x
⊢ m1.rootD x = m2.rootD x
state_after: m1 m2 : UnionFind
H : ∀ (x : Nat), m1.parent x = m2.parent x
x : Nat
h : ¬m2.parent x = x
this : m2.rankMax - m2.rank (m2.parent x) < m2.rankMax - m2.rank x
⊢ m1.rootD x = m2.rootD x

tactic: rw [← rootD_parent, H, rootD_ext H, rootD_parent]
state_before: m1 m2 : UnionFind
H : ∀ (x : Nat), m1.parent x = m2.parent x
x : Nat
h : ¬m2.parent x = x
this : m2.rankMax - m2.rank (m2.parent x) < m2.rankMax - m2.rank x
⊢ m1.rootD x = m2.rootD x
state_after: no goals
Theorem: CategoryTheory.ComposableArrows.isComplex_of_iso
File: Mathlib/Algebra/Homology/ExactSequence.lean

tactic: rw [← cancel_epi (ComposableArrows.app' e.hom i), comp_zero,
  ← NatTrans.naturality_assoc, ← NatTrans.naturality,
  reassoc_of% (h₁.zero i hi), zero_comp]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
n : ℕ
S S₁ S₂ : ComposableArrows C n
e : S₁ ≅ S₂
h₁ : S₁.IsComplex
i : ℕ
hi : autoParam (i + 2 ≤ n) _auto✝
⊢ S₂.map' i (i + 1) ⋯ ⋯ ≫ S₂.map' (i + 1) (i + 2) ⋯ hi = 0
state_after: no goals
Theorem: equicontinuousAt_iff_continuousAt
File: Mathlib/Topology/UniformSpace/Equicontinuity.lean

tactic: rw [ContinuousAt, (UniformFun.hasBasis_nhds ι α _).tendsto_right_iff]
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
F : ι → X → α
x₀ : X
⊢ EquicontinuousAt F x₀ ↔ ContinuousAt (⇑UniformFun.ofFun ∘ swap F) x₀
state_after: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
F : ι → X → α
x₀ : X
⊢ EquicontinuousAt F x₀ ↔
    ∀ i ∈ 𝓤 α,
      ∀ᶠ (x : X) in 𝓝 x₀,
        (⇑UniformFun.ofFun ∘ swap F) x ∈ {g | ((⇑UniformFun.ofFun ∘ swap F) x₀, g) ∈ UniformFun.gen ι α i}

tactic: rfl
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
F : ι → X → α
x₀ : X
⊢ EquicontinuousAt F x₀ ↔
    ∀ i ∈ 𝓤 α,
      ∀ᶠ (x : X) in 𝓝 x₀,
        (⇑UniformFun.ofFun ∘ swap F) x ∈ {g | ((⇑UniformFun.ofFun ∘ swap F) x₀, g) ∈ UniformFun.gen ι α i}
state_after: no goals
Theorem: Set.image_compl_preimage
File: Mathlib/Data/Set/Image.lean

tactic: rw [compl_eq_univ_diff, image_diff_preimage, image_univ]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s✝ t : Set α
f : α → β
s : Set β
⊢ f '' (f ⁻¹' s)ᶜ = range f \ s
state_after: no goals
Theorem: matPolyEquiv_map_smul
File: Mathlib/RingTheory/PolynomialAlgebra.lean

tactic: rw [← one_mul M, ← smul_mul_assoc, _root_.map_mul, matPolyEquiv_smul_one, one_mul]
state_before: R : Type u_1
A : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
n : Type w
inst✝¹ : DecidableEq n
inst✝ : Fintype n
p : R[X]
M : Matrix n n R[X]
⊢ matPolyEquiv (p • M) = Polynomial.map (algebraMap R (Matrix n n R)) p * matPolyEquiv M
state_after: no goals
Theorem: PartitionOfUnity.mem_finsupport
File: Mathlib/Topology/PartitionOfUnity.lean

tactic: simp only [finsupport, mem_support, Finite.mem_toFinset, mem_setOf_eq]
state_before: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀✝ x₀ : X
i : ι
⊢ i ∈ ρ.finsupport x₀ ↔ i ∈ support fun i => (ρ i) x₀
state_after: no goals
Theorem: MvPowerSeries.mul_assoc
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: ext1 n
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n : σ →₀ ℕ
φ ψ φ₁ φ₂ φ₃ : MvPowerSeries σ R
⊢ φ₁ * φ₂ * φ₃ = φ₁ * (φ₂ * φ₃)
state_after: case h
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n✝ : σ →₀ ℕ
φ ψ φ₁ φ₂ φ₃ : MvPowerSeries σ R
n : σ →₀ ℕ
⊢ (coeff R n) (φ₁ * φ₂ * φ₃) = (coeff R n) (φ₁ * (φ₂ * φ₃))

tactic: classical
simp only [coeff_mul, Finset.sum_mul, Finset.mul_sum, Finset.sum_sigma']
apply Finset.sum_nbij' (fun ⟨⟨_i, j⟩, ⟨k, l⟩⟩ ↦ ⟨(k, l + j), (l, j)⟩)
  (fun ⟨⟨i, _j⟩, ⟨k, l⟩⟩ ↦ ⟨(i + k, l), (i, k)⟩) <;> aesop (add simp [add_assoc, mul_assoc])
state_before: case h
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n✝ : σ →₀ ℕ
φ ψ φ₁ φ₂ φ₃ : MvPowerSeries σ R
n : σ →₀ ℕ
⊢ (coeff R n) (φ₁ * φ₂ * φ₃) = (coeff R n) (φ₁ * (φ₂ * φ₃))
state_after: no goals

tactic: simp only [coeff_mul, Finset.sum_mul, Finset.mul_sum, Finset.sum_sigma']
state_before: case h
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n✝ : σ →₀ ℕ
φ ψ φ₁ φ₂ φ₃ : MvPowerSeries σ R
n : σ →₀ ℕ
⊢ (coeff R n) (φ₁ * φ₂ * φ₃) = (coeff R n) (φ₁ * (φ₂ * φ₃))
state_after: case h
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n✝ : σ →₀ ℕ
φ ψ φ₁ φ₂ φ₃ : MvPowerSeries σ R
n : σ →₀ ℕ
⊢ ∑ x ∈ (antidiagonal n).sigma fun a => antidiagonal a.1,
      (coeff R x.snd.1) φ₁ * (coeff R x.snd.2) φ₂ * (coeff R x.fst.2) φ₃ =
    ∑ x ∈ (antidiagonal n).sigma fun a => antidiagonal a.2,
      (coeff R x.fst.1) φ₁ * ((coeff R x.snd.1) φ₂ * (coeff R x.snd.2) φ₃)

tactic: apply Finset.sum_nbij' (fun ⟨⟨_i, j⟩, ⟨k, l⟩⟩ ↦ ⟨(k, l + j), (l, j)⟩)
  (fun ⟨⟨i, _j⟩, ⟨k, l⟩⟩ ↦ ⟨(i + k, l), (i, k)⟩) <;> aesop (add simp [add_assoc, mul_assoc])
state_before: case h
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n✝ : σ →₀ ℕ
φ ψ φ₁ φ₂ φ₃ : MvPowerSeries σ R
n : σ →₀ ℕ
⊢ ∑ x ∈ (antidiagonal n).sigma fun a => antidiagonal a.1,
      (coeff R x.snd.1) φ₁ * (coeff R x.snd.2) φ₂ * (coeff R x.fst.2) φ₃ =
    ∑ x ∈ (antidiagonal n).sigma fun a => antidiagonal a.2,
      (coeff R x.fst.1) φ₁ * ((coeff R x.snd.1) φ₂ * (coeff R x.snd.2) φ₃)
state_after: no goals
Theorem: exists_Icc_mem_subset_of_mem_nhdsWithin_Iic
File: Mathlib/Topology/Order/Basic.lean

tactic: simpa only [dual_Icc, toDual.surjective.exists] using
  exists_Icc_mem_subset_of_mem_nhdsWithin_Ici (α := αᵒᵈ) (a := toDual a) hs
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[≤] a
⊢ ∃ b ≤ a, Icc b a ∈ 𝓝[≤] a ∧ Icc b a ⊆ s
state_after: no goals
Theorem: Orthonormal.orthogonalFamily
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: simp [inner_smul_left, inner_smul_right, hv.2 hij]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
ι : Type u_4
G : ι → Type u_5
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
V : (i : ι) → G i →ₗᵢ[𝕜] E
hV : OrthogonalFamily 𝕜 G V
dec_V : (i : ι) → (x : G i) → Decidable (x ≠ 0)
v : ι → E
hv : Orthonormal 𝕜 v
i j : ι
hij : i ≠ j
a : (fun _i => 𝕜) i
b : (fun _i => 𝕜) j
⊢ ⟪((fun i => LinearIsometry.toSpanSingleton 𝕜 E ⋯) i) a, ((fun i => LinearIsometry.toSpanSingleton 𝕜 E ⋯) j) b⟫_𝕜 = 0
state_after: no goals
Theorem: CategoryTheory.PreGaloisCategory.autMap_apply_mul
File: Mathlib/CategoryTheory/Galois/GaloisObjects.lean

tactic: let F := GaloisCategory.getFiberFunctor C
state_before: C : Type u₁
inst✝⁴ : Category.{u₂, u₁} C
inst✝³ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝² : FiberFunctor F
A B : C
inst✝¹ : IsConnected A
inst✝ : IsGalois B
f : A ⟶ B
σ τ : Aut A
⊢ autMap f (σ * τ) = autMap f σ * autMap f τ
state_after: C : Type u₁
inst✝⁴ : Category.{u₂, u₁} C
inst✝³ : GaloisCategory C
F✝ : C ⥤ FintypeCat
inst✝² : FiberFunctor F✝
A B : C
inst✝¹ : IsConnected A
inst✝ : IsGalois B
f : A ⟶ B
σ τ : Aut A
F : C ⥤ FintypeCat := GaloisCategory.getFiberFunctor C
⊢ autMap f (σ * τ) = autMap f σ * autMap f τ

tactic: obtain ⟨a⟩ := nonempty_fiber_of_isConnected F A
state_before: C : Type u₁
inst✝⁴ : Category.{u₂, u₁} C
inst✝³ : GaloisCategory C
F✝ : C ⥤ FintypeCat
inst✝² : FiberFunctor F✝
A B : C
inst✝¹ : IsConnected A
inst✝ : IsGalois B
f : A ⟶ B
σ τ : Aut A
F : C ⥤ FintypeCat := GaloisCategory.getFiberFunctor C
⊢ autMap f (σ * τ) = autMap f σ * autMap f τ
state_after: case intro
C : Type u₁
inst✝⁴ : Category.{u₂, u₁} C
inst✝³ : GaloisCategory C
F✝ : C ⥤ FintypeCat
inst✝² : FiberFunctor F✝
A B : C
inst✝¹ : IsConnected A
inst✝ : IsGalois B
f : A ⟶ B
σ τ : Aut A
F : C ⥤ FintypeCat := GaloisCategory.getFiberFunctor C
a : ↑(F.obj A)
⊢ autMap f (σ * τ) = autMap f σ * autMap f τ

tactic: apply evaluation_aut_injective_of_isConnected F (B : C) (F.map f a)
state_before: case intro
C : Type u₁
inst✝⁴ : Category.{u₂, u₁} C
inst✝³ : GaloisCategory C
F✝ : C ⥤ FintypeCat
inst✝² : FiberFunctor F✝
A B : C
inst✝¹ : IsConnected A
inst✝ : IsGalois B
f : A ⟶ B
σ τ : Aut A
F : C ⥤ FintypeCat := GaloisCategory.getFiberFunctor C
a : ↑(F.obj A)
⊢ autMap f (σ * τ) = autMap f σ * autMap f τ
state_after: case intro.a
C : Type u₁
inst✝⁴ : Category.{u₂, u₁} C
inst✝³ : GaloisCategory C
F✝ : C ⥤ FintypeCat
inst✝² : FiberFunctor F✝
A B : C
inst✝¹ : IsConnected A
inst✝ : IsGalois B
f : A ⟶ B
σ τ : Aut A
F : C ⥤ FintypeCat := GaloisCategory.getFiberFunctor C
a : ↑(F.obj A)
⊢ (fun f_1 => F.map f_1.hom (F.map f a)) (autMap f (σ * τ)) =
    (fun f_1 => F.map f_1.hom (F.map f a)) (autMap f σ * autMap f τ)

tactic: simp [Aut.Aut_mul_def]
state_before: case intro.a
C : Type u₁
inst✝⁴ : Category.{u₂, u₁} C
inst✝³ : GaloisCategory C
F✝ : C ⥤ FintypeCat
inst✝² : FiberFunctor F✝
A B : C
inst✝¹ : IsConnected A
inst✝ : IsGalois B
f : A ⟶ B
σ τ : Aut A
F : C ⥤ FintypeCat := GaloisCategory.getFiberFunctor C
a : ↑(F.obj A)
⊢ (fun f_1 => F.map f_1.hom (F.map f a)) (autMap f (σ * τ)) =
    (fun f_1 => F.map f_1.hom (F.map f a)) (autMap f σ * autMap f τ)
state_after: no goals
Theorem: ProjectiveSpectrum.mem_vanishingIdeal
File: Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean

tactic: rw [← SetLike.mem_coe, coe_vanishingIdeal, Set.mem_setOf_eq]
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
t : Set (ProjectiveSpectrum 𝒜)
f : A
⊢ f ∈ vanishingIdeal t ↔ ∀ x ∈ t, f ∈ x.asHomogeneousIdeal
state_after: no goals
Theorem: List.Perm.sizeOf_eq_sizeOf
File: .lake/packages/batteries/Batteries/Data/List/Perm.lean

tactic: induction h with
| nil => rfl
| cons _ _ h_sz₁₂ => simp [h_sz₁₂]
| swap => simp [Nat.add_left_comm]
| trans _ _ h_sz₁₂ h_sz₂₃ => simp [h_sz₁₂, h_sz₂₃]
state_before: α : Type u_1
inst✝ : SizeOf α
l₁ l₂ : List α
h : l₁ ~ l₂
⊢ sizeOf l₁ = sizeOf l₂
state_after: no goals

tactic: rfl
state_before: case nil
α : Type u_1
inst✝ : SizeOf α
l₁ l₂ : List α
⊢ sizeOf [] = sizeOf []
state_after: no goals

tactic: simp [h_sz₁₂]
state_before: case cons
α : Type u_1
inst✝ : SizeOf α
l₁ l₂ : List α
x✝ : α
l₁✝ l₂✝ : List α
a✝ : l₁✝ ~ l₂✝
h_sz₁₂ : sizeOf l₁✝ = sizeOf l₂✝
⊢ sizeOf (x✝ :: l₁✝) = sizeOf (x✝ :: l₂✝)
state_after: no goals

tactic: simp [Nat.add_left_comm]
state_before: case swap
α : Type u_1
inst✝ : SizeOf α
l₁ l₂ : List α
x✝ y✝ : α
l✝ : List α
⊢ sizeOf (y✝ :: x✝ :: l✝) = sizeOf (x✝ :: y✝ :: l✝)
state_after: no goals

tactic: simp [h_sz₁₂, h_sz₂₃]
state_before: case trans
α : Type u_1
inst✝ : SizeOf α
l₁ l₂ l₁✝ l₂✝ l₃✝ : List α
a✝¹ : l₁✝ ~ l₂✝
a✝ : l₂✝ ~ l₃✝
h_sz₁₂ : sizeOf l₁✝ = sizeOf l₂✝
h_sz₂₃ : sizeOf l₂✝ = sizeOf l₃✝
⊢ sizeOf l₁✝ = sizeOf l₃✝
state_after: no goals
Theorem: Algebra.trace_eq_zero_of_not_exists_basis
File: Mathlib/RingTheory/Trace.lean

tactic: ext s
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁸ : CommRing R
inst✝⁷ : CommRing S
inst✝⁶ : CommRing T
inst✝⁵ : Algebra R S
inst✝⁴ : Algebra R T
K : Type u_4
L : Type u_5
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
ι κ : Type w
inst✝ : Fintype ι
b : Basis ι R S
h : ¬∃ s, Nonempty (Basis { x // x ∈ s } R S)
⊢ trace R S = 0
state_after: case h
R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁸ : CommRing R
inst✝⁷ : CommRing S
inst✝⁶ : CommRing T
inst✝⁵ : Algebra R S
inst✝⁴ : Algebra R T
K : Type u_4
L : Type u_5
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
ι κ : Type w
inst✝ : Fintype ι
b : Basis ι R S
h : ¬∃ s, Nonempty (Basis { x // x ∈ s } R S)
s : S
⊢ (trace R S) s = 0 s

tactic: simp [trace_apply, LinearMap.trace, h]
state_before: case h
R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁸ : CommRing R
inst✝⁷ : CommRing S
inst✝⁶ : CommRing T
inst✝⁵ : Algebra R S
inst✝⁴ : Algebra R T
K : Type u_4
L : Type u_5
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
ι κ : Type w
inst✝ : Fintype ι
b : Basis ι R S
h : ¬∃ s, Nonempty (Basis { x // x ∈ s } R S)
s : S
⊢ (trace R S) s = 0 s
state_after: no goals
Theorem: LinearMap.IsProj.isCompl
File: Mathlib/LinearAlgebra/Projection.lean

tactic: rw [← codRestrict_ker]
state_before: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type u_5
inst✝² : Semiring S
M : Type u_6
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] E
h : IsProj p f
⊢ IsCompl p (ker f)
state_after: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type u_5
inst✝² : Semiring S
M : Type u_6
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] E
h : IsProj p f
⊢ IsCompl p (ker ?m.422430.codRestrict)

R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type u_5
inst✝² : Semiring S
M : Type u_6
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] E
h : IsProj p f
⊢ IsProj ?m.422157 f

R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type u_5
inst✝² : Semiring S
M : Type u_6
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] E
h : IsProj p f
⊢ Submodule R E

tactic: exact isCompl_of_proj h.codRestrict_apply_cod
state_before: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type u_5
inst✝² : Semiring S
M : Type u_6
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] E
h : IsProj p f
⊢ IsCompl p (ker ?m.422430.codRestrict)

R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type u_5
inst✝² : Semiring S
M : Type u_6
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] E
h : IsProj p f
⊢ IsProj ?m.422157 f

R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type u_5
inst✝² : Semiring S
M : Type u_6
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] E
h : IsProj p f
⊢ Submodule R E
state_after: no goals
Theorem: WCovBy.image
File: Mathlib/Order/Cover.lean

tactic: refine ⟨f.monotone hab.le, fun c ha hb => ?_⟩
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c : α
f : α ↪o β
hab : a ⩿ b
h : (range ⇑f).OrdConnected
⊢ f a ⩿ f b
state_after: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c✝ : α
f : α ↪o β
hab : a ⩿ b
h : (range ⇑f).OrdConnected
c : β
ha : f a < c
hb : c < f b
⊢ False

tactic: obtain ⟨c, rfl⟩ := h.out (mem_range_self _) (mem_range_self _) ⟨ha.le, hb.le⟩
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c✝ : α
f : α ↪o β
hab : a ⩿ b
h : (range ⇑f).OrdConnected
c : β
ha : f a < c
hb : c < f b
⊢ False
state_after: case intro
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c✝ : α
f : α ↪o β
hab : a ⩿ b
h : (range ⇑f).OrdConnected
c : α
ha : f a < f c
hb : f c < f b
⊢ False

tactic: rw [f.lt_iff_lt] at ha hb
state_before: case intro
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c✝ : α
f : α ↪o β
hab : a ⩿ b
h : (range ⇑f).OrdConnected
c : α
ha : f a < f c
hb : f c < f b
⊢ False
state_after: case intro
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c✝ : α
f : α ↪o β
hab : a ⩿ b
h : (range ⇑f).OrdConnected
c : α
ha : a < c
hb : c < b
⊢ False

tactic: exact hab.2 ha hb
state_before: case intro
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c✝ : α
f : α ↪o β
hab : a ⩿ b
h : (range ⇑f).OrdConnected
c : α
ha : a < c
hb : c < b
⊢ False
state_after: no goals
Theorem: iteratedFDeriv_two_apply
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

tactic: simp only [iteratedFDeriv_succ_apply_right]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g : F → G
x x₀ : E
c : F
m✝ n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
f : E → F
z : E
m : Fin 2 → E
⊢ (iteratedFDeriv 𝕜 2 f z) m = ((fderiv 𝕜 (fderiv 𝕜 f) z) (m 0)) (m 1)
state_after: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g : F → G
x x₀ : E
c : F
m✝ n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
f : E → F
z : E
m : Fin 2 → E
⊢ (((iteratedFDeriv 𝕜 0 (fun y => fderiv 𝕜 (fun y => fderiv 𝕜 f y) y) z) (init (init m))) (init m (last 0)))
      (m (last 1)) =
    ((fderiv 𝕜 (fderiv 𝕜 f) z) (m 0)) (m 1)

tactic: rfl
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g : F → G
x x₀ : E
c : F
m✝ n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
f : E → F
z : E
m : Fin 2 → E
⊢ (((iteratedFDeriv 𝕜 0 (fun y => fderiv 𝕜 (fun y => fderiv 𝕜 f y) y) z) (init (init m))) (init m (last 0)))
      (m (last 1)) =
    ((fderiv 𝕜 (fderiv 𝕜 f) z) (m 0)) (m 1)
state_after: no goals
Theorem: AffineSubspace.direction_inf
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: simp only [direction_eq_vectorSpan, vectorSpan_def]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
⊢ (s1 ⊓ s2).direction ≤ s1.direction ⊓ s2.direction
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
⊢ Submodule.span k (↑(s1 ⊓ s2) -ᵥ ↑(s1 ⊓ s2)) ≤ Submodule.span k (↑s1 -ᵥ ↑s1) ⊓ Submodule.span k (↑s2 -ᵥ ↑s2)

tactic: exact
  le_inf (sInf_le_sInf fun p hp => trans (vsub_self_mono inter_subset_left) hp)
    (sInf_le_sInf fun p hp => trans (vsub_self_mono inter_subset_right) hp)
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
⊢ Submodule.span k (↑(s1 ⊓ s2) -ᵥ ↑(s1 ⊓ s2)) ≤ Submodule.span k (↑s1 -ᵥ ↑s1) ⊓ Submodule.span k (↑s2 -ᵥ ↑s2)
state_after: no goals