ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Right.pow_lt_one_of_lt
File: Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean

Proof steps:
state_before: β : Type u_1
G : Type u_2
M : Type u_3
inst✝² : Monoid M
inst✝¹ : Preorder M
inst✝ : CovariantClass M M (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
n✝ : ℕ
x : M
hn : 0 < n✝
h : x < 1
n : ℕ
x✝ : Nat.succ 0 ≤ n
ih : x ^ n < 1
⊢ x ^ (n + 1) < 1
state_after: β : Type u_1
G : Type u_2
M : Type u_3
inst✝² : Monoid M
inst✝¹ : Preorder M
inst✝ : CovariantClass M M (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
n✝ : ℕ
x : M
hn : 0 < n✝
h : x < 1
n : ℕ
x✝ : Nat.succ 0 ≤ n
ih : x ^ n < 1
⊢ x ^ n * x < 1
tactic: rw [pow_succ]
state_before: β : Type u_1
G : Type u_2
M : Type u_3
inst✝² : Monoid M
inst✝¹ : Preorder M
inst✝ : CovariantClass M M (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
n✝ : ℕ
x : M
hn : 0 < n✝
h : x < 1
n : ℕ
x✝ : Nat.succ 0 ≤ n
ih : x ^ n < 1
⊢ x ^ n * x < 1
state_after: no goals
tactic: exact Right.mul_lt_one ih h
Theorem: List.get?_zipWith_eq_some
File: Mathlib/Data/List/Zip.lean

Proof steps:
state_before: α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
f : α → β → γ
l₁ : List α
l₂ : List β
z : γ
i : ℕ
⊢ (zipWith f l₁ l₂).get? i = some z ↔ ∃ x y, l₁.get? i = some x ∧ l₂.get? i = some y ∧ f x y = z
state_after: no goals
tactic: simp [getElem?_zipWith_eq_some]
Theorem: Set.Ioi_diff_Ici
File: Mathlib/Order/Interval/Set/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
⊢ Ioi a \ Ici b = Ioo a b
state_after: no goals
tactic: rw [diff_eq, compl_Ici, Ioi_inter_Iio]
Theorem: MeasureTheory.FiniteMeasure.restrict_mass
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

Proof steps:
state_before: Ω : Type u_1
inst✝⁴ : MeasurableSpace Ω
R : Type u_2
inst✝³ : SMul R ℝ≥0
inst✝² : SMul R ℝ≥0∞
inst✝¹ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
μ : FiniteMeasure Ω
A : Set Ω
⊢ (μ.restrict A).mass = μ A
state_after: no goals
tactic: simp only [mass, restrict_apply μ A MeasurableSet.univ, univ_inter]
Theorem: isSimpleModule_iff_toSpanSingleton_surjective
File: Mathlib/RingTheory/SimpleModule.lean

Proof steps:
state_before: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m✝ : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
x✝¹ : Nontrivial M ∧ ∀ (x : M), x ≠ 0 → Function.Surjective ⇑(LinearMap.toSpanSingleton R M x)
left✝ : Nontrivial M
h : ∀ (x : M), x ≠ 0 → Function.Surjective ⇑(LinearMap.toSpanSingleton R M x)
m : Submodule R M
ne_bot : ¬m = ⊥
x : M
hxm : x ∈ m
hx0 : x ≠ 0
z : M
x✝ : z ∈ ⊤
⊢ z ∈ m
state_after: case intro
ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m✝ : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
x✝¹ : Nontrivial M ∧ ∀ (x : M), x ≠ 0 → Function.Surjective ⇑(LinearMap.toSpanSingleton R M x)
left✝ : Nontrivial M
h : ∀ (x : M), x ≠ 0 → Function.Surjective ⇑(LinearMap.toSpanSingleton R M x)
m : Submodule R M
ne_bot : ¬m = ⊥
x : M
hxm : x ∈ m
hx0 : x ≠ 0
y : R
x✝ : (LinearMap.toSpanSingleton R M x) y ∈ ⊤
⊢ (LinearMap.toSpanSingleton R M x) y ∈ m
tactic: obtain ⟨y, rfl⟩ := h x hx0 z
state_before: case intro
ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m✝ : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
x✝¹ : Nontrivial M ∧ ∀ (x : M), x ≠ 0 → Function.Surjective ⇑(LinearMap.toSpanSingleton R M x)
left✝ : Nontrivial M
h : ∀ (x : M), x ≠ 0 → Function.Surjective ⇑(LinearMap.toSpanSingleton R M x)
m : Submodule R M
ne_bot : ¬m = ⊥
x : M
hxm : x ∈ m
hx0 : x ≠ 0
y : R
x✝ : (LinearMap.toSpanSingleton R M x) y ∈ ⊤
⊢ (LinearMap.toSpanSingleton R M x) y ∈ m
state_after: no goals
tactic: exact m.smul_mem _ hxm
Theorem: Matrix.isHermitian_iff_isSymmetric
File: Mathlib/LinearAlgebra/Matrix/Hermitian.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝³ : RCLike α
inst✝² : RCLike β
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n α
⊢ A.IsHermitian ↔ (toEuclideanLin A).IsSymmetric
state_after: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝³ : RCLike α
inst✝² : RCLike β
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n α
⊢ A.IsHermitian ↔
    ∀ (x₁ x₂ : n → α),
      ⟪(toEuclideanLin A) ((WithLp.equiv 2 (n → α)).symm x₁), (WithLp.equiv 2 (n → α)).symm x₂⟫_α =
        ⟪(WithLp.equiv 2 (n → α)).symm x₁, (toEuclideanLin A) ((WithLp.equiv 2 (n → α)).symm x₂)⟫_α
tactic: rw [LinearMap.IsSymmetric, (WithLp.equiv 2 (n → α)).symm.surjective.forall₂]
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝³ : RCLike α
inst✝² : RCLike β
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n α
⊢ A.IsHermitian ↔
    ∀ (x₁ x₂ : n → α),
      ⟪(toEuclideanLin A) ((WithLp.equiv 2 (n → α)).symm x₁), (WithLp.equiv 2 (n → α)).symm x₂⟫_α =
        ⟪(WithLp.equiv 2 (n → α)).symm x₁, (toEuclideanLin A) ((WithLp.equiv 2 (n → α)).symm x₂)⟫_α
state_after: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝³ : RCLike α
inst✝² : RCLike β
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n α
⊢ A.IsHermitian ↔ ∀ (x₁ x₂ : n → α), star x₁ ᵥ* Aᴴ ⬝ᵥ x₂ = star x₁ ᵥ* A ⬝ᵥ x₂
tactic: simp only [toEuclideanLin_piLp_equiv_symm, EuclideanSpace.inner_piLp_equiv_symm, toLin'_apply,
    star_mulVec, dotProduct_mulVec]
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝³ : RCLike α
inst✝² : RCLike β
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n α
⊢ A.IsHermitian ↔ ∀ (x₁ x₂ : n → α), star x₁ ᵥ* Aᴴ ⬝ᵥ x₂ = star x₁ ᵥ* A ⬝ᵥ x₂
state_after: case mp
α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝³ : RCLike α
inst✝² : RCLike β
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n α
⊢ A.IsHermitian → ∀ (x₁ x₂ : n → α), star x₁ ᵥ* Aᴴ ⬝ᵥ x₂ = star x₁ ᵥ* A ⬝ᵥ x₂

case mpr
α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝³ : RCLike α
inst✝² : RCLike β
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n α
⊢ (∀ (x₁ x₂ : n → α), star x₁ ᵥ* Aᴴ ⬝ᵥ x₂ = star x₁ ᵥ* A ⬝ᵥ x₂) → A.IsHermitian
tactic: constructor
Theorem: Behrend.exists_large_sphere_aux
File: Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
n✝ d✝ k N : ℕ
x : Fin n✝ → ℕ
n d : ℕ
⊢ ∃ k ∈ range (n * (d - 1) ^ 2 + 1), ↑(d ^ n) / (↑(n * (d - 1) ^ 2) + 1) ≤ ↑(sphere n d k).card
state_after: case refine_1
α : Type u_1
β : Type u_2
n✝ d✝ k N : ℕ
x✝ : Fin n✝ → ℕ
n d : ℕ
x : Fin n → ℕ
hx : x ∈ box n d
⊢ ∑ i : Fin n, x i ^ 2 ∈ range (n * (d - 1) ^ 2 + 1)

case refine_2
α : Type u_1
β : Type u_2
n✝ d✝ k N : ℕ
x : Fin n✝ → ℕ
n d : ℕ
⊢ (range (n * (d - 1) ^ 2 + 1)).card • (↑(d ^ n) / (↑(n * (d - 1) ^ 2) + 1)) ≤ ↑(box n d).card
tactic: refine exists_le_card_fiber_of_nsmul_le_card_of_maps_to (fun x hx => ?_) nonempty_range_succ ?_
Theorem: AlgebraicGeometry.Scheme.OpenCover.pullbackCover_obj
File: Mathlib/AlgebraicGeometry/Cover/Open.lean

Proof steps:
state_before: X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f✝ : X✝ ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f✝) g
X W : Scheme
𝒰 : X.OpenCover
f : W ⟶ X
x : ↑↑W.toPresheafedSpace
⊢ x ∈ Set.range ⇑((fun x => pullback.fst f (𝒰.map x)) ((fun x => 𝒰.f (f.val.base x)) x)).val.base
state_after: X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f✝ : X✝ ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f✝) g
X W : Scheme
𝒰 : X.OpenCover
f : W ⟶ X
x : ↑↑W.toPresheafedSpace
⊢ x ∈
    Set.range
      ⇑((PreservesPullback.iso forgetToTop f (𝒰.map (𝒰.f (f.val.base x)))).hom ≫
          pullback.fst (forgetToTop.map f) (forgetToTop.map (𝒰.map (𝒰.f (f.val.base x)))))
tactic: rw [←
      show _ = (pullback.fst _ _ : pullback f (𝒰.map (𝒰.f (f.1.base x))) ⟶ _).1.base from
        PreservesPullback.iso_hom_fst Scheme.forgetToTop f (𝒰.map (𝒰.f (f.1.base x)))]
state_before: X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f✝ : X✝ ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f✝) g
X W : Scheme
𝒰 : X.OpenCover
f : W ⟶ X
x : ↑↑W.toPresheafedSpace
⊢ x ∈
    Set.range
      ⇑((PreservesPullback.iso forgetToTop f (𝒰.map (𝒰.f (f.val.base x)))).hom ≫
          pullback.fst (forgetToTop.map f) (forgetToTop.map (𝒰.map (𝒰.f (f.val.base x)))))
