1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.GradedObject.Monoidal.tensor_id
File: Mathlib/CategoryTheory/GradedObject/Monoidal.lean

tactic: dsimp [tensorHom, mapBifunctorMapMap]
state_before: I : Type u
inst✝³ : AddMonoid I
C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : MonoidalCategory C
X Y : GradedObject I C
inst✝ : X.HasTensor Y
⊢ tensorHom (𝟙 X) (𝟙 Y) = 𝟙 (tensorObj X Y)
state_after: I : Type u
inst✝³ : AddMonoid I
C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : MonoidalCategory C
X Y : GradedObject I C
inst✝ : X.HasTensor Y
⊢ (mapMap
      (((mapBifunctor (curriedTensor C) I I).map (𝟙 X)).app Y ≫ ((mapBifunctor (curriedTensor C) I I).obj X).map (𝟙 Y))
      fun x => x.1 + x.2) =
    𝟙 (tensorObj X Y)

tactic: simp only [Functor.map_id, NatTrans.id_app, comp_id, mapMap_id]
state_before: I : Type u
inst✝³ : AddMonoid I
C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : MonoidalCategory C
X Y : GradedObject I C
inst✝ : X.HasTensor Y
⊢ (mapMap
      (((mapBifunctor (curriedTensor C) I I).map (𝟙 X)).app Y ≫ ((mapBifunctor (curriedTensor C) I I).obj X).map (𝟙 Y))
      fun x => x.1 + x.2) =
    𝟙 (tensorObj X Y)
state_after: I : Type u
inst✝³ : AddMonoid I
C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : MonoidalCategory C
X Y : GradedObject I C
inst✝ : X.HasTensor Y
⊢ 𝟙 ((((mapBifunctor (curriedTensor C) I I).obj X).obj Y).mapObj fun x => x.1 + x.2) = 𝟙 (tensorObj X Y)

tactic: rfl
state_before: I : Type u
inst✝³ : AddMonoid I
C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : MonoidalCategory C
X Y : GradedObject I C
inst✝ : X.HasTensor Y
⊢ 𝟙 ((((mapBifunctor (curriedTensor C) I I).obj X).obj Y).mapObj fun x => x.1 + x.2) = 𝟙 (tensorObj X Y)
state_after: no goals
Theorem: PEquiv.toPEquiv_mul_matrix
File: Mathlib/Data/Matrix/PEquiv.lean

tactic: ext i j
state_before: k : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type v
inst✝² : Fintype m
inst✝¹ : DecidableEq m
inst✝ : Semiring α
f : m ≃ m
M : Matrix m n α
⊢ f.toPEquiv.toMatrix * M = M.submatrix (⇑f) id
state_after: case a
k : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type v
inst✝² : Fintype m
inst✝¹ : DecidableEq m
inst✝ : Semiring α
f : m ≃ m
M : Matrix m n α
i : m
j : n
⊢ (f.toPEquiv.toMatrix * M) i j = M.submatrix (⇑f) id i j

tactic: rw [mul_matrix_apply, Equiv.toPEquiv_apply, submatrix_apply, id]
state_before: case a
k : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type v
inst✝² : Fintype m
inst✝¹ : DecidableEq m
inst✝ : Semiring α
f : m ≃ m
M : Matrix m n α
i : m
j : n
⊢ (f.toPEquiv.toMatrix * M) i j = M.submatrix (⇑f) id i j
state_after: no goals
Theorem: List.rotate_eq_rotate'
File: Mathlib/Data/List/Rotate.lean

tactic: simp_all [length_eq_zero]
state_before: α : Type u
l : List α
n : ℕ
h : l.length = 0
⊢ l.rotate n = l.rotate' n
state_after: no goals

