1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Real.tan_arccos
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: rw [arccos, tan_pi_div_two_sub, tan_arcsin, inv_div]
state_before: x✝ y x : ℝ
⊢ tan (arccos x) = √(1 - x ^ 2) / x
state_after: no goals
Theorem: List.getD_map
File: Mathlib/Data/List/GetD.lean

tactic: simp
state_before: α : Type u
β : Type v
l : List α
x : α
xs : List α
n✝ : ℕ
d : α
n : ℕ
f : α → β
⊢ (map f l).getD n (f d) = f (l.getD n d)
state_after: no goals
Theorem: Matrix.det_zero_of_column_eq
File: Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean

tactic: rw [← det_transpose, det_zero_of_row_eq i_ne_j]
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
M : Matrix n n R
i j : n
i_ne_j : i ≠ j
hij : ∀ (k : n), M k i = M k j
⊢ M.det = 0
state_after: 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
M : Matrix n n R
i j : n
i_ne_j : i ≠ j
hij : ∀ (k : n), M k i = M k j
⊢ Mᵀ i = Mᵀ j

tactic: exact funext hij
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
M : Matrix n n R
i j : n
i_ne_j : i ≠ j
hij : ∀ (k : n), M k i = M k j
⊢ Mᵀ i = Mᵀ j
state_after: no goals
Theorem: locallyConvexSpace_iInf
File: Mathlib/Topology/Algebra/Module/LocallyConvex.lean

tactic: refine locallyConvexSpace_sInf ?_
state_before: ι : Sort u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommMonoid F
inst✝ : Module 𝕜 F
ts' : ι → TopologicalSpace E
h' : ∀ (i : ι), LocallyConvexSpace 𝕜 E
⊢ LocallyConvexSpace 𝕜 E
state_after: ι : Sort u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommMonoid F
inst✝ : Module 𝕜 F
ts' : ι → TopologicalSpace E
h' : ∀ (i : ι), LocallyConvexSpace 𝕜 E
⊢ ∀ t ∈ range fun i => ts' i, LocallyConvexSpace 𝕜 E

tactic: rwa [forall_mem_range]
state_before: ι : Sort u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommMonoid F
inst✝ : Module 𝕜 F
ts' : ι → TopologicalSpace E
h' : ∀ (i : ι), LocallyConvexSpace 𝕜 E
⊢ ∀ t ∈ range fun i => ts' i, LocallyConvexSpace 𝕜 E
state_after: no goals
Theorem: LieSubmodule.sSup_coe_toSubmodule'
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: rw [sSup_coe_toSubmodule, ← Set.image, sSup_image]
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N N' : LieSubmodule R L M
I J : LieIdeal R L
S : Set (LieSubmodule R L M)
⊢ ↑(sSup S) = ⨆ N ∈ S, ↑N
state_after: no goals
Theorem: edist_congr_left
File: Mathlib/Topology/EMetricSpace/Basic.lean

tactic: rw [edist_comm z x, edist_comm z y]
state_before: α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
h : edist x y = 0
⊢ edist z x = edist z y
state_after: α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
h : edist x y = 0
⊢ edist x z = edist y z

tactic: apply edist_congr_right h
state_before: α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
h : edist x y = 0
⊢ edist x z = edist y z
state_after: no goals
Theorem: Finset.wcovBy_insert
File: Mathlib/Data/Finset/Grade.lean

tactic: simp [← coe_wcovBy_coe]
state_before: α : Type u_1
s✝ t : Finset α
a✝ : α
inst✝ : DecidableEq α
s : Finset α
a : α
⊢ s ⩿ insert a s
state_after: no goals
Theorem: MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
File: Mathlib/MeasureTheory/Group/Measure.lean

tactic: rw [← hU.interior_eq] at h'U
state_before: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : μ.IsMulLeftInvariant
U : Set G
hU : IsOpen U
h'U : U.Nonempty
h : μ U ≠ ⊤
K : Set G
hK : IsCompact K
⊢ μ K < ⊤
state_after: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : μ.IsMulLeftInvariant
U : Set G
hU : IsOpen U
h'U : (interior U).Nonempty
h : μ U ≠ ⊤
K : Set G
hK : IsCompact K
⊢ μ K < ⊤