state_after: X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f✝ : X✝ ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f✝) g
X W : Scheme
𝒰 : X.OpenCover
f : W ⟶ X
x : ↑↑W.toPresheafedSpace
⊢ x ∈ {x_1 | ∃ y, (forgetToTop.map f) x_1 = (forgetToTop.map (𝒰.map (𝒰.f (f.val.base x)))) y}

X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f✝ : X✝ ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f✝) g
X W : Scheme
𝒰 : X.OpenCover
f : W ⟶ X
x : ↑↑W.toPresheafedSpace
⊢ Function.Surjective ⇑(PreservesPullback.iso forgetToTop f (𝒰.map (𝒰.f (f.val.base x)))).hom
tactic: rw [TopCat.coe_comp, Set.range_comp, Set.range_iff_surjective.mpr, Set.image_univ,
      TopCat.pullback_fst_range]
Theorem: Matrix.coe_det_isEmpty
File: Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean

Proof steps:
state_before: m : Type u_1
n : Type u_2
inst✝⁵ : DecidableEq n
inst✝⁴ : Fintype n
inst✝³ : DecidableEq m
inst✝² : Fintype m
R : Type v
inst✝¹ : CommRing R
inst✝ : IsEmpty n
⊢ det = const (Matrix n n R) 1
state_after: case h
m : Type u_1
n : Type u_2
inst✝⁵ : DecidableEq n
inst✝⁴ : Fintype n
inst✝³ : DecidableEq m
inst✝² : Fintype m
R : Type v
inst✝¹ : CommRing R
inst✝ : IsEmpty n
x✝ : Matrix n n R
⊢ x✝.det = const (Matrix n n R) 1 x✝
tactic: ext
state_before: case h
m : Type u_1
n : Type u_2
inst✝⁵ : DecidableEq n
inst✝⁴ : Fintype n
inst✝³ : DecidableEq m
inst✝² : Fintype m
R : Type v
inst✝¹ : CommRing R
inst✝ : IsEmpty n
x✝ : Matrix n n R
⊢ x✝.det = const (Matrix n n R) 1 x✝
state_after: no goals
tactic: exact det_isEmpty
Theorem: List.map_subset
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
l₁ l₂ : List α
f : α → β
H : l₁ ⊆ l₂
x : β
⊢ x ∈ map f l₁ → x ∈ map f l₂
state_after: α : Type u_1
β : Type u_2
l₁ l₂ : List α
f : α → β
H : l₁ ⊆ l₂
x : β
⊢ (∃ a, a ∈ l₁ ∧ f a = x) → ∃ a, a ∈ l₂ ∧ f a = x
tactic: simp only [mem_map]
state_before: α : Type u_1
β : Type u_2
l₁ l₂ : List α
f : α → β
H : l₁ ⊆ l₂
x : β
⊢ (∃ a, a ∈ l₁ ∧ f a = x) → ∃ a, a ∈ l₂ ∧ f a = x
state_after: no goals
tactic: exact .imp fun a => .imp_left (@H _)
Theorem: vsub_self
File: Mathlib/Algebra/AddTorsor.lean