tactic: rw [← rotate'_mod,
    rotate'_eq_drop_append_take (le_of_lt (Nat.mod_lt _ (Nat.pos_of_ne_zero h)))]
state_before: α : Type u
l : List α
n : ℕ
h : ¬l.length = 0
⊢ l.rotate n = l.rotate' n
state_after: α : Type u
l : List α
n : ℕ
h : ¬l.length = 0
⊢ l.rotate n = drop (n % l.length) l ++ take (n % l.length) l

tactic: simp [rotate]
state_before: α : Type u
l : List α
n : ℕ
h : ¬l.length = 0
⊢ l.rotate n = drop (n % l.length) l ++ take (n % l.length) l
state_after: no goals
Theorem: im_inner_eq_norm_sub_i_smul_mul_self_sub_norm_add_i_smul_mul_self_div_four
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: simp only [@norm_add_mul_self 𝕜, @norm_sub_mul_self 𝕜, inner_smul_right, I_mul_re]
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 y : E
⊢ im ⟪x, y⟫_𝕜 = (‖x - I • y‖ * ‖x - I • y‖ - ‖x + I • y‖ * ‖x + I • y‖) / 4
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 y : E
⊢ im ⟪x, y⟫_𝕜 =
    (‖x‖ * ‖x‖ - 2 * -im ⟪x, y⟫_𝕜 + ‖I • y‖ * ‖I • y‖ - (‖x‖ * ‖x‖ + 2 * -im ⟪x, y⟫_𝕜 + ‖I • y‖ * ‖I • y‖)) / 4

tactic: ring
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 y : E
⊢ im ⟪x, y⟫_𝕜 =
    (‖x‖ * ‖x‖ - 2 * -im ⟪x, y⟫_𝕜 + ‖I • y‖ * ‖I • y‖ - (‖x‖ * ‖x‖ + 2 * -im ⟪x, y⟫_𝕜 + ‖I • y‖ * ‖I • y‖)) / 4
state_after: no goals
Theorem: Finset.disjoint_sup_left
File: Mathlib/Data/Finset/Lattice.lean

tactic: simp only [disjoint_iff, sup_inf_distrib_right, Finset.sup_eq_bot_iff]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s : Finset ι
t : Finset κ
f : ι → α
g : κ → α
a : α
⊢ _root_.Disjoint (s.sup f) a ↔ ∀ ⦃i : ι⦄, i ∈ s → _root_.Disjoint (f i) a
state_after: no goals
Theorem: PartENat.lt_coe_succ_iff_le
File: Mathlib/Data/Nat/PartENat.lean

tactic: rw [Nat.succ_eq_add_one n, Nat.cast_add, Nat.cast_one, lt_add_one_iff_lt hx]
state_before: x : PartENat
n : ℕ
hx : x ≠ ⊤
⊢ x < ↑n.succ ↔ x ≤ ↑n
state_after: no goals
Theorem: SimpleGraph.IsClique.card_le_of_coloring
File: Mathlib/Combinatorics/SimpleGraph/Coloring.lean

tactic: rw [isClique_iff_induce_eq] at h
state_before: V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C✝ : G.Coloring α
s : Finset V
h : G.IsClique ↑s
inst✝ : Fintype α
C : G.Coloring α
⊢ s.card ≤ card α
state_after: V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C✝ : G.Coloring α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : G.Coloring α
⊢ s.card ≤ card α

tactic: have f : G.induce ↑s ↪g G := Embedding.comap (Function.Embedding.subtype fun x => x ∈ ↑s) G
state_before: V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C✝ : G.Coloring α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : G.Coloring α
⊢ s.card ≤ card α
state_after: V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C✝ : G.Coloring α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : G.Coloring α
f : induce (↑s) G ↪g G
⊢ s.card ≤ card α

tactic: rw [h] at f
state_before: V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C✝ : G.Coloring α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : G.Coloring α
f : induce (↑s) G ↪g G
⊢ s.card ≤ card α
state_after: V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C✝ : G.Coloring α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : G.Coloring α
f : ⊤ ↪g G
⊢ s.card ≤ card α

tactic: convert Fintype.card_le_of_injective _ (C.comp f.toHom).injective_of_top_hom using 1
state_before: V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C✝ : G.Coloring α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : G.Coloring α
f : ⊤ ↪g G
⊢ s.card ≤ card α
state_after: case h.e'_3
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C✝ : G.Coloring α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : G.Coloring α
f : ⊤ ↪g G
⊢ s.card = card ↑↑s

tactic: simp
state_before: case h.e'_3
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C✝ : G.Coloring α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : G.Coloring α
f : ⊤ ↪g G
⊢ s.card = card ↑↑s
state_after: no goals
Theorem: Ordering.swap_eq_iff_eq_swap
File: Mathlib/Order/Compare.lean

tactic: rw [← swap_inj, swap_swap]
state_before: α : Type u_1
β : Type u_2
o o' : Ordering
⊢ o.swap = o' ↔ o = o'.swap
state_after: no goals
Theorem: List.tail_suffix
File: Mathlib/Data/List/Infix.lean

tactic: rw [← drop_one]
state_before: α : Type u_1
β : Type u_2
l✝ l₁ l₂ l₃ : List α
a b : α
m n : ℕ
l : List α
⊢ l.tail <:+ l
state_after: α : Type u_1
β : Type u_2
l✝ l₁ l₂ l₃ : List α
a b : α
m n : ℕ
l : List α
⊢ drop 1 l <:+ l

tactic: apply drop_suffix
state_before: α : Type u_1
β : Type u_2
l✝ l₁ l₂ l₃ : List α
a b : α
m n : ℕ
l : List α
⊢ drop 1 l <:+ l
state_after: no goals
Theorem: GromovHausdorff.candidates_nonneg
File: Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean

tactic: have : 0 ≤ 2 * f (x, y) :=
  calc
    0 = f (x, x) := (candidates_refl fA).symm
    _ ≤ f (x, y) + f (y, x) := candidates_triangle fA
    _ = f (x, y) + f (x, y) := by rw [candidates_symm fA]
    _ = 2 * f (x, y) := by ring
state_before: X : Type u
Y : Type v
inst✝⁵ : MetricSpace X
inst✝⁴ : CompactSpace X
inst✝³ : Nonempty X
inst✝² : MetricSpace Y
inst✝¹ : CompactSpace Y
inst✝ : Nonempty Y
f : GromovHausdorff.ProdSpaceFun X Y
x y z t : X ⊕ Y
fA : f ∈ candidates X Y
⊢ 0 ≤ f (x, y)
state_after: X : Type u
Y : Type v
inst✝⁵ : MetricSpace X
inst✝⁴ : CompactSpace X
inst✝³ : Nonempty X
inst✝² : MetricSpace Y
inst✝¹ : CompactSpace Y
inst✝ : Nonempty Y
f : GromovHausdorff.ProdSpaceFun X Y
x y z t : X ⊕ Y
fA : f ∈ candidates X Y
this : 0 ≤ 2 * f (x, y)
⊢ 0 ≤ f (x, y)

tactic: linarith
state_before: X : Type u
Y : Type v
inst✝⁵ : MetricSpace X
inst✝⁴ : CompactSpace X
inst✝³ : Nonempty X
inst✝² : MetricSpace Y
inst✝¹ : CompactSpace Y
inst✝ : Nonempty Y
f : GromovHausdorff.ProdSpaceFun X Y
x y z t : X ⊕ Y
fA : f ∈ candidates X Y
this : 0 ≤ 2 * f (x, y)
⊢ 0 ≤ f (x, y)
state_after: no goals

tactic: rw [candidates_symm fA]
state_before: X : Type u
Y : Type v
inst✝⁵ : MetricSpace X
inst✝⁴ : CompactSpace X
inst✝³ : Nonempty X
inst✝² : MetricSpace Y
inst✝¹ : CompactSpace Y
inst✝ : Nonempty Y
f : GromovHausdorff.ProdSpaceFun X Y
x y z t : X ⊕ Y
fA : f ∈ candidates X Y
⊢ f (x, y) + f (y, x) = f (x, y) + f (x, y)
state_after: no goals

tactic: ring
state_before: X : Type u
Y : Type v
inst✝⁵ : MetricSpace X
inst✝⁴ : CompactSpace X
inst✝³ : Nonempty X
inst✝² : MetricSpace Y
inst✝¹ : CompactSpace Y
inst✝ : Nonempty Y
f : GromovHausdorff.ProdSpaceFun X Y
x y z t : X ⊕ Y
fA : f ∈ candidates X Y
⊢ f (x, y) + f (x, y) = 2 * f (x, y)
state_after: no goals
Theorem: Set.einfsep_pos_of_finite
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: cases nonempty_fintype s
state_before: α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
x y z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
⊢ 0 < s.einfsep
state_after: case intro
α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
x y z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
val✝ : Fintype ↑s
⊢ 0 < s.einfsep

tactic: by_cases hs : s.Nontrivial
state_before: case intro
α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
x y z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
val✝ : Fintype ↑s
⊢ 0 < s.einfsep
state_after: case pos
α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
x y z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
val✝ : Fintype ↑s
hs : s.Nontrivial
⊢ 0 < s.einfsep

case neg
α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
x y z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
val✝ : Fintype ↑s
hs : ¬s.Nontrivial
⊢ 0 < s.einfsep

tactic: rcases hs.einfsep_exists_of_finite with ⟨x, _hx, y, _hy, hxy, hxy'⟩
state_before: case pos
α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
x y z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
val✝ : Fintype ↑s
hs : s.Nontrivial
⊢ 0 < s.einfsep
state_after: case pos.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
x✝ y✝ z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
val✝ : Fintype ↑s
hs : s.Nontrivial
x : α
_hx : x ∈ s
y : α
_hy : y ∈ s
hxy : x ≠ y
hxy' : s.einfsep = edist x y
⊢ 0 < s.einfsep

tactic: exact hxy'.symm ▸ edist_pos.2 hxy
state_before: case pos.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
x✝ y✝ z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
val✝ : Fintype ↑s
hs : s.Nontrivial
x : α
_hx : x ∈ s
y : α
_hy : y ∈ s
hxy : x ≠ y
hxy' : s.einfsep = edist x y
⊢ 0 < s.einfsep
state_after: no goals

tactic: rw [not_nontrivial_iff] at hs
state_before: case neg
α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
x y z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
val✝ : Fintype ↑s
hs : ¬s.Nontrivial
⊢ 0 < s.einfsep
state_after: case neg
α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
x y z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
val✝ : Fintype ↑s
hs : s.Subsingleton
⊢ 0 < s.einfsep

tactic: exact hs.einfsep.symm ▸ WithTop.zero_lt_top
state_before: case neg
α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
x y z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
val✝ : Fintype ↑s
hs : s.Subsingleton
⊢ 0 < s.einfsep
state_after: no goals
Theorem: Real.sign_one
File: Mathlib/Data/Real/Sign.lean

tactic: norm_num
state_before: ⊢ 0 < 1
state_after: no goals
Theorem: MeasureTheory.levyProkhorovEDist_le_max_measure_univ
File: Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean

tactic: refine sInf_le fun B _ ↦ ⟨?_, ?_⟩ <;> apply le_add_left <;> simp [measure_mono]
state_before: ι : Type u_1
Ω : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : PseudoEMetricSpace Ω
μ ν : Measure Ω
⊢ levyProkhorovEDist μ ν ≤ max (μ univ) (ν univ)
state_after: no goals
Theorem: StarConvex.union
File: Mathlib/Analysis/Convex/Star.lean

tactic: rintro y (hy | hy) a b ha hb hab
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
x : E
s t : Set E
hs : StarConvex 𝕜 x s
ht : StarConvex 𝕜 x t
⊢ StarConvex 𝕜 x (s ∪ t)
state_after: case inl
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
x : E
s t : Set E
hs : StarConvex 𝕜 x s
ht : StarConvex 𝕜 x t
y : E
hy : y ∈ s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • x + b • y ∈ s ∪ t

case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
x : E
s t : Set E
hs : StarConvex 𝕜 x s
ht : StarConvex 𝕜 x t
y : E
hy : y ∈ t
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • x + b • y ∈ s ∪ t

tactic: exact Or.inl (hs hy ha hb hab)
state_before: case inl
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
x : E
s t : Set E
hs : StarConvex 𝕜 x s
ht : StarConvex 𝕜 x t
y : E
hy : y ∈ s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • x + b • y ∈ s ∪ t
state_after: no goals

tactic: exact Or.inr (ht hy ha hb hab)
state_before: case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
x : E
s t : Set E
hs : StarConvex 𝕜 x s
ht : StarConvex 𝕜 x t
y : E
hy : y ∈ t
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • x + b • y ∈ s ∪ t
state_after: no goals
Theorem: Function.sometimes_spec
File: Mathlib/Logic/Function/Basic.lean

tactic: rwa [sometimes_eq]
state_before: p : Prop
α : Sort u_1
inst✝ : Nonempty α
P : α → Prop
f : p → α
a : p
h : P (f a)
⊢ P (sometimes f)
state_after: no goals
Theorem: Subgroup.nontrivial_iff_ne_bot
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: rw [nontrivial_iff_exists_ne_one, ne_eq, eq_bot_iff_forall]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H✝ K H : Subgroup G
⊢ Nontrivial ↥H ↔ H ≠ ⊥
state_after: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H✝ K H : Subgroup G
⊢ (∃ x ∈ H, x ≠ 1) ↔ ¬∀ x ∈ H, x = 1

tactic: simp only [ne_eq, not_forall, exists_prop]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H✝ K H : Subgroup G
⊢ (∃ x ∈ H, x ≠ 1) ↔ ¬∀ x ∈ H, x = 1
state_after: no goals
Theorem: CategoryTheory.Subobject.inf_arrow_factors_right
File: Mathlib/CategoryTheory/Subobject/Lattice.lean

tactic: simp
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
X✝ Y✝ Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : HasPullbacks C
B : C
X Y : Subobject B
⊢ (X ⊓ Y).ofLE Y ⋯ ≫ (representative.obj Y).arrow = (X ⊓ Y).arrow
state_after: no goals
Theorem: SemiNormedGrp₁.iso_isometry
File: Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean

tactic: change Isometry (⟨⟨i.hom, map_zero _⟩, fun _ _ => map_add _ _ _⟩ : V →+ W)
state_before: V W : SemiNormedGrp₁
i : V ≅ W
⊢ Isometry ⇑i.hom
state_after: V W : SemiNormedGrp₁
i : V ≅ W
⊢ Isometry ⇑{ toFun := ⇑i.hom, map_zero' := ⋯, map_add' := ⋯ }

tactic: refine AddMonoidHomClass.isometry_of_norm _ ?_
state_before: V W : SemiNormedGrp₁
i : V ≅ W
⊢ Isometry ⇑{ toFun := ⇑i.hom, map_zero' := ⋯, map_add' := ⋯ }
state_after: V W : SemiNormedGrp₁
i : V ≅ W
⊢ ∀ (x : ↑V), ‖{ toFun := ⇑i.hom, map_zero' := ⋯, map_add' := ⋯ } x‖ = ‖x‖

tactic: intro v
state_before: V W : SemiNormedGrp₁
i : V ≅ W
⊢ ∀ (x : ↑V), ‖{ toFun := ⇑i.hom, map_zero' := ⋯, map_add' := ⋯ } x‖ = ‖x‖
state_after: V W : SemiNormedGrp₁
i : V ≅ W
v : ↑V
⊢ ‖{ toFun := ⇑i.hom, map_zero' := ⋯, map_add' := ⋯ } v‖ = ‖v‖

tactic: apply le_antisymm (i.hom.2 v)
state_before: V W : SemiNormedGrp₁
i : V ≅ W
v : ↑V
⊢ ‖{ toFun := ⇑i.hom, map_zero' := ⋯, map_add' := ⋯ } v‖ = ‖v‖
state_after: V W : SemiNormedGrp₁
i : V ≅ W
v : ↑V
⊢ ‖v‖ ≤ ‖↑i.hom v‖

tactic: calc
  ‖v‖ = ‖i.inv (i.hom v)‖ := by erw [Iso.hom_inv_id_apply]
  _ ≤ ‖i.hom v‖ := i.inv.2 _
state_before: V W : SemiNormedGrp₁
i : V ≅ W
v : ↑V
⊢ ‖v‖ ≤ ‖↑i.hom v‖
state_after: no goals

tactic: erw [Iso.hom_inv_id_apply]
state_before: V W : SemiNormedGrp₁
i : V ≅ W
v : ↑V
⊢ ‖v‖ = ‖i.inv (i.hom v)‖
state_after: no goals
Theorem: PowerSeries.rescale_X
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: ext
state_before: R : Type u_1
A : Type u_2
inst✝ : CommRing A
a : A
⊢ (rescale a) X = (C A) a * X
state_after: case h
R : Type u_1
A : Type u_2
inst✝ : CommRing A
a : A
n✝ : ℕ
⊢ (coeff A n✝) ((rescale a) X) = (coeff A n✝) ((C A) a * X)

tactic: simp only [coeff_rescale, coeff_C_mul, coeff_X]
state_before: case h
R : Type u_1
A : Type u_2
inst✝ : CommRing A
a : A
n✝ : ℕ
⊢ (coeff A n✝) ((rescale a) X) = (coeff A n✝) ((C A) a * X)
state_after: case h
R : Type u_1
A : Type u_2
inst✝ : CommRing A
a : A
n✝ : ℕ
⊢ (a ^ n✝ * if n✝ = 1 then 1 else 0) = a * if n✝ = 1 then 1 else 0

tactic: split_ifs with h <;> simp [h]
state_before: case h
R : Type u_1
A : Type u_2
inst✝ : CommRing A
a : A
n✝ : ℕ
⊢ (a ^ n✝ * if n✝ = 1 then 1 else 0) = a * if n✝ = 1 then 1 else 0
state_after: no goals
Theorem: Equiv.permCongr_refl
File: Mathlib/Logic/Equiv/Defs.lean

tactic: simp [permCongr_def]
state_before: α : Sort u
β : Sort v
γ : Sort w
α' : Type u_1
β' : Type u_2
e : α' ≃ β'
⊢ e.permCongr (Equiv.refl α') = Equiv.refl β'
state_after: no goals
Theorem: Set.Ico.coe_eq_zero
File: Mathlib/Algebra/Order/Interval/Set/Instances.lean

tactic: symm
state_before: α : Type u_1
inst✝¹ : OrderedSemiring α
inst✝ : Nontrivial α
x : ↑(Ico 0 1)
⊢ ↑x = 0 ↔ x = 0
state_after: α : Type u_1
inst✝¹ : OrderedSemiring α
inst✝ : Nontrivial α
x : ↑(Ico 0 1)
⊢ x = 0 ↔ ↑x = 0

tactic: exact Subtype.ext_iff
state_before: α : Type u_1
inst✝¹ : OrderedSemiring α
inst✝ : Nontrivial α
x : ↑(Ico 0 1)
⊢ x = 0 ↔ ↑x = 0
state_after: no goals
Theorem: ProbabilityTheory.IsMeasurableRatCDF.measure_stieltjesFunction_Iic
File: Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean

tactic: rw [← sub_zero (hf.stieltjesFunction a x)]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x : ℝ
⊢ (hf.stieltjesFunction a).measure (Iic x) = ENNReal.ofReal (↑(hf.stieltjesFunction a) x)
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x : ℝ
⊢ (hf.stieltjesFunction a).measure (Iic x) = ENNReal.ofReal (↑(hf.stieltjesFunction a) x - 0)

tactic: exact (hf.stieltjesFunction a).measure_Iic (tendsto_stieltjesFunction_atBot hf a) _
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x : ℝ
⊢ (hf.stieltjesFunction a).measure (Iic x) = ENNReal.ofReal (↑(hf.stieltjesFunction a) x - 0)
state_after: no goals
Theorem: pow_right_strictAnti
File: Mathlib/Algebra/Order/Ring/Basic.lean

tactic: simpa only [pow_succ', one_mul] using mul_lt_mul h₁ le_rfl (pow_pos h₀ n) zero_le_one
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : StrictOrderedSemiring R
a x y : R
n✝ m : ℕ
h₀ : 0 < a
h₁ : a < 1
n : ℕ
⊢ a ^ (n + 1) < a ^ n
state_after: no goals
Theorem: Sum.elim_mul_mul
File: Mathlib/Algebra/Group/Pi/Basic.lean

tactic: ext x
state_before: I : Type u
α : Type u_1
β : Type u_2
γ : Type u_3
f : I → Type v₁
g : I → Type v₂
h : I → Type v₃
x y : (i : I) → f i
i : I
a a' : α → γ
b b' : β → γ
inst✝ : Mul γ
⊢ Sum.elim (a * a') (b * b') = Sum.elim a b * Sum.elim a' b'
state_after: case h
I : Type u
α : Type u_1
β : Type u_2
γ : Type u_3
f : I → Type v₁
g : I → Type v₂
h : I → Type v₃
x✝ y : (i : I) → f i
i : I
a a' : α → γ
b b' : β → γ
inst✝ : Mul γ
x : α ⊕ β
⊢ Sum.elim (a * a') (b * b') x = (Sum.elim a b * Sum.elim a' b') x

tactic: cases x <;> rfl
state_before: case h
I : Type u
α : Type u_1
β : Type u_2
γ : Type u_3
f : I → Type v₁
g : I → Type v₂
h : I → Type v₃
x✝ y : (i : I) → f i
i : I
a a' : α → γ
b b' : β → γ
inst✝ : Mul γ
x : α ⊕ β
⊢ Sum.elim (a * a') (b * b') x = (Sum.elim a b * Sum.elim a' b') x
state_after: no goals
Theorem: MeasurableSpace.generateFrom_insert_empty
File: Mathlib/MeasureTheory/MeasurableSpace/Defs.lean

tactic: rw [insert_eq, ← generateFrom_sup_generateFrom, generateFrom_singleton_empty, bot_sup_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort u_6
s t u : Set α
S : Set (Set α)
⊢ generateFrom (insert ∅ S) = generateFrom S
state_after: no goals
Theorem: ne_neg_of_mem_sphere
File: Mathlib/Analysis/NormedSpace/BallAction.lean

tactic: (conv_lhs => rw [h])
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedField 𝕜'
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜' E
r✝ : ℝ
inst✝ : CharZero 𝕜
r : ℝ
hr : r ≠ 0
x : ↑(sphere 0 r)
h : x = -x
⊢ ↑x = -↑x
state_after: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedField 𝕜'
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜' E
r✝ : ℝ
inst✝ : CharZero 𝕜
r : ℝ
hr : r ≠ 0
x : ↑(sphere 0 r)
h : x = -x
⊢ ↑(-x) = -↑x

tactic: rfl
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedField 𝕜'
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜' E
r✝ : ℝ
inst✝ : CharZero 𝕜
r : ℝ
hr : r ≠ 0
x : ↑(sphere 0 r)
h : x = -x
⊢ ↑(-x) = -↑x
state_after: no goals

tactic: conv_lhs => rw [h]
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedField 𝕜'
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜' E
r✝ : ℝ
inst✝ : CharZero 𝕜
r : ℝ
hr : r ≠ 0
x : ↑(sphere 0 r)
h : x = -x
⊢ ↑x = -↑x
state_after: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedField 𝕜'
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜' E
r✝ : ℝ
inst✝ : CharZero 𝕜
r : ℝ
hr : r ≠ 0
x : ↑(sphere 0 r)
h : x = -x
⊢ ↑(-x) = -↑x
Theorem: odd_neg_one
File: Mathlib/Algebra/Ring/Parity.lean

tactic: simp
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝ : Ring α
a b : α
n : ℕ
⊢ Odd (-1)
state_after: no goals