1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.Limits.limit.lift_post
File: Mathlib/CategoryTheory/Limits/HasLimits.lean

tactic: ext
state_before: J : Type u₁
inst✝⁵ : Category.{v₁, u₁} J
K : Type u₂
inst✝⁴ : Category.{v₂, u₂} K
C : Type u
inst✝³ : Category.{v, u} C
F✝ : J ⥤ C
D : Type u'
inst✝² : Category.{v', u'} D
F : J ⥤ C
inst✝¹ : HasLimit F
G : C ⥤ D
inst✝ : HasLimit (F ⋙ G)
c : Cone F
⊢ G.map (lift F c) ≫ post F G = lift (F ⋙ G) (G.mapCone c)
state_after: case w
J : Type u₁
inst✝⁵ : Category.{v₁, u₁} J
K : Type u₂
inst✝⁴ : Category.{v₂, u₂} K
C : Type u
inst✝³ : Category.{v, u} C
F✝ : J ⥤ C
D : Type u'
inst✝² : Category.{v', u'} D
F : J ⥤ C
inst✝¹ : HasLimit F
G : C ⥤ D
inst✝ : HasLimit (F ⋙ G)
c : Cone F
j✝ : J
⊢ (G.map (lift F c) ≫ post F G) ≫ π (F ⋙ G) j✝ = lift (F ⋙ G) (G.mapCone c) ≫ π (F ⋙ G) j✝

tactic: rw [assoc, limit.post_π, ← G.map_comp, limit.lift_π, limit.lift_π]
state_before: case w
J : Type u₁
inst✝⁵ : Category.{v₁, u₁} J
K : Type u₂
inst✝⁴ : Category.{v₂, u₂} K
C : Type u
inst✝³ : Category.{v, u} C
F✝ : J ⥤ C
D : Type u'
inst✝² : Category.{v', u'} D
F : J ⥤ C
inst✝¹ : HasLimit F
G : C ⥤ D
inst✝ : HasLimit (F ⋙ G)
c : Cone F
j✝ : J
⊢ (G.map (lift F c) ≫ post F G) ≫ π (F ⋙ G) j✝ = lift (F ⋙ G) (G.mapCone c) ≫ π (F ⋙ G) j✝
state_after: case w
J : Type u₁
inst✝⁵ : Category.{v₁, u₁} J
K : Type u₂
inst✝⁴ : Category.{v₂, u₂} K
C : Type u
inst✝³ : Category.{v, u} C
F✝ : J ⥤ C
D : Type u'
inst✝² : Category.{v', u'} D
F : J ⥤ C
inst✝¹ : HasLimit F
G : C ⥤ D
inst✝ : HasLimit (F ⋙ G)
c : Cone F
j✝ : J
⊢ G.map (c.π.app j✝) = (G.mapCone c).π.app j✝

tactic: rfl
state_before: case w
J : Type u₁
inst✝⁵ : Category.{v₁, u₁} J
K : Type u₂
inst✝⁴ : Category.{v₂, u₂} K
C : Type u
inst✝³ : Category.{v, u} C
F✝ : J ⥤ C
D : Type u'
inst✝² : Category.{v', u'} D
F : J ⥤ C
inst✝¹ : HasLimit F
G : C ⥤ D
inst✝ : HasLimit (F ⋙ G)
c : Cone F
j✝ : J
⊢ G.map (c.π.app j✝) = (G.mapCone c).π.app j✝
state_after: no goals
Theorem: Real.abs_rpow_le_abs_rpow
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rcases le_or_lt 0 x with hx | hx
state_before: x✝ y✝ z x y : ℝ
⊢ |x ^ y| ≤ |x| ^ y
state_after: case inl
x✝ y✝ z x y : ℝ
hx : 0 ≤ x
⊢ |x ^ y| ≤ |x| ^ y

case inr
x✝ y✝ z x y : ℝ
hx : x < 0
⊢ |x ^ y| ≤ |x| ^ y

tactic: rw [abs_rpow_of_nonneg hx]
state_before: case inl
x✝ y✝ z x y : ℝ
hx : 0 ≤ x
⊢ |x ^ y| ≤ |x| ^ y
state_after: no goals

