1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Applicative.map_seq_map
File: Mathlib/Control/Applicative.lean

tactic: simp [flip, functor_norm]
state_before: F : Type u → Type v
inst✝¹ : Applicative F
inst✝ : LawfulApplicative F
α β γ σ : Type u
f : α → β → γ
g : σ → β
x : F α
y : F σ
⊢ (Seq.seq (f <$> x) fun x => g <$> y) = Seq.seq (((fun x => x ∘ g) ∘ f) <$> x) fun x => y
state_after: no goals
Theorem: frontier_empty
File: Mathlib/Topology/Basic.lean

tactic: simp [frontier]
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
⊢ frontier ∅ = ∅
state_after: no goals
Theorem: SimpleGraph.lapMatrix_toLin'_apply_eq_zero_iff_forall_adj
File: Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean

tactic: rw [← (posSemidef_lapMatrix ℝ G).toLinearMap₂'_zero_iff, star_trivial,
    lapMatrix_toLinearMap₂'_apply'_eq_zero_iff_forall_adj]
state_before: V : Type u_1
R : Type u_2
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
x : V → ℝ
⊢ (toLin' (lapMatrix ℝ G)) x = 0 ↔ ∀ (i j : V), G.Adj i j → x i = x j
state_after: no goals
Theorem: Nat.Coprime.lcm_eq_mul
File: Mathlib/Data/Nat/GCD/Basic.lean

tactic: rw [← one_mul (lcm m n), ← h.gcd_eq_one, gcd_mul_lcm]
state_before: m n : ℕ
h : m.Coprime n
⊢ m.lcm n = m * n
state_after: no goals
Theorem: Polynomial.HasSeparableContraction.eq_degree
File: Mathlib/RingTheory/Polynomial/SeparableDegree.lean

tactic: let ⟨a, ha⟩ := hf.dvd_degree'
state_before: F : Type u_1
inst✝ : CommSemiring F
q : ℕ
f✝ : F[X]
hf✝ : HasSeparableContraction q f✝
f : F[X]
hf : HasSeparableContraction 1 f
⊢ hf.degree = f.natDegree
state_after: F : Type u_1
inst✝ : CommSemiring F
q : ℕ
f✝ : F[X]
hf✝ : HasSeparableContraction q f✝
f : F[X]
hf : HasSeparableContraction 1 f
a : ℕ
ha : hf.degree * 1 ^ a = f.natDegree
⊢ hf.degree = f.natDegree

tactic: rw [← ha, one_pow a, mul_one]
state_before: F : Type u_1
inst✝ : CommSemiring F
q : ℕ
f✝ : F[X]
hf✝ : HasSeparableContraction q f✝
f : F[X]
hf : HasSeparableContraction 1 f
a : ℕ
ha : hf.degree * 1 ^ a = f.natDegree
⊢ hf.degree = f.natDegree
state_after: no goals
Theorem: IsOpen.trans
File: Mathlib/Topology/Constructions.lean

tactic: rcases isOpen_induced_iff.mp ht with ⟨s', hs', rfl⟩
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
s : Set X
t : Set ↑s
ht : IsOpen t
hs : IsOpen s
⊢ IsOpen (Subtype.val '' t)
state_after: case intro.intro
X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝ : TopologicalSpace X
s : Set X
hs : IsOpen s
s' : Set X
hs' : IsOpen s'
ht : IsOpen (Subtype.val ⁻¹' s')
⊢ IsOpen (Subtype.val '' (Subtype.val ⁻¹' s'))

tactic: rw [Subtype.image_preimage_coe]
state_before: case intro.intro
X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝ : TopologicalSpace X
s : Set X
hs : IsOpen s
s' : Set X
hs' : IsOpen s'
ht : IsOpen (Subtype.val ⁻¹' s')
⊢ IsOpen (Subtype.val '' (Subtype.val ⁻¹' s'))
state_after: case intro.intro
X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝ : TopologicalSpace X
s : Set X
hs : IsOpen s
s' : Set X
hs' : IsOpen s'
ht : IsOpen (Subtype.val ⁻¹' s')
⊢ IsOpen (s ∩ s')

tactic: exact hs.inter hs'
state_before: case intro.intro
X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝ : TopologicalSpace X
s : Set X
hs : IsOpen s
s' : Set X
hs' : IsOpen s'
ht : IsOpen (Subtype.val ⁻¹' s')
⊢ IsOpen (s ∩ s')
state_after: no goals
Theorem: EuclideanGeometry.angle_eq_pi_div_two_of_oangle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean

tactic: rw [angle, ← InnerProductGeometry.inner_eq_zero_iff_angle_eq_pi_div_two]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ ∠ p₁ p₂ p₃ = π / 2
state_after: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ ⟪p₁ -ᵥ p₂, p₃ -ᵥ p₂⟫_ℝ = 0

tactic: exact o.inner_eq_zero_of_oangle_eq_pi_div_two h
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ ⟪p₁ -ᵥ p₂, p₃ -ᵥ p₂⟫_ℝ = 0
state_after: no goals
Theorem: Ioo_mem_nhdsWithin_Iio'
File: Mathlib/Topology/Order/OrderClosed.lean

tactic: simpa only [← Iio_inter_Ioi] using inter_mem_nhdsWithin _ (Ioi_mem_nhds H)
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : ClosedIicTopology α
inst✝ : TopologicalSpace β
a b c : α
f : α → β
H : a < b
⊢ Ioo a b ∈ 𝓝[<] b
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.RightFraction.map_ofHom
File: Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean

tactic: simp [map]
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{u_4, u_2} D
W : MorphismProperty C
X Y : C
f : X ⟶ Y
L : C ⥤ D
hL : W.IsInvertedBy L
inst✝ : W.ContainsIdentities
⊢ (ofHom W f).map L hL = L.map f
state_after: no goals
Theorem: Matrix.induction_on
File: Mathlib/Data/Matrix/Basis.lean

tactic: inhabit m
state_before: l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁷ : DecidableEq l
inst✝⁶ : DecidableEq m
inst✝⁵ : DecidableEq n
inst✝⁴ : Semiring α
inst✝³ : Finite m
inst✝² : Finite n
inst✝¹ : Nonempty m
inst✝ : Nonempty n
P : Matrix m n α → Prop
M : Matrix m n α
h_add : ∀ (p q : Matrix m n α), P p → P q → P (p + q)
h_std_basis : ∀ (i : m) (j : n) (x : α), P (stdBasisMatrix i j x)
⊢ P 0
state_after: l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁷ : DecidableEq l
inst✝⁶ : DecidableEq m
inst✝⁵ : DecidableEq n
inst✝⁴ : Semiring α
inst✝³ : Finite m
inst✝² : Finite n
inst✝¹ : Nonempty m
inst✝ : Nonempty n
P : Matrix m n α → Prop
M : Matrix m n α
h_add : ∀ (p q : Matrix m n α), P p → P q → P (p + q)
h_std_basis : ∀ (i : m) (j : n) (x : α), P (stdBasisMatrix i j x)
inhabited_h : Inhabited m
⊢ P 0

tactic: inhabit n
state_before: l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁷ : DecidableEq l
inst✝⁶ : DecidableEq m
inst✝⁵ : DecidableEq n
inst✝⁴ : Semiring α
inst✝³ : Finite m
inst✝² : Finite n
inst✝¹ : Nonempty m
inst✝ : Nonempty n
P : Matrix m n α → Prop
M : Matrix m n α
h_add : ∀ (p q : Matrix m n α), P p → P q → P (p + q)
h_std_basis : ∀ (i : m) (j : n) (x : α), P (stdBasisMatrix i j x)
inhabited_h : Inhabited m
⊢ P 0
state_after: l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁷ : DecidableEq l
inst✝⁶ : DecidableEq m
inst✝⁵ : DecidableEq n
inst✝⁴ : Semiring α
inst✝³ : Finite m
inst✝² : Finite n
inst✝¹ : Nonempty m
inst✝ : Nonempty n
P : Matrix m n α → Prop
M : Matrix m n α
h_add : ∀ (p q : Matrix m n α), P p → P q → P (p + q)
h_std_basis : ∀ (i : m) (j : n) (x : α), P (stdBasisMatrix i j x)
inhabited_h✝ : Inhabited m
inhabited_h : Inhabited n
⊢ P 0

tactic: simpa using h_std_basis default default 0
state_before: l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁷ : DecidableEq l
inst✝⁶ : DecidableEq m
inst✝⁵ : DecidableEq n
inst✝⁴ : Semiring α
inst✝³ : Finite m
inst✝² : Finite n
inst✝¹ : Nonempty m
inst✝ : Nonempty n
P : Matrix m n α → Prop
M : Matrix m n α
h_add : ∀ (p q : Matrix m n α), P p → P q → P (p + q)
h_std_basis : ∀ (i : m) (j : n) (x : α), P (stdBasisMatrix i j x)
inhabited_h✝ : Inhabited m
inhabited_h : Inhabited n
⊢ P 0
state_after: no goals
Theorem: min_le_of_mul_le_sq
File: Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean

tactic: simpa using min_le_max_of_mul_le_mul (h.trans_eq <| pow_two _)
state_before: β : Type u_1
G : Type u_2
M : Type u_3
inst✝³ : Monoid M
inst✝² : LinearOrder M
inst✝¹ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass M M (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b c : M
h : a * b ≤ c ^ 2
⊢ min a b ≤ c
state_after: no goals
Theorem: Polynomial.rootMultiplicity_eq_zero_iff
File: Mathlib/Algebra/Polynomial/Div.lean

tactic: classical
simp only [rootMultiplicity_eq_multiplicity, dite_eq_left_iff, PartENat.get_eq_iff_eq_coe,
  Nat.cast_zero, multiplicity.multiplicity_eq_zero, dvd_iff_isRoot, not_imp_not]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : CommRing R
p✝ q p : R[X]
x : R
⊢ rootMultiplicity x p = 0 ↔ p.IsRoot x → p = 0
state_after: no goals

tactic: simp only [rootMultiplicity_eq_multiplicity, dite_eq_left_iff, PartENat.get_eq_iff_eq_coe,
  Nat.cast_zero, multiplicity.multiplicity_eq_zero, dvd_iff_isRoot, not_imp_not]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : CommRing R
p✝ q p : R[X]
x : R
⊢ rootMultiplicity x p = 0 ↔ p.IsRoot x → p = 0
state_after: no goals
Theorem: Set.Nonempty.mul_zero
File: Mathlib/Data/Set/Pointwise/Basic.lean

tactic: simpa [mem_mul] using hs
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝ : MulZeroClass α
s t : Set α
hs : s.Nonempty
⊢ 0 ⊆ s * 0
state_after: no goals
Theorem: CategoryTheory.Iso.hom_inv_id_triangle_hom₂
File: Mathlib/CategoryTheory/Triangulated/Basic.lean

tactic: rw [← comp_hom₂, e.hom_inv_id, id_hom₂]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasShift C ℤ
T₁ T₂ T₃ A B : Triangle C
e : A ≅ B
⊢ e.hom.hom₂ ≫ e.inv.hom₂ = 𝟙 A.obj₂
state_after: no goals
Theorem: NumberField.mem_span_basisOfFractionalIdeal
File: Mathlib/NumberTheory/NumberField/FractionalIdeal.lean

tactic: rw [basisOfFractionalIdeal, (fractionalIdealBasis K I.1).ofIsLocalizedModule_span ℚ ℤ⁰ _]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
I : (FractionalIdeal (𝓞 K)⁰ K)ˣ
x : K
⊢ x ∈ Submodule.span ℤ (Set.range ⇑(basisOfFractionalIdeal K I)) ↔ x ∈ ↑↑I
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
I : (FractionalIdeal (𝓞 K)⁰ K)ˣ
x : K
⊢ x ∈ LinearMap.range (↑ℤ (↑↑I).subtype) ↔ x ∈ ↑↑I

tactic: simp
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
I : (FractionalIdeal (𝓞 K)⁰ K)ˣ
x : K
⊢ x ∈ LinearMap.range (↑ℤ (↑↑I).subtype) ↔ x ∈ ↑↑I
state_after: no goals
Theorem: LinearIndependent.union
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: simpa
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
s t : Set M
hs : LinearIndependent R fun (x : ↑s) => ↑x
ht : LinearIndependent R fun (x : ↑t) => ↑x
hst : Disjoint (span R s) (span R t)
⊢ Disjoint (span R (range fun x => ↑x)) (span R (range fun x => ↑x))
state_after: no goals

tactic: simp
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
s t : Set M
hs : LinearIndependent R fun (x : ↑s) => ↑x
ht : LinearIndependent R fun (x : ↑t) => ↑x
hst : Disjoint (span R s) (span R t)
⊢ range (Sum.elim (fun x => ↑x) fun x => ↑x) = s ∪ t
state_after: no goals
Theorem: Cardinal.out_embedding
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: trans
state_before: α β : Type u
c c' : Cardinal.{u_1}
⊢ c ≤ c' ↔ Nonempty (Quotient.out c ↪ Quotient.out c')
state_after: α β : Type u
c c' : Cardinal.{u_1}
⊢ c ≤ c' ↔ ?m.7126

α β : Type u
c c' : Cardinal.{u_1}
⊢ ?m.7126 ↔ Nonempty (Quotient.out c ↪ Quotient.out c')

α β : Type u
c c' : Cardinal.{u_1}
⊢ Prop

tactic: rw [← Quotient.out_eq c, ← Quotient.out_eq c']
state_before: α β : Type u
c c' : Cardinal.{u_1}
⊢ c ≤ c' ↔ ?m.7126
state_after: no goals

tactic: rw [mk'_def, mk'_def, le_def]
state_before: α β : Type u
c c' : Cardinal.{u_1}
⊢ ⟦Quotient.out c⟧ ≤ ⟦Quotient.out c'⟧ ↔ Nonempty (Quotient.out c ↪ Quotient.out c')
state_after: no goals
Theorem: EReal.image_coe_Ici
File: Mathlib/Data/Real/EReal.lean

tactic: refine (image_comp WithBot.some WithTop.some _).trans ?_
state_before: x : ℝ
⊢ Real.toEReal '' Ici x = Ico ↑x ⊤
state_after: x : ℝ
⊢ WithBot.some '' (WithTop.some '' Ici x) = Ico ↑x ⊤

tactic: rw [WithTop.image_coe_Ici, WithBot.image_coe_Ico]
state_before: x : ℝ
⊢ WithBot.some '' (WithTop.some '' Ici x) = Ico ↑x ⊤
state_after: x : ℝ
⊢ Ico ↑↑x ↑⊤ = Ico ↑x ⊤

tactic: rfl
state_before: x : ℝ
⊢ Ico ↑↑x ↑⊤ = Ico ↑x ⊤
state_after: no goals
Theorem: SimpleGraph.ComponentCompl.supp_injective
File: Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean

tactic: refine ConnectedComponent.ind₂ ?_
state_before: V : Type u
G : SimpleGraph V
K L L' M : Set V
⊢ Function.Injective supp
state_after: V : Type u
G : SimpleGraph V
K L L' M : Set V
⊢ ∀ (v w : ↑Kᶜ),
    supp ((induce Kᶜ G).connectedComponentMk v) = supp ((induce Kᶜ G).connectedComponentMk w) →
      (induce Kᶜ G).connectedComponentMk v = (induce Kᶜ G).connectedComponentMk w

tactic: rintro ⟨v, hv⟩ ⟨w, hw⟩ h
state_before: V : Type u
G : SimpleGraph V
K L L' M : Set V
⊢ ∀ (v w : ↑Kᶜ),
    supp ((induce Kᶜ G).connectedComponentMk v) = supp ((induce Kᶜ G).connectedComponentMk w) →
      (induce Kᶜ G).connectedComponentMk v = (induce Kᶜ G).connectedComponentMk w
state_after: case mk.mk
V : Type u
G : SimpleGraph V
K L L' M : Set V
v : V
hv : v ∈ Kᶜ
w : V
hw : w ∈ Kᶜ
h : supp ((induce Kᶜ G).connectedComponentMk ⟨v, hv⟩) = supp ((induce Kᶜ G).connectedComponentMk ⟨w, hw⟩)
⊢ (induce Kᶜ G).connectedComponentMk ⟨v, hv⟩ = (induce Kᶜ G).connectedComponentMk ⟨w, hw⟩

tactic: simp only [Set.ext_iff, ConnectedComponent.eq, Set.mem_setOf_eq, ComponentCompl.supp] at h ⊢
state_before: case mk.mk
V : Type u
G : SimpleGraph V
K L L' M : Set V
v : V
hv : v ∈ Kᶜ
w : V
hw : w ∈ Kᶜ
h : supp ((induce Kᶜ G).connectedComponentMk ⟨v, hv⟩) = supp ((induce Kᶜ G).connectedComponentMk ⟨w, hw⟩)
⊢ (induce Kᶜ G).connectedComponentMk ⟨v, hv⟩ = (induce Kᶜ G).connectedComponentMk ⟨w, hw⟩
state_after: case mk.mk
V : Type u
G : SimpleGraph V
K L L' M : Set V
v : V
hv : v ∈ Kᶜ
w : V
hw : w ∈ Kᶜ
h :
  ∀ (x : V),
    (∃ (h : x ∉ K), (induce Kᶜ G).Reachable ⟨x, ⋯⟩ ⟨v, hv⟩) ↔ ∃ (h : x ∉ K), (induce Kᶜ G).Reachable ⟨x, ⋯⟩ ⟨w, hw⟩
⊢ (induce Kᶜ G).Reachable ⟨v, hv⟩ ⟨w, hw⟩

tactic: exact ((h v).mp ⟨hv, Reachable.refl _⟩).choose_spec
state_before: case mk.mk
V : Type u
G : SimpleGraph V
K L L' M : Set V
v : V
hv : v ∈ Kᶜ
w : V
hw : w ∈ Kᶜ
h :
  ∀ (x : V),
    (∃ (h : x ∉ K), (induce Kᶜ G).Reachable ⟨x, ⋯⟩ ⟨v, hv⟩) ↔ ∃ (h : x ∉ K), (induce Kᶜ G).Reachable ⟨x, ⋯⟩ ⟨w, hw⟩
⊢ (induce Kᶜ G).Reachable ⟨v, hv⟩ ⟨w, hw⟩
state_after: no goals
Theorem: Finsupp.support_tsub
File: Mathlib/Data/Finsupp/Order.lean

tactic: simp (config := { contextual := true }) only [subset_iff, tsub_eq_zero_iff_le, mem_support_iff,
  Ne, coe_tsub, Pi.sub_apply, not_imp_not, zero_le, imp_true_iff]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : CanonicallyOrderedAddCommMonoid α
f✝ g✝ : ι →₀ α
inst✝¹ : Sub α
inst✝ : OrderedSub α
f g : ι →₀ α
i : ι
a b : α
f1 f2 : ι →₀ α
⊢ (f1 - f2).support ⊆ f1.support
state_after: no goals
Theorem: CofiniteTopology.isClosed_iff
File: Mathlib/Topology/Constructions.lean

tactic: simp only [← isOpen_compl_iff, isOpen_iff', compl_compl, compl_empty_iff]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
s : Set (CofiniteTopology X)
⊢ IsClosed s ↔ s = univ ∨ s.Finite
state_after: no goals
Theorem: PMF.support_ofMultiset
File: Mathlib/Probability/Distributions/Uniform.lean

tactic: simp [mem_support_iff, hs]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s : Multiset α
hs : s ≠ 0
⊢ ∀ (x : α), x ∈ (ofMultiset s hs).support ↔ x ∈ ↑s.toFinset
state_after: no goals
Theorem: integral_sin_mul_cos₁
File: Mathlib/Analysis/SpecialFunctions/Integrals.lean

tactic: simpa using integral_sin_pow_mul_cos_pow_odd 1 0
state_before: a b : ℝ
n : ℕ
⊢ ∫ (x : ℝ) in a..b, sin x * cos x = (sin b ^ 2 - sin a ^ 2) / 2
state_after: no goals
Theorem: innerSL_apply_norm
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: refine
  le_antisymm ((innerSL 𝕜 x).opNorm_le_bound (norm_nonneg _) fun y => norm_inner_le_norm _ _) ?_
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
x : E
⊢ ‖(innerSL 𝕜) x‖ = ‖x‖
state_after: 𝕜 : 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
x : E
⊢ ‖x‖ ≤ ‖(innerSL 𝕜) x‖

tactic: rcases eq_or_ne x 0 with (rfl | h)
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
x : E
⊢ ‖x‖ ≤ ‖(innerSL 𝕜) x‖
state_after: case inl
𝕜 : 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
⊢ ‖0‖ ≤ ‖(innerSL 𝕜) 0‖

case inr
𝕜 : 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
x : E
h : x ≠ 0
⊢ ‖x‖ ≤ ‖(innerSL 𝕜) x‖

tactic: simp
state_before: case inl
𝕜 : 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
⊢ ‖0‖ ≤ ‖(innerSL 𝕜) 0‖
state_after: no goals

tactic: refine (mul_le_mul_right (norm_pos_iff.2 h)).mp ?_
state_before: case inr
𝕜 : 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
x : E
h : x ≠ 0
⊢ ‖x‖ ≤ ‖(innerSL 𝕜) x‖
state_after: case inr
𝕜 : 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
x : E
h : x ≠ 0
⊢ ‖x‖ * ‖x‖ ≤ ‖(innerSL 𝕜) x‖ * ‖x‖

tactic: calc
  ‖x‖ * ‖x‖ = ‖(⟪x, x⟫ : 𝕜)‖ := by
    rw [← sq, inner_self_eq_norm_sq_to_K, norm_pow, norm_ofReal, abs_norm]
  _ ≤ ‖innerSL 𝕜 x‖ * ‖x‖ := (innerSL 𝕜 x).le_opNorm _
state_before: case inr
𝕜 : 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
x : E
h : x ≠ 0
⊢ ‖x‖ * ‖x‖ ≤ ‖(innerSL 𝕜) x‖ * ‖x‖
state_after: no goals

tactic: rw [← sq, inner_self_eq_norm_sq_to_K, norm_pow, norm_ofReal, abs_norm]
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
x : E
h : x ≠ 0
⊢ ‖x‖ * ‖x‖ = ‖⟪x, x⟫_𝕜‖
state_after: no goals
Theorem: InnerProductSpaceable.add_left_aux1
File: Mathlib/Analysis/InnerProductSpace/OfNorm.lean

tactic: rw [eq_sub_iff_add_eq, eq_div_iff (two_ne_zero' ℝ), mul_comm _ (2 : ℝ), eq_comm]
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ ‖x + y + z‖ * ‖x + y + z‖ = (‖2 • x + y‖ * ‖2 • x + y‖ + ‖2 • z + y‖ * ‖2 • z + y‖) / 2 - ‖x - z‖ * ‖x - z‖
state_after: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ ‖2 • x + y‖ * ‖2 • x + y‖ + ‖2 • z + y‖ * ‖2 • z + y‖ = 2 * (‖x + y + z‖ * ‖x + y + z‖ + ‖x - z‖ * ‖x - z‖)

tactic: rw [two_smul]
state_before: case h.e'_2.h.e'_6.h.e'_6.h.e'_3
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ 2 • z + y = x + y + z - (x - z)
state_after: case h.e'_2.h.e'_6.h.e'_6.h.e'_3
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ z + z + y = x + y + z - (x - z)

tactic: abel
state_before: case h.e'_2.h.e'_6.h.e'_6.h.e'_3
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ z + z + y = x + y + z - (x - z)
state_after: no goals
Theorem: Matrix.Fin.circulant_mul_comm
File: Mathlib/LinearAlgebra/Matrix/Circulant.lean

tactic: simp [Injective]
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
R : Type u_5
inst✝¹ : CommSemigroup α
inst✝ : AddCommMonoid α
⊢ ∀ (v w : Fin 0 → α), circulant v * circulant w = circulant w * circulant v
state_after: no goals
Theorem: MeasureTheory.lintegral_fintype
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [← lintegral_finset, Finset.coe_univ, Measure.restrict_univ]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝¹ : MeasurableSingletonClass α
inst✝ : Fintype α
f : α → ℝ≥0∞
⊢ ∫⁻ (x : α), f x ∂μ = ∑ x : α, f x * μ {x}
state_after: no goals
Theorem: Function.Semiconj.surjOn_range
File: Mathlib/Data/Set/Function.lean

tactic: rw [← image_univ]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
fa : α → α
fb : β → β
f : α → β
g : β → γ
s t : Set α
h : Semiconj f fa fb
ha : Surjective fa
⊢ SurjOn fb (range f) (range f)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
fa : α → α
fb : β → β
f : α → β
g : β → γ
s t : Set α
h : Semiconj f fa fb
ha : Surjective fa
⊢ SurjOn fb (f '' univ) (f '' univ)

tactic: exact h.surjOn_image (ha.surjOn univ)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
fa : α → α
fb : β → β
f : α → β
g : β → γ
s t : Set α
h : Semiconj f fa fb
ha : Surjective fa
⊢ SurjOn fb (f '' univ) (f '' univ)
state_after: no goals
Theorem: CategoryTheory.Subobject.factors_of_factors_right
File: Mathlib/CategoryTheory/Subobject/FactorThru.lean

tactic: induction' P using Quotient.ind' with P
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z✝ : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y Z : C
P : Subobject Z
f : X ⟶ Y
g : Y ⟶ Z
h : P.Factors g
⊢ P.Factors (f ≫ g)
state_after: case h
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z✝ : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
P : MonoOver Z
h : Factors (Quotient.mk'' P) g
⊢ Factors (Quotient.mk'' P) (f ≫ g)

tactic: obtain ⟨g, rfl⟩ := h
state_before: case h
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z✝ : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
P : MonoOver Z
h : Factors (Quotient.mk'' P) g
⊢ Factors (Quotient.mk'' P) (f ≫ g)
state_after: case h.intro
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z✝ : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y Z : C
f : X ⟶ Y
P : MonoOver Z
g : Y ⟶ P.obj.left
⊢ Factors (Quotient.mk'' P) (f ≫ g ≫ P.arrow)

tactic: exact ⟨f ≫ g, by simp⟩
state_before: case h.intro
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z✝ : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y Z : C
f : X ⟶ Y
P : MonoOver Z
g : Y ⟶ P.obj.left
⊢ Factors (Quotient.mk'' P) (f ≫ g ≫ P.arrow)
state_after: no goals

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z✝ : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y Z : C
f : X ⟶ Y
P : MonoOver Z
g : Y ⟶ P.obj.left
⊢ (f ≫ g) ≫ P.arrow = f ≫ g ≫ P.arrow
state_after: no goals