tactic: obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
  compact_covered_by_mul_left_translates hK h'U
state_before: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : μ.IsMulLeftInvariant
U : Set G
hU : IsOpen U
h'U : (interior U).Nonempty
h : μ U ≠ ⊤
K : Set G
hK : IsCompact K
⊢ μ K < ⊤
state_after: case intro
𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : μ.IsMulLeftInvariant
U : Set G
hU : IsOpen U
h'U : (interior U).Nonempty
h : μ U ≠ ⊤
K : Set G
hK : IsCompact K
t : Finset G
hKt : K ⊆ ⋃ g ∈ t, (fun h => g * h) ⁻¹' U
⊢ μ K < ⊤

tactic: calc
  μ K ≤ μ (⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
  _ ≤ ∑ g ∈ t, μ ((fun h : G => g * h) ⁻¹' U) := measure_biUnion_finset_le _ _
  _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
  _ < ∞ := ENNReal.mul_lt_top (ENNReal.natCast_ne_top _) h
state_before: case intro
𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : μ.IsMulLeftInvariant
U : Set G
hU : IsOpen U
h'U : (interior U).Nonempty
h : μ U ≠ ⊤
K : Set G
hK : IsCompact K
t : Finset G
hKt : K ⊆ ⋃ g ∈ t, (fun h => g * h) ⁻¹' U
⊢ μ K < ⊤
state_after: no goals

tactic: simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
state_before: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : μ.IsMulLeftInvariant
U : Set G
hU : IsOpen U
h'U : (interior U).Nonempty
h : μ U ≠ ⊤
K : Set G
hK : IsCompact K
t : Finset G
hKt : K ⊆ ⋃ g ∈ t, (fun h => g * h) ⁻¹' U
⊢ ∑ g ∈ t, μ ((fun h => g * h) ⁻¹' U) = ↑t.card * μ U
state_after: no goals
Theorem: CategoryTheory.eq_whisker
File: Mathlib/CategoryTheory/Category/Basic.lean

tactic: rw [w]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y Z : C
f g : X ⟶ Y
w : f = g
h : Y ⟶ Z
⊢ f ≫ h = g ≫ h
state_after: no goals
Theorem: iUnion_Ioc_intCast
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simpa only [zero_add] using iUnion_Ioc_add_intCast (0 : α)
state_before: α : Type u_1
inst✝¹ : LinearOrderedRing α
inst✝ : Archimedean α
a : α
⊢ ⋃ n, Ioc (↑n) (↑n + 1) = univ
state_after: no goals
Theorem: ContinuousLinearMap.opNorm_smul_le
File: Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean

tactic: rw [smul_apply, norm_smul, mul_assoc]
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type u_3
E : Type u_4
Eₗ : Type u_5
F : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝²⁰ : SeminormedAddCommGroup E
inst✝¹⁹ : SeminormedAddCommGroup Eₗ
inst✝¹⁸ : SeminormedAddCommGroup F
inst✝¹⁷ : SeminormedAddCommGroup Fₗ
inst✝¹⁶ : SeminormedAddCommGroup G
inst✝¹⁵ : SeminormedAddCommGroup Gₗ
inst✝¹⁴ : NontriviallyNormedField 𝕜
inst✝¹³ : NontriviallyNormedField 𝕜₂
inst✝¹² : NontriviallyNormedField 𝕜₃
inst✝¹¹ : NormedSpace 𝕜 E
inst✝¹⁰ : NormedSpace 𝕜 Eₗ
inst✝⁹ : NormedSpace 𝕜₂ F
inst✝⁸ : NormedSpace 𝕜 Fₗ
inst✝⁷ : NormedSpace 𝕜₃ G
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝⁶ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁵ : FunLike 𝓕 E F
inst✝⁴ : RingHomIsometric σ₁₂
inst✝³ : RingHomIsometric σ₂₃
f✝ g : E →SL[σ₁₂] F
h : F →SL[σ₂₃] G
x : E
𝕜' : Type u_11
inst✝² : NormedField 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : SMulCommClass 𝕜₂ 𝕜' F
c : 𝕜'
f : E →SL[σ₁₂] F
x✝ : E
⊢ ‖(c • f) x✝‖ ≤ ‖c‖ * ‖f‖ * ‖x✝‖
state_after: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type u_3
E : Type u_4
Eₗ : Type u_5
F : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝²⁰ : SeminormedAddCommGroup E
inst✝¹⁹ : SeminormedAddCommGroup Eₗ
inst✝¹⁸ : SeminormedAddCommGroup F
inst✝¹⁷ : SeminormedAddCommGroup Fₗ
inst✝¹⁶ : SeminormedAddCommGroup G
inst✝¹⁵ : SeminormedAddCommGroup Gₗ
inst✝¹⁴ : NontriviallyNormedField 𝕜
inst✝¹³ : NontriviallyNormedField 𝕜₂
inst✝¹² : NontriviallyNormedField 𝕜₃
inst✝¹¹ : NormedSpace 𝕜 E
inst✝¹⁰ : NormedSpace 𝕜 Eₗ
inst✝⁹ : NormedSpace 𝕜₂ F
inst✝⁸ : NormedSpace 𝕜 Fₗ
inst✝⁷ : NormedSpace 𝕜₃ G
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝⁶ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁵ : FunLike 𝓕 E F
inst✝⁴ : RingHomIsometric σ₁₂
inst✝³ : RingHomIsometric σ₂₃
f✝ g : E →SL[σ₁₂] F
h : F →SL[σ₂₃] G
x : E
𝕜' : Type u_11
inst✝² : NormedField 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : SMulCommClass 𝕜₂ 𝕜' F
c : 𝕜'
f : E →SL[σ₁₂] F
x✝ : E
⊢ ‖c‖ * ‖f x✝‖ ≤ ‖c‖ * (‖f‖ * ‖x✝‖)

tactic: exact mul_le_mul_of_nonneg_left (le_opNorm _ _) (norm_nonneg _)
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type u_3
E : Type u_4
Eₗ : Type u_5
F : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝²⁰ : SeminormedAddCommGroup E
inst✝¹⁹ : SeminormedAddCommGroup Eₗ
inst✝¹⁸ : SeminormedAddCommGroup F
inst✝¹⁷ : SeminormedAddCommGroup Fₗ
inst✝¹⁶ : SeminormedAddCommGroup G
inst✝¹⁵ : SeminormedAddCommGroup Gₗ
inst✝¹⁴ : NontriviallyNormedField 𝕜
inst✝¹³ : NontriviallyNormedField 𝕜₂
inst✝¹² : NontriviallyNormedField 𝕜₃
inst✝¹¹ : NormedSpace 𝕜 E
inst✝¹⁰ : NormedSpace 𝕜 Eₗ
inst✝⁹ : NormedSpace 𝕜₂ F
inst✝⁸ : NormedSpace 𝕜 Fₗ
inst✝⁷ : NormedSpace 𝕜₃ G
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝⁶ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁵ : FunLike 𝓕 E F
inst✝⁴ : RingHomIsometric σ₁₂
inst✝³ : RingHomIsometric σ₂₃
f✝ g : E →SL[σ₁₂] F
h : F →SL[σ₂₃] G
x : E
𝕜' : Type u_11
inst✝² : NormedField 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : SMulCommClass 𝕜₂ 𝕜' F
c : 𝕜'
f : E →SL[σ₁₂] F
x✝ : E
⊢ ‖c‖ * ‖f x✝‖ ≤ ‖c‖ * (‖f‖ * ‖x✝‖)
state_after: no goals
Theorem: LSeries.mul_delta_eq_smul_delta
File: Mathlib/NumberTheory/LSeries/Basic.lean

tactic: ext n
state_before: f : ℕ → ℂ
⊢ f * δ = f 1 • δ
state_after: case h
f : ℕ → ℂ
n : ℕ
⊢ (f * δ) n = (f 1 • δ) n

tactic: simp only [Pi.mul_apply, delta, mul_ite, mul_one, mul_zero, Pi.smul_apply, smul_eq_mul]
state_before: case h
f : ℕ → ℂ
n : ℕ
⊢ (f * δ) n = (f 1 • δ) n
state_after: case h
f : ℕ → ℂ
n : ℕ
⊢ (if n = 1 then f n else 0) = if n = 1 then f 1 else 0

tactic: split_ifs with hn <;> simp only [hn]
state_before: case h
f : ℕ → ℂ
n : ℕ
⊢ (if n = 1 then f n else 0) = if n = 1 then f 1 else 0
state_after: no goals
Theorem: ChainComplex.fromSingle₀Equiv_symm_apply_f_zero
File: Mathlib/Algebra/Homology/Single.lean

tactic: simp [fromSingle₀Equiv]
state_before: V : Type u
inst✝² : Category.{v, u} V
inst✝¹ : HasZeroMorphisms V
inst✝ : HasZeroObject V
C : ChainComplex V ℕ
X : V
f : X ⟶ C.X 0
⊢ ((C.fromSingle₀Equiv X).symm f).f 0 = f
state_after: no goals
Theorem: IntermediateField.sup_toSubalgebra_of_isAlgebraic_left
File: Mathlib/FieldTheory/Adjoin.lean

tactic: have := sup_toSubalgebra_of_isAlgebraic_right E2 E1
state_before: F : Type u_1
inst✝⁶ : Field F
E : Type u_2
inst✝⁵ : Field E
inst✝⁴ : Algebra F E
S : Set E
α : E
K : Type u_3
L : Type u_4
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
E1 E2 : IntermediateField K L
inst✝ : Algebra.IsAlgebraic K ↥E1
⊢ (E1 ⊔ E2).toSubalgebra = E1.toSubalgebra ⊔ E2.toSubalgebra
state_after: F : Type u_1
inst✝⁶ : Field F
E : Type u_2
inst✝⁵ : Field E
inst✝⁴ : Algebra F E
S : Set E
α : E
K : Type u_3
L : Type u_4
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
E1 E2 : IntermediateField K L
inst✝ : Algebra.IsAlgebraic K ↥E1
this : (E2 ⊔ E1).toSubalgebra = E2.toSubalgebra ⊔ E1.toSubalgebra
⊢ (E1 ⊔ E2).toSubalgebra = E1.toSubalgebra ⊔ E2.toSubalgebra

tactic: rwa [sup_comm (a := E1), sup_comm (a := E1.toSubalgebra)]
state_before: F : Type u_1
inst✝⁶ : Field F
E : Type u_2
inst✝⁵ : Field E
inst✝⁴ : Algebra F E
S : Set E
α : E
K : Type u_3
L : Type u_4
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
E1 E2 : IntermediateField K L
inst✝ : Algebra.IsAlgebraic K ↥E1
this : (E2 ⊔ E1).toSubalgebra = E2.toSubalgebra ⊔ E1.toSubalgebra
⊢ (E1 ⊔ E2).toSubalgebra = E1.toSubalgebra ⊔ E2.toSubalgebra
state_after: no goals
Theorem: Multiset.disjoint_cons_right
File: Mathlib/Data/Multiset/Basic.lean

tactic: rw [disjoint_comm, disjoint_cons_left]
state_before: α : Type u_1
β : Type v
γ : Type u_2
a : α
s t : Multiset α
⊢ s.Disjoint (a ::ₘ t) ↔ a ∉ s ∧ s.Disjoint t
state_after: α : Type u_1
β : Type v
γ : Type u_2
a : α
s t : Multiset α
⊢ a ∉ s ∧ t.Disjoint s ↔ a ∉ s ∧ s.Disjoint t

tactic: tauto
state_before: α : Type u_1
β : Type v
γ : Type u_2
a : α
s t : Multiset α
⊢ a ∉ s ∧ t.Disjoint s ↔ a ∉ s ∧ s.Disjoint t
state_after: no goals
Theorem: cmp_swap
File: Mathlib/Order/Compare.lean

tactic: unfold cmp cmpUsing
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : DecidableRel fun x x_1 => x < x_1
a b : α
⊢ (cmp a b).swap = cmp b a
state_after: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : DecidableRel fun x x_1 => x < x_1
a b : α
⊢ (if (fun x x_1 => x < x_1) a b then lt else if (fun x x_1 => x < x_1) b a then gt else eq).swap =
    if (fun x x_1 => x < x_1) b a then lt else if (fun x x_1 => x < x_1) a b then gt else eq

tactic: by_cases h : a < b <;> by_cases h₂ : b < a <;> simp [h, h₂, Ordering.swap]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : DecidableRel fun x x_1 => x < x_1
a b : α
⊢ (if (fun x x_1 => x < x_1) a b then lt else if (fun x x_1 => x < x_1) b a then gt else eq).swap =
    if (fun x x_1 => x < x_1) b a then lt else if (fun x x_1 => x < x_1) a b then gt else eq
state_after: case pos
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : DecidableRel fun x x_1 => x < x_1
a b : α
h : a < b
h₂ : b < a
⊢ False

tactic: exact lt_asymm h h₂
state_before: case pos
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : DecidableRel fun x x_1 => x < x_1
a b : α
h : a < b
h₂ : b < a
⊢ False
state_after: no goals
Theorem: IsClosed.interior_union_right
File: Mathlib/Topology/Basic.lean

tactic: simpa only [union_comm _ t] using h.interior_union_left
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
h : IsClosed t
⊢ interior (s ∪ t) ⊆ interior s ∪ t
state_after: no goals
Theorem: Polynomial.reverse_trailingCoeff
File: Mathlib/Algebra/Polynomial/Reverse.lean

tactic: rw [trailingCoeff, natTrailingDegree_reverse, coeff_zero_reverse]
state_before: R : Type u_1
inst✝ : Semiring R
f✝ f : R[X]
⊢ f.reverse.trailingCoeff = f.leadingCoeff
state_after: no goals
Theorem: Fin.lt_succAbove_iff_le_castSucc
File: Mathlib/Data/Fin/Basic.lean

tactic: cases' castSucc_lt_or_lt_succ p i with H H
state_before: n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
⊢ p < p.succAbove i ↔ p ≤ i.castSucc
state_after: case inl
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : i.castSucc < p
⊢ p < p.succAbove i ↔ p ≤ i.castSucc

case inr
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : p < i.succ
⊢ p < p.succAbove i ↔ p ≤ i.castSucc

tactic: rw [iff_false_right (Fin.not_le.2 H), succAbove_of_castSucc_lt _ _ H]
state_before: case inl
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : i.castSucc < p
⊢ p < p.succAbove i ↔ p ≤ i.castSucc
state_after: case inl
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : i.castSucc < p
⊢ ¬p < i.castSucc

tactic: exact Fin.not_lt.2 $ Fin.le_of_lt H
state_before: case inl
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : i.castSucc < p
⊢ ¬p < i.castSucc
state_after: no goals

tactic: rwa [succAbove_of_lt_succ _ _ H, iff_true_left H, le_castSucc_iff]
state_before: case inr
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : p < i.succ
⊢ p < p.succAbove i ↔ p ≤ i.castSucc
state_after: no goals
Theorem: LinearMap.compl₂_id
File: Mathlib/LinearAlgebra/BilinearMap.lean

tactic: ext
state_before: R : Type u_1
inst✝²³ : CommSemiring R
R₂ : Type u_2
inst✝²² : CommSemiring R₂
R₃ : Type u_3
inst✝²¹ : CommSemiring R₃
R₄ : Type u_4
inst✝²⁰ : CommSemiring R₄
M : Type u_5
N : Type u_6
P : Type u_7
Q : Type u_8
Mₗ : Type u_9
Nₗ : Type u_10
Pₗ : Type u_11
Qₗ : Type u_12
Qₗ' : Type u_13
inst✝¹⁹ : AddCommMonoid M
inst✝¹⁸ : AddCommMonoid N
inst✝¹⁷ : AddCommMonoid P
inst✝¹⁶ : AddCommMonoid Q
inst✝¹⁵ : AddCommMonoid Mₗ
inst✝¹⁴ : AddCommMonoid Nₗ
inst✝¹³ : AddCommMonoid Pₗ
inst✝¹² : AddCommMonoid Qₗ
inst✝¹¹ : AddCommMonoid Qₗ'
inst✝¹⁰ : Module R M
inst✝⁹ : Module R₂ N
inst✝⁸ : Module R₃ P
inst✝⁷ : Module R₄ Q
inst✝⁶ : Module R Mₗ
inst✝⁵ : Module R Nₗ
inst✝⁴ : Module R Pₗ
inst✝³ : Module R Qₗ
inst✝² : Module R Qₗ'
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₄₂ : R₄ →+* R₂
σ₄₃ : R₄ →+* R₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : RingHomCompTriple σ₄₂ σ₂₃ σ₄₃
f : M →ₛₗ[σ₁₃] N →ₛₗ[σ₂₃] P
⊢ f.compl₂ id = f
state_after: case h.h
R : Type u_1
inst✝²³ : CommSemiring R
R₂ : Type u_2
inst✝²² : CommSemiring R₂
R₃ : Type u_3
inst✝²¹ : CommSemiring R₃
R₄ : Type u_4
inst✝²⁰ : CommSemiring R₄
M : Type u_5
N : Type u_6
P : Type u_7
Q : Type u_8
Mₗ : Type u_9
Nₗ : Type u_10
Pₗ : Type u_11
Qₗ : Type u_12
Qₗ' : Type u_13
inst✝¹⁹ : AddCommMonoid M
inst✝¹⁸ : AddCommMonoid N
inst✝¹⁷ : AddCommMonoid P
inst✝¹⁶ : AddCommMonoid Q
inst✝¹⁵ : AddCommMonoid Mₗ
inst✝¹⁴ : AddCommMonoid Nₗ
inst✝¹³ : AddCommMonoid Pₗ
inst✝¹² : AddCommMonoid Qₗ
inst✝¹¹ : AddCommMonoid Qₗ'
inst✝¹⁰ : Module R M
inst✝⁹ : Module R₂ N
inst✝⁸ : Module R₃ P
inst✝⁷ : Module R₄ Q
inst✝⁶ : Module R Mₗ
inst✝⁵ : Module R Nₗ
inst✝⁴ : Module R Pₗ
inst✝³ : Module R Qₗ
inst✝² : Module R Qₗ'
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₄₂ : R₄ →+* R₂
σ₄₃ : R₄ →+* R₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : RingHomCompTriple σ₄₂ σ₂₃ σ₄₃
f : M →ₛₗ[σ₁₃] N →ₛₗ[σ₂₃] P
x✝¹ : M
x✝ : N
⊢ ((f.compl₂ id) x✝¹) x✝ = (f x✝¹) x✝

tactic: rw [compl₂_apply, id_coe, _root_.id]
state_before: case h.h
R : Type u_1
inst✝²³ : CommSemiring R
R₂ : Type u_2
inst✝²² : CommSemiring R₂
R₃ : Type u_3
inst✝²¹ : CommSemiring R₃
R₄ : Type u_4
inst✝²⁰ : CommSemiring R₄
M : Type u_5
N : Type u_6
P : Type u_7
Q : Type u_8
Mₗ : Type u_9
Nₗ : Type u_10
Pₗ : Type u_11
Qₗ : Type u_12
Qₗ' : Type u_13
inst✝¹⁹ : AddCommMonoid M
inst✝¹⁸ : AddCommMonoid N
inst✝¹⁷ : AddCommMonoid P
inst✝¹⁶ : AddCommMonoid Q
inst✝¹⁵ : AddCommMonoid Mₗ
inst✝¹⁴ : AddCommMonoid Nₗ
inst✝¹³ : AddCommMonoid Pₗ
inst✝¹² : AddCommMonoid Qₗ
inst✝¹¹ : AddCommMonoid Qₗ'
inst✝¹⁰ : Module R M
inst✝⁹ : Module R₂ N
inst✝⁸ : Module R₃ P
inst✝⁷ : Module R₄ Q
inst✝⁶ : Module R Mₗ
inst✝⁵ : Module R Nₗ
inst✝⁴ : Module R Pₗ
inst✝³ : Module R Qₗ
inst✝² : Module R Qₗ'
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₄₂ : R₄ →+* R₂
σ₄₃ : R₄ →+* R₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : RingHomCompTriple σ₄₂ σ₂₃ σ₄₃
f : M →ₛₗ[σ₁₃] N →ₛₗ[σ₂₃] P
x✝¹ : M
x✝ : N
⊢ ((f.compl₂ id) x✝¹) x✝ = (f x✝¹) x✝
state_after: no goals
Theorem: ContinuousOn.isOpen_preimage
File: Mathlib/Topology/ContinuousOn.lean

tactic: convert (continuousOn_open_iff hs).mp h t ht
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝³ : (i : ι) → TopologicalSpace (π i)
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
t : Set β
h : ContinuousOn f s
hs : IsOpen s
hp : f ⁻¹' t ⊆ s
ht : IsOpen t
⊢ IsOpen (f ⁻¹' t)
state_after: case h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝³ : (i : ι) → TopologicalSpace (π i)
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
t : Set β
h : ContinuousOn f s
hs : IsOpen s
hp : f ⁻¹' t ⊆ s
ht : IsOpen t
⊢ f ⁻¹' t = s ∩ f ⁻¹' t

tactic: rw [inter_comm, inter_eq_self_of_subset_left hp]
state_before: case h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝³ : (i : ι) → TopologicalSpace (π i)
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
t : Set β
h : ContinuousOn f s
hs : IsOpen s
hp : f ⁻¹' t ⊆ s
ht : IsOpen t
⊢ f ⁻¹' t = s ∩ f ⁻¹' t
state_after: no goals
Theorem: NNReal.sqrt_zero
File: Mathlib/Data/Real/Sqrt.lean

tactic: simp
state_before: x y : ℝ≥0
⊢ sqrt 0 = 0
state_after: no goals
Theorem: CategoryTheory.ComposableArrows.ext₀
File: Mathlib/CategoryTheory/ComposableArrows.lean

tactic: simp at hi
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C 0
h : F.obj' 0 ⋯ = G.obj 0
i : ℕ
hi : i < 0
⊢ F.map' i (i + 1) ⋯ hi = eqToHom ⋯ ≫ G.map' i (i + 1) ⋯ hi ≫ eqToHom ⋯
state_after: no goals
Theorem: LinearMap.trace_mul_cycle
File: Mathlib/LinearAlgebra/Trace.lean

tactic: rw [LinearMap.trace_mul_comm, ← mul_assoc]
state_before: R : Type u
inst✝⁶ : CommSemiring R
M : Type v
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
ι : Type w
inst✝³ : DecidableEq ι
inst✝² : Fintype ι
κ : Type u_1
inst✝¹ : DecidableEq κ
inst✝ : Fintype κ
b : Basis ι R M
c : Basis κ R M
f g h : M →ₗ[R] M
⊢ (trace R M) (f * g * h) = (trace R M) (h * f * g)
state_after: no goals
Theorem: CategoryTheory.Limits.PushoutCocone.unop_snd
File: Mathlib/CategoryTheory/Limits/Opposites.lean

tactic: aesop_cat
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
J : Type u₂
inst✝ : Category.{v₂, u₂} J
X✝ : Type v₂
X Y Z : Cᵒᵖ
f : X ⟶ Y
g : X ⟶ Z
c : PushoutCocone f g
⊢ c.unop.snd = c.inr.unop
state_after: no goals
Theorem: NormedSpace.polar_closure
File: Mathlib/Analysis/NormedSpace/Dual.lean

tactic: simpa [LinearMap.flip_flip] using
  (isClosed_polar _ _).preimage (inclusionInDoubleDual 𝕜 E).continuous
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : Set E
⊢ IsClosed (((dualPairing 𝕜 E).flip.flip.polar ∘ ⇑OrderDual.ofDual) ((dualPairing 𝕜 E).flip.polar s))
state_after: no goals