tactic: rw [abs_of_neg hx, rpow_def_of_neg hx, rpow_def_of_pos (neg_pos.2 hx), log_neg_eq_log, abs_mul,
  abs_of_pos (exp_pos _)]
state_before: case inr
x✝ y✝ z x y : ℝ
hx : x < 0
⊢ |x ^ y| ≤ |x| ^ y
state_after: case inr
x✝ y✝ z x y : ℝ
hx : x < 0
⊢ rexp (log x * y) * |cos (y * π)| ≤ rexp (log x * y)

tactic: exact mul_le_of_le_one_right (exp_pos _).le (abs_cos_le_one _)
state_before: case inr
x✝ y✝ z x y : ℝ
hx : x < 0
⊢ rexp (log x * y) * |cos (y * π)| ≤ rexp (log x * y)
state_after: no goals
Theorem: Finset.prod_inter_mul_prod_diff
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: convert (s.prod_piecewise t f f).symm
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 β
inst✝ : DecidableEq α
s t : Finset α
f : α → β
⊢ (∏ x ∈ s ∩ t, f x) * ∏ x ∈ s \ t, f x = ∏ x ∈ s, f x
state_after: case h.e'_3.a.h.e
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s t : Finset α
f : α → β
x✝ : α
a✝ : x✝ ∈ s
⊢ f = t.piecewise f f

tactic: simp (config := { unfoldPartialApp := true }) [Finset.piecewise]
state_before: case h.e'_3.a.h.e
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s t : Finset α
f : α → β
x✝ : α
a✝ : x✝ ∈ s
⊢ f = t.piecewise f f
state_after: no goals
Theorem: pow_le_kstar
File: Mathlib/Algebra/Order/Kleene.lean