Proof steps:
state_before: G : Type u_1
P : Type u_2
inst✝ : AddGroup G
T : AddTorsor G P
p : P
⊢ p -ᵥ p = 0
state_after: no goals
tactic: rw [← zero_add (p -ᵥ p), ← vadd_vsub_assoc, vadd_vsub]
Theorem: Equiv.Perm.card_support_extend_domain
File: Mathlib/GroupTheory/Perm/Support.lean

Proof steps:
state_before: α : Type u_1
inst✝⁴ : DecidableEq α
inst✝³ : Fintype α
f✝ g✝ : Perm α
β : Type u_2
inst✝² : DecidableEq β
inst✝¹ : Fintype β
p : β → Prop
inst✝ : DecidablePred p
f : α ≃ Subtype p
g : Perm α
⊢ (g.extendDomain f).support.card = g.support.card
state_after: no goals
tactic: simp
Theorem: MeasureTheory.Measure.restrict_union_add_inter₀
File: Mathlib/MeasureTheory/Measure/Restrict.lean

Proof steps:
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
ht : NullMeasurableSet t μ
⊢ μ.restrict (s ∪ t) + μ.restrict (s ∩ t) = μ.restrict s + μ.restrict t
state_after: no goals
tactic: rw [← restrict_inter_add_diff₀ (s ∪ t) ht, union_inter_cancel_right, union_diff_right, ←
    restrict_inter_add_diff₀ s ht, add_comm, ← add_assoc, add_right_comm]