tactic: rw [pow_succ']
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
π : ι → Type u_4
inst✝ : KleeneAlgebra α
a b c : α
n : ℕ
⊢ a ^ (n + 1) ≤ a∗
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
π : ι → Type u_4
inst✝ : KleeneAlgebra α
a b c : α
n : ℕ
⊢ a * a ^ n ≤ a∗

tactic: exact (mul_le_mul_left' pow_le_kstar _).trans mul_kstar_le_kstar
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
π : ι → Type u_4
inst✝ : KleeneAlgebra α
a b c : α
n : ℕ
⊢ a * a ^ n ≤ a∗
state_after: no goals
Theorem: vectorSpan_eq_span_vsub_finset_right_ne
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: simp [vectorSpan_eq_span_vsub_set_right_ne _ (Finset.mem_coe.mpr hp)]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁵ : Ring k
inst✝⁴ : AddCommGroup V
inst✝³ : Module k V
inst✝² : AffineSpace V P
ι : Type u_4
inst✝¹ : DecidableEq P
inst✝ : DecidableEq V
s : Finset P
p : P
hp : p ∈ s
⊢ vectorSpan k ↑s = Submodule.span k ↑(Finset.image (fun x => x -ᵥ p) (s.erase p))
state_after: no goals
Theorem: Real.Angle.two_zsmul_eq_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: have : Int.natAbs 2 = 2 := rfl
state_before: ψ θ : Angle
⊢ 2 • ψ = 2 • θ ↔ ψ = θ ∨ ψ = θ + ↑π
state_after: ψ θ : Angle
this : Int.natAbs 2 = 2
⊢ 2 • ψ = 2 • θ ↔ ψ = θ ∨ ψ = θ + ↑π

tactic: rw [zsmul_eq_iff two_ne_zero, this, Fin.exists_fin_two, Fin.val_zero,
  Fin.val_one, zero_smul, add_zero, one_smul, Int.cast_two,
  mul_div_cancel_left₀ (_ : ℝ) two_ne_zero]
state_before: ψ θ : Angle
this : Int.natAbs 2 = 2
⊢ 2 • ψ = 2 • θ ↔ ψ = θ ∨ ψ = θ + ↑π
state_after: no goals
Theorem: unitInterval.qRight_one_left
File: Mathlib/Topology/Homotopy/HSpaces.lean

tactic: dsimp only
state_before: θ : ↑I
⊢ 1 * (1 + ↑(1, θ).2) ≤ 2 * ↑(1, θ).1
state_after: θ : ↑I
⊢ 1 * (1 + ↑θ) ≤ 2 * ↑1

tactic: rw [coe_one, one_mul, mul_one, add_comm, ← one_add_one_eq_two]
state_before: θ : ↑I
⊢ 1 * (1 + ↑θ) ≤ 2 * ↑1
state_after: θ : ↑I
⊢ ↑θ + 1 ≤ 1 + 1

tactic: simp only [add_le_add_iff_right]
state_before: θ : ↑I
⊢ ↑θ + 1 ≤ 1 + 1
state_after: θ : ↑I
⊢ ↑θ ≤ 1

tactic: exact le_one _
state_before: θ : ↑I
⊢ ↑θ ≤ 1
state_after: no goals
Theorem: CategoryTheory.Limits.Types.Pushout.quot_mk_eq_iff
File: Mathlib/CategoryTheory/Limits/Shapes/Types.lean

tactic: rw [← (equivalence_rel' f g).quot_mk_eq_iff]
state_before: S X₁ X₂ : Type u
f : S ⟶ X₁
g : S ⟶ X₂
inst✝ : Mono f
a b : X₁ ⊕ X₂
⊢ Quot.mk (Rel f g) a = Quot.mk (Rel f g) b ↔ Rel' f g a b
state_after: S X₁ X₂ : Type u
f : S ⟶ X₁
g : S ⟶ X₂
inst✝ : Mono f
a b : X₁ ⊕ X₂
⊢ Quot.mk (Rel f g) a = Quot.mk (Rel f g) b ↔ Quot.mk (Rel' f g) a = Quot.mk (Rel' f g) b

tactic: exact ⟨fun h => (equivPushout' f g).symm.injective h,
  fun h => (equivPushout' f g).injective h⟩
state_before: S X₁ X₂ : Type u
f : S ⟶ X₁
g : S ⟶ X₂
inst✝ : Mono f
a b : X₁ ⊕ X₂
⊢ Quot.mk (Rel f g) a = Quot.mk (Rel f g) b ↔ Quot.mk (Rel' f g) a = Quot.mk (Rel' f g) b
state_after: no goals
Theorem: Batteries.RBNode.Stream.foldr_cons
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: unfold toList
state_before: α : Type u_1
t : RBNode.Stream α
l : List α
⊢ foldr (fun x x_1 => x :: x_1) t l = t.toList ++ l
state_after: α : Type u_1
t : RBNode.Stream α
l : List α
⊢ foldr (fun x x_1 => x :: x_1) t l = foldr (fun x x_1 => x :: x_1) t [] ++ l

tactic: apply Eq.symm
state_before: α : Type u_1
t : RBNode.Stream α
l : List α
⊢ foldr (fun x x_1 => x :: x_1) t l = foldr (fun x x_1 => x :: x_1) t [] ++ l
state_after: case h
α : Type u_1
t : RBNode.Stream α
l : List α
⊢ foldr (fun x x_1 => x :: x_1) t [] ++ l = foldr (fun x x_1 => x :: x_1) t l

tactic: induction t <;> simp [*, foldr, RBNode.foldr_cons]
state_before: case h
α : Type u_1
t : RBNode.Stream α
l : List α
⊢ foldr (fun x x_1 => x :: x_1) t [] ++ l = foldr (fun x x_1 => x :: x_1) t l
state_after: no goals
Theorem: CoxeterSystem.wordProd_braidWord_eq
File: Mathlib/GroupTheory/Coxeter/Basic.lean

tactic: have := cs.prod_alternatingWord_eq_prod_alternatingWord_sub i i' (M i i')
  (Nat.le_mul_of_pos_right _ (by norm_num))
state_before: B : Type u_1
B' : Type u_2
e : B ≃ B'
W : Type u_3
H : Type u_4
inst✝¹ : Group W
inst✝ : Group H
M : CoxeterMatrix B
cs : CoxeterSystem M W
i i' : B
⊢ cs.wordProd (braidWord M i i') = cs.wordProd (braidWord M i' i)
state_after: B : Type u_1
B' : Type u_2
e : B ≃ B'
W : Type u_3
H : Type u_4
inst✝¹ : Group W
inst✝ : Group H
M : CoxeterMatrix B
cs : CoxeterSystem M W
i i' : B
this : cs.wordProd (alternatingWord i i' (M.M i i')) = cs.wordProd (alternatingWord i' i (M.M i i' * 2 - M.M i i'))
⊢ cs.wordProd (braidWord M i i') = cs.wordProd (braidWord M i' i)

tactic: rw [tsub_eq_of_eq_add (mul_two (M i i'))] at this
state_before: B : Type u_1
B' : Type u_2
e : B ≃ B'
W : Type u_3
H : Type u_4
inst✝¹ : Group W
inst✝ : Group H
M : CoxeterMatrix B
cs : CoxeterSystem M W
i i' : B
this : cs.wordProd (alternatingWord i i' (M.M i i')) = cs.wordProd (alternatingWord i' i (M.M i i' * 2 - M.M i i'))
⊢ cs.wordProd (braidWord M i i') = cs.wordProd (braidWord M i' i)
state_after: B : Type u_1
B' : Type u_2
e : B ≃ B'
W : Type u_3
H : Type u_4
inst✝¹ : Group W
inst✝ : Group H
M : CoxeterMatrix B
cs : CoxeterSystem M W
i i' : B
this : cs.wordProd (alternatingWord i i' (M.M i i')) = cs.wordProd (alternatingWord i' i (M.M i i'))
⊢ cs.wordProd (braidWord M i i') = cs.wordProd (braidWord M i' i)

tactic: nth_rw 2 [M.symmetric i i'] at this
state_before: B : Type u_1
B' : Type u_2
e : B ≃ B'
W : Type u_3
H : Type u_4
inst✝¹ : Group W
inst✝ : Group H
M : CoxeterMatrix B
cs : CoxeterSystem M W
i i' : B
this : cs.wordProd (alternatingWord i i' (M.M i i')) = cs.wordProd (alternatingWord i' i (M.M i i'))
⊢ cs.wordProd (braidWord M i i') = cs.wordProd (braidWord M i' i)
state_after: B : Type u_1
B' : Type u_2
e : B ≃ B'
W : Type u_3
H : Type u_4
inst✝¹ : Group W
inst✝ : Group H
M : CoxeterMatrix B
cs : CoxeterSystem M W
i i' : B
this : cs.wordProd (alternatingWord i i' (M.M i i')) = cs.wordProd (alternatingWord i' i (M.M i' i))
⊢ cs.wordProd (braidWord M i i') = cs.wordProd (braidWord M i' i)

tactic: exact this
state_before: B : Type u_1
B' : Type u_2
e : B ≃ B'
W : Type u_3
H : Type u_4
inst✝¹ : Group W
inst✝ : Group H
M : CoxeterMatrix B
cs : CoxeterSystem M W
i i' : B
this : cs.wordProd (alternatingWord i i' (M.M i i')) = cs.wordProd (alternatingWord i' i (M.M i' i))
⊢ cs.wordProd (braidWord M i i') = cs.wordProd (braidWord M i' i)
state_after: no goals

tactic: norm_num
state_before: B : Type u_1
B' : Type u_2
e : B ≃ B'
W : Type u_3
H : Type u_4
inst✝¹ : Group W
inst✝ : Group H
M : CoxeterMatrix B
cs : CoxeterSystem M W
i i' : B
⊢ 0 < 2
state_after: no goals
Theorem: CochainComplex.HomComplex.Cochain.rightShift_add
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean

tactic: ext p q hpq
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a n' : ℤ
hn' : n' + a = n
⊢ (γ₁ + γ₂).rightShift a n' hn' = γ₁.rightShift a n' hn' + γ₂.rightShift a n' hn'
state_after: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a n' : ℤ
hn' : n' + a = n
p q : ℤ
hpq : p + n' = q
⊢ ((γ₁ + γ₂).rightShift a n' hn').v p q hpq = (γ₁.rightShift a n' hn' + γ₂.rightShift a n' hn').v p q hpq

tactic: dsimp
state_before: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a n' : ℤ
hn' : n' + a = n
p q : ℤ
hpq : p + n' = q
⊢ ((γ₁ + γ₂).rightShift a n' hn').v p q hpq = (γ₁.rightShift a n' hn' + γ₂.rightShift a n' hn').v p q hpq
state_after: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a n' : ℤ
hn' : n' + a = n
p q : ℤ
hpq : p + n' = q
⊢ ((γ₁ + γ₂).rightShift a n' hn').v p q hpq = (γ₁.rightShift a n' hn').v p q hpq + (γ₂.rightShift a n' hn').v p q hpq

tactic: simp only [rightShift_v _ a n' hn' p q hpq _ rfl, add_v, add_comp]
state_before: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a n' : ℤ
hn' : n' + a = n
p q : ℤ
hpq : p + n' = q
⊢ ((γ₁ + γ₂).rightShift a n' hn').v p q hpq = (γ₁.rightShift a n' hn').v p q hpq + (γ₂.rightShift a n' hn').v p q hpq
state_after: no goals
Theorem: Mathlib.Tactic.Ring.div_pf
File: Mathlib/Tactic/Ring/Basic.lean

tactic: subst_vars
state_before: u : Lean.Level
R✝ : Type ?u.206755
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : DivisionRing R
a b c d : R
x✝¹ : b⁻¹ = c
x✝ : a * c = d
⊢ a / b = d
state_after: u : Lean.Level
R✝ : Type ?u.206755
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : DivisionRing R
a b : R
⊢ a / b = a * b⁻¹

tactic: simp [div_eq_mul_inv]
state_before: u : Lean.Level
R✝ : Type ?u.206755
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : DivisionRing R
a b : R
⊢ a / b = a * b⁻¹
state_after: no goals
Theorem: SimpleGraph.not_cliqueFree_of_isTuranMaximal
File: Mathlib/Combinatorics/SimpleGraph/Turan.lean

tactic: rintro h
state_before: V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
H : SimpleGraph V
hr : 0 < r
hn : r ≤ Fintype.card V
hG : G.IsTuranMaximal r
⊢ ¬G.CliqueFree r
state_after: V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
H : SimpleGraph V
hr : 0 < r
hn : r ≤ Fintype.card V
hG : G.IsTuranMaximal r
h : G.CliqueFree r
⊢ False

tactic: obtain ⟨K, _, rfl⟩ := exists_subset_card_eq hn
state_before: V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
H : SimpleGraph V
hr : 0 < r
hn : r ≤ Fintype.card V
hG : G.IsTuranMaximal r
h : G.CliqueFree r
⊢ False
state_after: case intro.intro
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n : ℕ
H : SimpleGraph V
K : Finset V
left✝ : K ⊆ univ
hr : 0 < K.card
hn : K.card ≤ Fintype.card V
hG : G.IsTuranMaximal K.card
h : G.CliqueFree K.card
⊢ False

tactic: obtain ⟨a, -, b, -, hab, hGab⟩ : ∃ a ∈ K, ∃ b ∈ K, a ≠ b ∧ ¬ G.Adj a b := by
  simpa only [isNClique_iff, IsClique, Set.Pairwise, mem_coe, ne_eq, and_true, not_forall,
    exists_prop, exists_and_right] using h K
state_before: case intro.intro
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n : ℕ
H : SimpleGraph V
K : Finset V
left✝ : K ⊆ univ
hr : 0 < K.card
hn : K.card ≤ Fintype.card V
hG : G.IsTuranMaximal K.card
h : G.CliqueFree K.card
⊢ False
state_after: case intro.intro.intro.intro.intro.intro.intro
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n : ℕ
H : SimpleGraph V
K : Finset V
left✝ : K ⊆ univ
hr : 0 < K.card
hn : K.card ≤ Fintype.card V
hG : G.IsTuranMaximal K.card
h : G.CliqueFree K.card
a b : V
hab : a ≠ b
hGab : ¬G.Adj a b
⊢ False

tactic: exact hGab <| le_sup_right.trans_eq ((hG.le_iff_eq <| h.sup_edge _ _).1 le_sup_left).symm <|
  (edge_adj ..).2 ⟨Or.inl ⟨rfl, rfl⟩, hab⟩
state_before: case intro.intro.intro.intro.intro.intro.intro
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n : ℕ
H : SimpleGraph V
K : Finset V
left✝ : K ⊆ univ
hr : 0 < K.card
hn : K.card ≤ Fintype.card V
hG : G.IsTuranMaximal K.card
h : G.CliqueFree K.card
a b : V
hab : a ≠ b
hGab : ¬G.Adj a b
⊢ False
state_after: no goals

tactic: simpa only [isNClique_iff, IsClique, Set.Pairwise, mem_coe, ne_eq, and_true, not_forall,
  exists_prop, exists_and_right] using h K
state_before: V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n : ℕ
H : SimpleGraph V
K : Finset V
left✝ : K ⊆ univ
hr : 0 < K.card
hn : K.card ≤ Fintype.card V
hG : G.IsTuranMaximal K.card
h : G.CliqueFree K.card
⊢ ∃ a ∈ K, ∃ b ∈ K, a ≠ b ∧ ¬G.Adj a b
state_after: no goals
Theorem: CliffordAlgebra.star_algebraMap
File: Mathlib/LinearAlgebra/CliffordAlgebra/Star.lean

tactic: rw [star_def, involute.commutes, reverse.commutes]
state_before: R : Type u_1
inst✝² : CommRing R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
r : R
⊢ star ((algebraMap R (CliffordAlgebra Q)) r) = (algebraMap R (CliffordAlgebra Q)) r
state_after: no goals
Theorem: MeasureTheory.Lp.simpleFunc.zero_toSimpleFunc
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: filter_upwards [toSimpleFunc_eq_toFun (0 : Lp.simpleFunc E p μ),
  Lp.coeFn_zero E 1 μ] with _ h₁ _
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
⊢ ↑(toSimpleFunc 0) =ᶠ[ae μ] 0
state_after: case h
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
a✝¹ : α
h₁ : ↑(toSimpleFunc 0) a✝¹ = ↑↑↑0 a✝¹
a✝ : ↑↑0 a✝¹ = 0 a✝¹
⊢ ↑(toSimpleFunc 0) a✝¹ = 0 a✝¹

tactic: rwa [h₁]
state_before: case h
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
a✝¹ : α
h₁ : ↑(toSimpleFunc 0) a✝¹ = ↑↑↑0 a✝¹
a✝ : ↑↑0 a✝¹ = 0 a✝¹
⊢ ↑(toSimpleFunc 0) a✝¹ = 0 a✝¹
state_after: no goals
Theorem: cfcₙ_apply
File: Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean

tactic: rw [cfcₙ_def, dif_pos ⟨ha, hf, hf0⟩]
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹² : CommSemiring R
inst✝¹¹ : Nontrivial R
inst✝¹⁰ : StarRing R
inst✝⁹ : MetricSpace R
inst✝⁸ : TopologicalSemiring R
inst✝⁷ : ContinuousStar R
inst✝⁶ : NonUnitalRing A
inst✝⁵ : StarRing A
inst✝⁴ : TopologicalSpace A
inst✝³ : Module R A
inst✝² : IsScalarTower R A A
inst✝¹ : SMulCommClass R A A
inst✝ : NonUnitalContinuousFunctionalCalculus R p
f g : R → R
a : A
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
hg : autoParam (ContinuousOn g (σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
⊢ cfcₙ f a = (cfcₙHom ha) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }
state_after: no goals
Theorem: Sym2.card_subtype_not_diag
File: Mathlib/Data/Sym/Card.lean

tactic: convert card_image_offDiag (univ : Finset α)
state_before: α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : Fintype α
⊢ Fintype.card { a // ¬a.IsDiag } = (Fintype.card α).choose 2
state_after: case h.e'_2
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : Fintype α
⊢ Fintype.card { a // ¬a.IsDiag } = (image Sym2.mk univ.offDiag).card

tactic: rw [← filter_image_mk_not_isDiag, Fintype.card_of_subtype]
state_before: case h.e'_2
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : Fintype α
⊢ Fintype.card { a // ¬a.IsDiag } = (image Sym2.mk univ.offDiag).card
state_after: case h.e'_2.H
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : Fintype α
⊢ ∀ (x : Sym2 α), x ∈ filter (fun a => ¬a.IsDiag) (image Sym2.mk (univ ×ˢ univ)) ↔ ¬x.IsDiag

tactic: rintro x
state_before: case h.e'_2.H
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : Fintype α
⊢ ∀ (x : Sym2 α), x ∈ filter (fun a => ¬a.IsDiag) (image Sym2.mk (univ ×ˢ univ)) ↔ ¬x.IsDiag
state_after: case h.e'_2.H
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : Fintype α
x : Sym2 α
⊢ x ∈ filter (fun a => ¬a.IsDiag) (image Sym2.mk (univ ×ˢ univ)) ↔ ¬x.IsDiag

tactic: rw [mem_filter, univ_product_univ, mem_image]
state_before: case h.e'_2.H
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : Fintype α
x : Sym2 α
⊢ x ∈ filter (fun a => ¬a.IsDiag) (image Sym2.mk (univ ×ˢ univ)) ↔ ¬x.IsDiag
state_after: case h.e'_2.H
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : Fintype α
x : Sym2 α
⊢ (∃ a ∈ univ, Sym2.mk a = x) ∧ ¬x.IsDiag ↔ ¬x.IsDiag

tactic: obtain ⟨a, ha⟩ := Quot.exists_rep x
state_before: case h.e'_2.H
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : Fintype α
x : Sym2 α
⊢ (∃ a ∈ univ, Sym2.mk a = x) ∧ ¬x.IsDiag ↔ ¬x.IsDiag
state_after: case h.e'_2.H.intro
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : Fintype α
x : Sym2 α
a : α × α
ha : Quot.mk (Rel α) a = x
⊢ (∃ a ∈ univ, Sym2.mk a = x) ∧ ¬x.IsDiag ↔ ¬x.IsDiag

tactic: exact and_iff_right ⟨a, mem_univ _, ha⟩
state_before: case h.e'_2.H.intro
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq α
inst✝ : Fintype α
x : Sym2 α
a : α × α
ha : Quot.mk (Rel α) a = x
⊢ (∃ a ∈ univ, Sym2.mk a = x) ∧ ¬x.IsDiag ↔ ¬x.IsDiag
state_after: no goals
Theorem: Nat.coprime_factors_disjoint
File: Mathlib/Data/Nat/Factors.lean

tactic: intro q hqa hqb
state_before: a b : ℕ
hab : a.Coprime b
⊢ a.factors.Disjoint b.factors
state_after: a b : ℕ
hab : a.Coprime b
q : ℕ
hqa : q ∈ a.factors
hqb : q ∈ b.factors
⊢ False

tactic: apply not_prime_one
state_before: a b : ℕ
hab : a.Coprime b
q : ℕ
hqa : q ∈ a.factors
hqb : q ∈ b.factors
⊢ False
state_after: a b : ℕ
hab : a.Coprime b
q : ℕ
hqa : q ∈ a.factors
hqb : q ∈ b.factors
⊢ Prime 1

tactic: rw [← eq_one_of_dvd_coprimes hab (dvd_of_mem_factors hqa) (dvd_of_mem_factors hqb)]
state_before: a b : ℕ
hab : a.Coprime b
q : ℕ
hqa : q ∈ a.factors
hqb : q ∈ b.factors
⊢ Prime 1
state_after: a b : ℕ
hab : a.Coprime b
q : ℕ
hqa : q ∈ a.factors
hqb : q ∈ b.factors
⊢ Prime q

tactic: exact prime_of_mem_factors hqa
state_before: a b : ℕ
hab : a.Coprime b
q : ℕ
hqa : q ∈ a.factors
hqb : q ∈ b.factors
⊢ Prime q
state_after: no goals
Theorem: Option.comp_traverse
File: Mathlib/Control/Traversable/Instances.lean

tactic: cases x <;> simp! [functor_norm] <;> rfl
state_before: F G : Type u → Type u
inst✝³ : Applicative F
inst✝² : Applicative G
inst✝¹ : LawfulApplicative F
inst✝ : LawfulApplicative G
α : Type u_1
β γ : Type u
f : β → F γ
g : α → G β
x : Option α
⊢ Option.traverse (Comp.mk ∘ (fun x => f <$> x) ∘ g) x = Comp.mk (Option.traverse f <$> Option.traverse g x)
state_after: no goals
Theorem: ZFSet.toSet_image
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: ext
state_before: f : ZFSet → ZFSet
H : Definable 1 f
x : ZFSet
⊢ (image f x).toSet = f '' x.toSet
state_after: case h
f : ZFSet → ZFSet
H : Definable 1 f
x x✝ : ZFSet
⊢ x✝ ∈ (image f x).toSet ↔ x✝ ∈ f '' x.toSet

tactic: simp
state_before: case h
f : ZFSet → ZFSet
H : Definable 1 f
x x✝ : ZFSet
⊢ x✝ ∈ (image f x).toSet ↔ x✝ ∈ f '' x.toSet
state_after: no goals
Theorem: Prod.lt_of_le_of_lt
File: Mathlib/Order/Basic.lean

tactic: simp [lt_iff, *]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝¹ : Preorder α
inst✝ : Preorder β
a a₁ a₂ : α
b b₁ b₂ : β
x y : α × β
h₁ : x.1 ≤ y.1
h₂ : x.2 < y.2
⊢ x < y
state_after: no goals
Theorem: CategoryTheory.tensorRightHomEquiv_whiskerLeft_comp_evaluation
File: Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean

tactic: dsimp [tensorRightHomEquiv, rightAdjointMate]
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
inst✝² : MonoidalCategory C
X Y : C
inst✝¹ : HasRightDual X
inst✝ : HasRightDual Y
f : X ⟶ Y
⊢ (tensorRightHomEquiv Yᘁ X Xᘁ (𝟙_ C)) (Yᘁ ◁ f ≫ ε_ Y Yᘁ) = fᘁ ≫ (λ_ Xᘁ).inv
state_after: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
inst✝² : MonoidalCategory C
X Y : C
inst✝¹ : HasRightDual X
inst✝ : HasRightDual Y
f : X ⟶ Y
⊢ (ρ_ Yᘁ).inv ≫ Yᘁ ◁ η_ X Xᘁ ≫ (α_ Yᘁ X Xᘁ).inv ≫ (Yᘁ ◁ f ≫ ε_ Y Yᘁ) ▷ Xᘁ =
    ((ρ_ Yᘁ).inv ≫ Yᘁ ◁ η_ X Xᘁ ≫ Yᘁ ◁ f ▷ Xᘁ ≫ (α_ Yᘁ Y Xᘁ).inv ≫ ε_ Y Yᘁ ▷ Xᘁ ≫ (λ_ Xᘁ).hom) ≫ (λ_ Xᘁ).inv

tactic: simp
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
inst✝² : MonoidalCategory C
X Y : C
inst✝¹ : HasRightDual X
inst✝ : HasRightDual Y
f : X ⟶ Y
⊢ (ρ_ Yᘁ).inv ≫ Yᘁ ◁ η_ X Xᘁ ≫ (α_ Yᘁ X Xᘁ).inv ≫ (Yᘁ ◁ f ≫ ε_ Y Yᘁ) ▷ Xᘁ =
    ((ρ_ Yᘁ).inv ≫ Yᘁ ◁ η_ X Xᘁ ≫ Yᘁ ◁ f ▷ Xᘁ ≫ (α_ Yᘁ Y Xᘁ).inv ≫ ε_ Y Yᘁ ▷ Xᘁ ≫ (λ_ Xᘁ).hom) ≫ (λ_ Xᘁ).inv
state_after: no goals