Theorem: Finset.sum_filter_of_ne
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

Proof steps:
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 β
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ x ∈ s, f x ≠ 1 → p x
x : α
⊢ x ∈ s → x ∉ filter p s → f x = 1
state_after: no goals
tactic: classical
      rw [not_imp_comm, mem_filter]
      exact fun h₁ h₂ => ⟨h₁, by simpa using hp _ h₁ h₂⟩
Theorem: Equiv.Perm.sameCycle_inv_apply_left
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
p : α → Prop
x y z : α
⊢ f.SameCycle (f⁻¹ x) y ↔ f.SameCycle x y
state_after: no goals
tactic: rw [← sameCycle_apply_left, apply_inv_self]
Theorem: _private.Mathlib.NumberTheory.ModularForms.SlashActions.0.ModularForm.add_slash
File: Mathlib/NumberTheory/ModularForms/SlashActions.lean

Proof steps:
state_before: Γ : Subgroup SL(2, ℤ)
k✝ : ℤ
f✝ : ℍ → ℂ
k : ℤ
A : ↥GL(2, ℝ)⁺
f g : ℍ → ℂ
⊢ (f + g) ∣[k]A = f ∣[k]A + g ∣[k]A
state_after: case h
Γ : Subgroup SL(2, ℤ)
k✝ : ℤ
f✝ : ℍ → ℂ
k : ℤ
A : ↥GL(2, ℝ)⁺
f g : ℍ → ℂ
x✝ : ℍ
⊢ ((f + g) ∣[k]A) x✝ = (f ∣[k]A + g ∣[k]A) x✝
tactic: ext1
state_before: case h
Γ : Subgroup SL(2, ℤ)
k✝ : ℤ
f✝ : ℍ → ℂ
k : ℤ
A : ↥GL(2, ℝ)⁺
f g : ℍ → ℂ
x✝ : ℍ
⊢ ((f + g) ∣[k]A) x✝ = (f ∣[k]A + g ∣[k]A) x✝
state_after: case h
Γ : Subgroup SL(2, ℤ)
k✝ : ℤ
f✝ : ℍ → ℂ
k : ℤ
A : ↥GL(2, ℝ)⁺
f g : ℍ → ℂ
x✝ : ℍ
⊢ (f (A • x✝) + g (A • x✝)) * ↑(↑↑A).det ^ (k - 1) * ((↑(↑↑A 1 0) * ↑x✝ + ↑(↑↑A 1 1)) ^ k)⁻¹ =
    f (A • x✝) * ↑(↑↑A).det ^ (k - 1) * ((↑(↑↑A 1 0) * ↑x✝ + ↑(↑↑A 1 1)) ^ k)⁻¹ +
      g (A • x✝) * ↑(↑↑A).det ^ (k - 1) * ((↑(↑↑A 1 0) * ↑x✝ + ↑(↑↑A 1 1)) ^ k)⁻¹
tactic: simp only [slash, Pi.add_apply, denom, zpow_neg]
state_before: case h
Γ : Subgroup SL(2, ℤ)
k✝ : ℤ
f✝ : ℍ → ℂ
k : ℤ
A : ↥GL(2, ℝ)⁺
f g : ℍ → ℂ
x✝ : ℍ
⊢ (f (A • x✝) + g (A • x✝)) * ↑(↑↑A).det ^ (k - 1) * ((↑(↑↑A 1 0) * ↑x✝ + ↑(↑↑A 1 1)) ^ k)⁻¹ =
    f (A • x✝) * ↑(↑↑A).det ^ (k - 1) * ((↑(↑↑A 1 0) * ↑x✝ + ↑(↑↑A 1 1)) ^ k)⁻¹ +
      g (A • x✝) * ↑(↑↑A).det ^ (k - 1) * ((↑(↑↑A 1 0) * ↑x✝ + ↑(↑↑A 1 1)) ^ k)⁻¹
state_after: no goals
tactic: ring
Theorem: LinearMap.det_zero'
File: Mathlib/LinearAlgebra/Determinant.lean

Proof steps:
state_before: R : Type u_1
inst✝¹¹ : CommRing R
M : Type u_2
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : Module R M
M' : Type u_3
inst✝⁸ : AddCommGroup M'
inst✝⁷ : Module R M'
ι✝ : Type u_4
inst✝⁶ : DecidableEq ι✝
inst✝⁵ : Fintype ι✝
e : Basis ι✝ R M
A : Type u_5
inst✝⁴ : CommRing A
inst✝³ : Module A M
κ : Type u_6
inst✝² : Fintype κ
ι : Type u_7
inst✝¹ : Finite ι
inst✝ : Nonempty ι
b : Basis ι A M
⊢ LinearMap.det 0 = 0
state_after: R : Type u_1
inst✝¹¹ : CommRing R
M : Type u_2
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : Module R M
M' : Type u_3
inst✝⁸ : AddCommGroup M'
inst✝⁷ : Module R M'
ι✝ : Type u_4
inst✝⁶ : DecidableEq ι✝
inst✝⁵ : Fintype ι✝
e : Basis ι✝ R M
A : Type u_5
inst✝⁴ : CommRing A
inst✝³ : Module A M
κ : Type u_6
inst✝² : Fintype κ
ι : Type u_7
inst✝¹ : Finite ι
inst✝ : Nonempty ι
b : Basis ι A M
this : DecidableEq ι
⊢ LinearMap.det 0 = 0
tactic: haveI := Classical.decEq ι
state_before: R : Type u_1
inst✝¹¹ : CommRing R
M : Type u_2
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : Module R M
M' : Type u_3
inst✝⁸ : AddCommGroup M'
inst✝⁷ : Module R M'
ι✝ : Type u_4
inst✝⁶ : DecidableEq ι✝
inst✝⁵ : Fintype ι✝
e : Basis ι✝ R M
A : Type u_5
inst✝⁴ : CommRing A
inst✝³ : Module A M
κ : Type u_6
inst✝² : Fintype κ
ι : Type u_7
inst✝¹ : Finite ι
inst✝ : Nonempty ι
b : Basis ι A M
this : DecidableEq ι
⊢ LinearMap.det 0 = 0
state_after: case intro
R : Type u_1
inst✝¹¹ : CommRing R
M : Type u_2
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : Module R M
M' : Type u_3
inst✝⁸ : AddCommGroup M'
inst✝⁷ : Module R M'
ι✝ : Type u_4
inst✝⁶ : DecidableEq ι✝
inst✝⁵ : Fintype ι✝
e : Basis ι✝ R M
A : Type u_5
inst✝⁴ : CommRing A
inst✝³ : Module A M
κ : Type u_6
inst✝² : Fintype κ
ι : Type u_7
inst✝¹ : Finite ι
inst✝ : Nonempty ι
b : Basis ι A M
this : DecidableEq ι
val✝ : Fintype ι
⊢ LinearMap.det 0 = 0
tactic: cases nonempty_fintype ι
state_before: case intro
R : Type u_1
inst✝¹¹ : CommRing R
M : Type u_2
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : Module R M
M' : Type u_3
inst✝⁸ : AddCommGroup M'
inst✝⁷ : Module R M'
ι✝ : Type u_4
inst✝⁶ : DecidableEq ι✝
inst✝⁵ : Fintype ι✝
e : Basis ι✝ R M
A : Type u_5
inst✝⁴ : CommRing A
inst✝³ : Module A M
κ : Type u_6
inst✝² : Fintype κ
ι : Type u_7
inst✝¹ : Finite ι
inst✝ : Nonempty ι
b : Basis ι A M
this : DecidableEq ι
val✝ : Fintype ι
⊢ LinearMap.det 0 = 0
state_after: no goals
tactic: rwa [← det_toMatrix b, LinearEquiv.map_zero, det_zero]
Theorem: Polynomial.card_support_eq_zero
File: Mathlib/Algebra/Polynomial/Basic.lean

Proof steps:
state_before: R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p q : R[X]
⊢ p.support.card = 0 ↔ p = 0
state_after: no goals
tactic: simp
Theorem: Mathlib.Meta.NormNum.isFibAux_two_mul
File: Mathlib/Tactic/NormNum/NatFib.lean

Proof steps:
state_before: n a b n' a' b' : ℕ
H : IsFibAux n a b
hn : 2 * n = n'
h1 : a * (2 * b - a) = a'
h2 : a * a + b * b = b'
⊢ fib n' = a'
state_after: no goals
tactic: rw [← hn, fib_two_mul, H.1, H.2, ← h1]
state_before: n a b n' a' b' : ℕ
H : IsFibAux n a b
hn : 2 * n = n'
h1 : a * (2 * b - a) = a'
h2 : a * a + b * b = b'
⊢ fib (n' + 1) = b'
state_after: no goals
tactic: rw [← hn, fib_two_mul_add_one, H.1, H.2, pow_two, pow_two, add_comm, h2]
Theorem: MeasureTheory.dirac_ne_dirac_iff_exists_measurableSet
File: Mathlib/MeasureTheory/Measure/Dirac.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
a x y : α
⊢ dirac x ≠ dirac y ↔ ∃ A, MeasurableSet A ∧ x ∈ A ∧ y ∉ A
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
a x y : α
⊢ ¬dirac x ≠ dirac y ↔ ¬∃ A, MeasurableSet A ∧ x ∈ A ∧ y ∉ A
tactic: apply not_iff_not.mp
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
a x y : α
⊢ ¬dirac x ≠ dirac y ↔ ¬∃ A, MeasurableSet A ∧ x ∈ A ∧ y ∉ A
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
a x y : α
⊢ (∀ (A : Set α), MeasurableSet A → (x ∈ A ↔ y ∈ A)) ↔ ∀ (x_1 : Set α), MeasurableSet x_1 → x ∈ x_1 → y ∈ x_1
tactic: simp only [ne_eq, not_not, not_exists, not_and, dirac_eq_dirac_iff_forall_mem_iff_mem]
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
a x y : α
⊢ (∀ (A : Set α), MeasurableSet A → (x ∈ A ↔ y ∈ A)) ↔ ∀ (x_1 : Set α), MeasurableSet x_1 → x ∈ x_1 → y ∈ x_1
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
a x y : α
h : ∀ (x_1 : Set α), MeasurableSet x_1 → x ∈ x_1 → y ∈ x_1
A : Set α
A_mble : MeasurableSet A
⊢ x ∈ A ↔ y ∈ A
tactic: refine ⟨fun h A A_mble ↦ by simp only [h A A_mble, imp_self], fun h A A_mble ↦ ?_⟩
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
a x y : α
h : ∀ (x_1 : Set α), MeasurableSet x_1 → x ∈ x_1 → y ∈ x_1
A : Set α
A_mble : MeasurableSet A
⊢ x ∈ A ↔ y ∈ A
state_after: case pos
α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
a x y : α
h : ∀ (x_1 : Set α), MeasurableSet x_1 → x ∈ x_1 → y ∈ x_1
A : Set α
A_mble : MeasurableSet A
x_in_A : x ∈ A
⊢ x ∈ A ↔ y ∈ A

case neg
α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
a x y : α
h : ∀ (x_1 : Set α), MeasurableSet x_1 → x ∈ x_1 → y ∈ x_1
A : Set α
A_mble : MeasurableSet A
x_in_A : x ∉ A
⊢ x ∈ A ↔ y ∈ A
tactic: by_cases x_in_A : x ∈ A
Theorem: iteratedDerivWithin_eq_equiv_comp
File: Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
⊢ iteratedDerivWithin n f s = ⇑(ContinuousMultilinearMap.piFieldEquiv 𝕜 (Fin n) F).symm ∘ iteratedFDerivWithin 𝕜 n f s
state_after: case h
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x✝ x : 𝕜
⊢ iteratedDerivWithin n f s x =
    (⇑(ContinuousMultilinearMap.piFieldEquiv 𝕜 (Fin n) F).symm ∘ iteratedFDerivWithin 𝕜 n f s) x
tactic: ext x
state_before: case h
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x✝ x : 𝕜
⊢ iteratedDerivWithin n f s x =
    (⇑(ContinuousMultilinearMap.piFieldEquiv 𝕜 (Fin n) F).symm ∘ iteratedFDerivWithin 𝕜 n f s) x
state_after: no goals
tactic: rfl
Theorem: CategoryTheory.MorphismProperty.naturalityProperty.stableUnderInverse
File: Mathlib/CategoryTheory/MorphismProperty/Composition.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
F₁ F₂ : C ⥤ D
app : (X : C) → F₁.obj X ⟶ F₂.obj X
X Y : C
e : X ≅ Y
he : naturalityProperty app e.hom
⊢ naturalityProperty app e.inv
state_after: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
F₁ F₂ : C ⥤ D
app : (X : C) → F₁.obj X ⟶ F₂.obj X
X Y : C
e : X ≅ Y
he : F₁.map e.hom ≫ app Y = app X ≫ F₂.map e.hom
⊢ F₁.map e.inv ≫ app X = app Y ≫ F₂.map e.inv
tactic: simp only [naturalityProperty] at he ⊢
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
F₁ F₂ : C ⥤ D
app : (X : C) → F₁.obj X ⟶ F₂.obj X
X Y : C
e : X ≅ Y
he : F₁.map e.hom ≫ app Y = app X ≫ F₂.map e.hom
⊢ F₁.map e.inv ≫ app X = app Y ≫ F₂.map e.inv
state_after: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
F₁ F₂ : C ⥤ D
app : (X : C) → F₁.obj X ⟶ F₂.obj X
X Y : C
e : X ≅ Y
he : F₁.map e.hom ≫ app Y = app X ≫ F₂.map e.hom
⊢ F₁.map e.hom ≫ F₁.map e.inv ≫ app X = F₁.map e.hom ≫ app Y ≫ F₂.map e.inv
tactic: rw [← cancel_epi (F₁.map e.hom)]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
F₁ F₂ : C ⥤ D
app : (X : C) → F₁.obj X ⟶ F₂.obj X
X Y : C
e : X ≅ Y
he : F₁.map e.hom ≫ app Y = app X ≫ F₂.map e.hom
⊢ F₁.map e.hom ≫ F₁.map e.inv ≫ app X = F₁.map e.hom ≫ app Y ≫ F₂.map e.inv
state_after: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
F₁ F₂ : C ⥤ D
app : (X : C) → F₁.obj X ⟶ F₂.obj X
X Y : C
e : X ≅ Y
he : F₁.map e.hom ≫ app Y = app X ≫ F₂.map e.hom
⊢ F₁.map e.hom ≫ F₁.map e.inv ≫ app X = (app X ≫ F₂.map e.hom) ≫ F₂.map e.inv
tactic: slice_rhs 1 2 => rw [he]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
F₁ F₂ : C ⥤ D
app : (X : C) → F₁.obj X ⟶ F₂.obj X
X Y : C
e : X ≅ Y
he : F₁.map e.hom ≫ app Y = app X ≫ F₂.map e.hom
⊢ F₁.map e.hom ≫ F₁.map e.inv ≫ app X = (app X ≫ F₂.map e.hom) ≫ F₂.map e.inv
state_after: no goals
tactic: simp only [Category.assoc, ← F₁.map_comp_assoc, ← F₂.map_comp, e.hom_inv_id, Functor.map_id,
    Category.id_comp, Category.comp_id]