tasksource/leandojo huggingface dataset:
Theorem: Mon_.mul_rightUnitor
File: Mathlib/CategoryTheory/Monoidal/Mon_.lean

tactic: rw [← Category.id_comp M.mul, ← Category.comp_id (λ_ (𝟙_ C)).hom, tensor_comp]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ (tensor_μ C (M.X, 𝟙_ C) (M.X, 𝟙_ C) ≫ (M.mul ⊗ (λ_ (𝟙_ C)).hom)) ≫ (ρ_ M.X).hom =
    ((ρ_ M.X).hom ⊗ (ρ_ M.X).hom) ≫ M.mul

tactic: slice_lhs 3 4 => rw [rightUnitor_naturality]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ (tensor_μ C (M.X, 𝟙_ C) (M.X, 𝟙_ C) ≫ (𝟙 (M.X ⊗ M.X) ⊗ (λ_ (𝟙_ C)).hom) ≫ (M.mul ⊗ 𝟙 (𝟙_ C))) ≫ (ρ_ M.X).hom =
    ((ρ_ M.X).hom ⊗ (ρ_ M.X).hom) ≫ 𝟙 (M.X ⊗ M.X) ≫ M.mul

tactic: slice_lhs 1 3 => rw [← rightUnitor_monoidal]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ tensor_μ C (M.X, 𝟙_ C) (M.X, 𝟙_ C) ≫ (𝟙 (M.X ⊗ M.X) ⊗ (λ_ (𝟙_ C)).hom) ≫ (ρ_ (M.X ⊗ M.X)).hom ≫ M.mul =
    ((ρ_ M.X).hom ⊗ (ρ_ M.X).hom) ≫ 𝟙 (M.X ⊗ M.X) ≫ M.mul

tactic: simp only [Category.assoc, Category.id_comp]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ ((ρ_ M.X).hom ⊗ (ρ_ M.X).hom) ≫ M.mul = ((ρ_ M.X).hom ⊗ (ρ_ M.X).hom) ≫ 𝟙 (M.X ⊗ M.X) ≫ M.mul
Theorem: Matrix.det_submatrix_equiv_self
File: Mathlib/LinearAlgebra/Matrix/Determinant.lean

tactic: rw [det_apply', det_apply']
state_before: m : Type u_2
n : Type u_1
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
e : n ≃ m
A : Matrix m m R
⊢ det (submatrix A ↑e ↑e) = det A

tactic: apply Fintype.sum_equiv (Equiv.permCongr e)
state_before: m : Type u_2
n : Type u_1
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
e : n ≃ m
A : Matrix m m R
⊢ ∑ σ : Perm n, ↑↑(↑sign σ) * ∏ i : n, submatrix A (↑e) (↑e) (↑σ i) i = ∑ σ : Perm m, ↑↑(↑sign σ) * ∏ i : m, A (↑σ i) i

tactic: intro σ
state_before: case h
m : Type u_2
n : Type u_1
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
e : n ≃ m
A : Matrix m m R
⊢ ∀ (x : Perm n),
    ↑↑(↑sign x) * ∏ i : n, submatrix A (↑e) (↑e) (↑x i) i =
      ↑↑(↑sign (↑(permCongr e) x)) * ∏ i : m, A (↑(↑(permCongr e) x) i) i

tactic: rw [Equiv.Perm.sign_permCongr e σ]
state_before: case h
m : Type u_2
n : Type u_1
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
e : n ≃ m
A : Matrix m m R
σ : Perm n
⊢ ↑↑(↑sign σ) * ∏ i : n, submatrix A (↑e) (↑e) (↑σ i) i =
    ↑↑(↑sign (↑(permCongr e) σ)) * ∏ i : m, A (↑(↑(permCongr e) σ) i) i

tactic: congr 1
state_before: case h
m : Type u_2
n : Type u_1
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
e : n ≃ m
A : Matrix m m R
σ : Perm n
⊢ ↑↑(↑sign σ) * ∏ i : n, submatrix A (↑e) (↑e) (↑σ i) i = ↑↑(↑sign σ) * ∏ i : m, A (↑(↑(permCongr e) σ) i) i

tactic: apply Fintype.prod_equiv e
state_before: case h.e_a
m : Type u_2
n : Type u_1
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
e : n ≃ m
A : Matrix m m R
σ : Perm n
⊢ ∏ i : n, submatrix A (↑e) (↑e) (↑σ i) i = ∏ i : m, A (↑(↑(permCongr e) σ) i) i

tactic: intro i
state_before: case h.e_a.h
m : Type u_2
n : Type u_1
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
e : n ≃ m
A : Matrix m m R
σ : Perm n
⊢ ∀ (x : n), submatrix A (↑e) (↑e) (↑σ x) x = A (↑(↑(permCongr e) σ) (↑e x)) (↑e x)

tactic: rw [Equiv.permCongr_apply, Equiv.symm_apply_apply, submatrix_apply]
state_before: case h.e_a.h
m : Type u_2
n : Type u_1
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
e : n ≃ m
A : Matrix m m R
σ : Perm n
i : n
⊢ submatrix A (↑e) (↑e) (↑σ i) i = A (↑(↑(permCongr e) σ) (↑e i)) (↑e i)
Theorem: IsPrimitiveRoot.neg_one
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: convert IsPrimitiveRoot.orderOf (-1 : R)
state_before: M : Type ?u.2773733
N : Type ?u.2773736
G : Type ?u.2773739
R : Type u_1
S : Type ?u.2773745
F : Type ?u.2773748
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ : Rˣ
h✝ : IsPrimitiveRoot ζ k
p : ℕ
inst✝ : Nontrivial R
h : CharP R p
hp : p ≠ 2
⊢ IsPrimitiveRoot (-1) 2

tactic: rw [orderOf_neg_one, if_neg]
state_before: case h.e'_4
M : Type ?u.2773733
N : Type ?u.2773736
G : Type ?u.2773739
R : Type u_1
S : Type ?u.2773745
F : Type ?u.2773748
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ : Rˣ
h✝ : IsPrimitiveRoot ζ k
p : ℕ
inst✝ : Nontrivial R
h : CharP R p
hp : p ≠ 2
⊢ 2 = orderOf (-1)

tactic: rwa [ringChar.eq_iff.mpr h]
state_before: case h.e'_4.hnc
M : Type ?u.2773733
N : Type ?u.2773736
G : Type ?u.2773739
R : Type u_1
S : Type ?u.2773745
F : Type ?u.2773748
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ : Rˣ
h✝ : IsPrimitiveRoot ζ k
p : ℕ
inst✝ : Nontrivial R
h : CharP R p
hp : p ≠ 2
⊢ ¬ringChar R = 2
Theorem: padicNorm.nat_lt_one_iff
File: Mathlib/NumberTheory/Padics/PadicNorm.lean

tactic: rw [← Int.coe_nat_dvd, ← int_lt_one_iff, Int.cast_ofNat]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
m : ℕ
⊢ padicNorm p ↑m < 1 ↔ p ∣ m
Theorem: CategoryTheory.IsPullback.of_is_bilimit'
File: Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean

tactic: refine' IsPullback.of_right _ (by simp) (IsPullback.inl_snd' h).flip
state_before: C : Type u₁
inst✝² : Category C
P X Y Z : C
fst : P ⟶ X
snd : P ⟶ Y
f : X ⟶ Z
g : Y ⟶ Z
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
b : BinaryBicone X Y
h : BinaryBicone.IsBilimit b
⊢ IsPullback 0 0 b.inl b.inr

tactic: simp
state_before: C : Type u₁
inst✝² : Category C
P X Y Z : C
fst : P ⟶ X
snd : P ⟶ Y
f : X ⟶ Z
g : Y ⟶ Z
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
b : BinaryBicone X Y
h : BinaryBicone.IsBilimit b
⊢ IsPullback (0 ≫ 0) 0 0 (b.inr ≫ b.snd)

tactic: simp
state_before: C : Type u₁
inst✝² : Category C
P X Y Z : C
fst : P ⟶ X
snd : P ⟶ Y
f : X ⟶ Z
g : Y ⟶ Z
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
b : BinaryBicone X Y
h : BinaryBicone.IsBilimit b
⊢ 0 ≫ b.inl = 0 ≫ b.inr
Theorem: ENNReal.exists_inv_nat_lt
File: Mathlib/Data/Real/ENNReal.lean

tactic: simp only [ENNReal.inv_lt_inv, ENNReal.exists_nat_gt (inv_ne_top.2 h)]
state_before: α : Type ?u.339403
β : Type ?u.339406
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ≥0∞
h : a ≠ 0
⊢ ∃ n, (↑n)⁻¹ < a⁻¹⁻¹
Theorem: Rat.mul_comm
File: Std/Data/Rat/Lemmas.lean

tactic: simp [mul_def, normalize_eq_mkRat, Int.mul_comm, Nat.mul_comm]
state_before: a b : Rat
⊢ a * b = b * a
Theorem: BilinForm.comp_id_left
File: Mathlib/LinearAlgebra/BilinearForm.lean

tactic: ext
state_before: R : Type u_1
M : Type u_2
inst✝¹⁶ : Semiring R
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : Module R M
R₁ : Type ?u.507306
M₁ : Type ?u.507309
inst✝¹³ : Ring R₁
inst✝¹² : AddCommGroup M₁
inst✝¹¹ : Module R₁ M₁
R₂ : Type ?u.507918
M₂ : Type ?u.507921
inst✝¹⁰ : CommSemiring R₂
inst✝⁹ : AddCommMonoid M₂
inst✝⁸ : Module R₂ M₂
R₃ : Type ?u.508108
M₃ : Type ?u.508111
inst✝⁷ : CommRing R₃
inst✝⁶ : AddCommGroup M₃
inst✝⁵ : Module R₃ M₃
V : Type ?u.508699
K : Type ?u.508702
inst✝⁴ : Field K
inst✝³ : AddCommGroup V
inst✝² : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
B : BilinForm R M
r : M →ₗ[R] M
⊢ comp B LinearMap.id r = compRight B r

tactic: rfl
state_before: case H
R : Type u_1
M : Type u_2
inst✝¹⁶ : Semiring R
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : Module R M
R₁ : Type ?u.507306
M₁ : Type ?u.507309
inst✝¹³ : Ring R₁
inst✝¹² : AddCommGroup M₁
inst✝¹¹ : Module R₁ M₁
R₂ : Type ?u.507918
M₂ : Type ?u.507921
inst✝¹⁰ : CommSemiring R₂
inst✝⁹ : AddCommMonoid M₂
inst✝⁸ : Module R₂ M₂
R₃ : Type ?u.508108
M₃ : Type ?u.508111
inst✝⁷ : CommRing R₃
inst✝⁶ : AddCommGroup M₃
inst✝⁵ : Module R₃ M₃
V : Type ?u.508699
K : Type ?u.508702
inst✝⁴ : Field K
inst✝³ : AddCommGroup V
inst✝² : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
B : BilinForm R M
r : M →ₗ[R] M
x✝ y✝ : M
⊢ bilin (comp B LinearMap.id r) x✝ y✝ = bilin (compRight B r) x✝ y✝
Theorem: EuclideanDomain.eq_div_of_mul_eq_left
File: Mathlib/Algebra/EuclideanDomain/Basic.lean

tactic: rw [← h, mul_div_cancel _ hb]
state_before: R : Type u
inst✝ : EuclideanDomain R
a b c : R
hb : b ≠ 0
h : a * b = c
⊢ a = c / b
Theorem: Rat.cast_coe_nat
File: Mathlib/Data/Rat/Cast.lean

tactic: rw [← Int.cast_ofNat, cast_coe_int, Int.cast_ofNat]
state_before: F : Type ?u.1219
ι : Type ?u.1222
α : Type u_1
β : Type ?u.1228
inst✝ : DivisionRing α
n : ℕ
⊢ ↑↑n = ↑n
Theorem: intervalIntegral.integral_congr
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: cases' le_total a b with hab hab <;>
  simpa [hab, integral_of_le, integral_of_ge] using
    set_integral_congr measurableSet_Ioc (h.mono Ioc_subset_Icc_self)
state_before: ι : Type ?u.15077331
𝕜 : Type ?u.15077334
E : Type u_1
F : Type ?u.15077340
A : Type ?u.15077343
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a✝ b✝ c d : ℝ
f g : ℝ → E
μ : MeasureTheory.Measure ℝ
a b : ℝ
h : EqOn f g [[a, b]]
⊢ (∫ (x : ℝ) in a..b, f x ∂μ) = ∫ (x : ℝ) in a..b, g x ∂μ
Theorem: Num.ppred_to_nat
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [ppred, Option.map_some, Nat.ppred_eq_some.2]
state_before: α : Type ?u.465274
p : PosNum
⊢ castNum <$> ppred (pos p) = Nat.ppred ↑(pos p)

tactic: rw [PosNum.pred'_to_nat, Nat.succ_pred_eq_of_pos (PosNum.to_nat_pos _)]
state_before: α : Type ?u.465274
p : PosNum
⊢ Nat.succ ↑(pred' p) = ↑(pos p)

tactic: rfl
state_before: α : Type ?u.465274
p : PosNum
⊢ ↑p = ↑(pos p)
Theorem: hasSum_div_const_iff
File: Mathlib/Topology/Algebra/InfiniteSum/Ring.lean

tactic: simpa only [div_eq_mul_inv] using hasSum_mul_right_iff (inv_ne_zero h)
state_before: ι : Type u_2
κ : Type ?u.11565
R : Type ?u.11568
α : Type u_1
inst✝² : DivisionSemiring α
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSemiring α
f g : ι → α
a a₁ a₂ : α
h : a₂ ≠ 0
⊢ HasSum (fun i => f i / a₂) (a₁ / a₂) ↔ HasSum f a₁
Theorem: div_le_of_nonneg_of_le_mul
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rcases eq_or_lt_of_le hb with (rfl | hb')
state_before: ι : Type ?u.42038
α : Type u_1
β : Type ?u.42044
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
hb : 0 ≤ b
hc : 0 ≤ c
h : a ≤ c * b
⊢ a / b ≤ c

tactic: simp [hc]
state_before: case inl
ι : Type ?u.42038
α : Type u_1
β : Type ?u.42044
inst✝ : LinearOrderedSemifield α
a c d e : α
m n : ℤ
hc : 0 ≤ c
hb : 0 ≤ 0
h : a ≤ c * 0
⊢ a / 0 ≤ c

case inr
ι : Type ?u.42038
α : Type u_1
β : Type ?u.42044
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
hb : 0 ≤ b
hc : 0 ≤ c
h : a ≤ c * b
hb' : 0 < b
⊢ a / b ≤ c

tactic: rwa [div_le_iff hb']
state_before: case inr
ι : Type ?u.42038
α : Type u_1
β : Type ?u.42044
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
hb : 0 ≤ b
hc : 0 ≤ c
h : a ≤ c * b
hb' : 0 < b
⊢ a / b ≤ c
Theorem: RingHom.FinitePresentation.of_comp_finiteType
File: Mathlib/RingTheory/FinitePresentation.lean

tactic: simp [Algebra.smul_def, mul_assoc]
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
hg : FinitePresentation (RingHom.comp g f)
hf : FiniteType f
ins1 : Algebra A B := toAlgebra f
ins2 : Algebra B C := toAlgebra g
ins3 : Algebra A C := toAlgebra (RingHom.comp g f)
a : A
b : B
c : C
⊢ (a • b) • c = a • b • c

tactic: rfl
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
hg : FinitePresentation (RingHom.comp g f)
hf : FiniteType f
ins1 : Algebra A B := toAlgebra f
ins2 : Algebra B C := toAlgebra g
ins3 : Algebra A C := toAlgebra (RingHom.comp g f)
a : A
b : B
c : C
⊢ ↑(algebraMap B C) (↑(algebraMap A B) a) * (↑(algebraMap B C) b * c) = ↑(algebraMap A C) a * (↑(algebraMap B C) b * c)
Theorem: Ordinal.pred_eq_iff_not_succ
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [e', pred_succ] at e
state_before: α : Type ?u.82121
β : Type ?u.82124
γ : Type ?u.82127
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
e : pred o = o
x✝ : ∃ a, o = succ a
a : Ordinal
e' : o = succ a
⊢ False

tactic: exact (lt_succ a).ne e
state_before: α : Type ?u.82121
β : Type ?u.82124
γ : Type ?u.82127
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
x✝ : ∃ a, o = succ a
a : Ordinal
e : a = succ a
e' : o = succ a
⊢ False
Theorem: SimpleGraph.set_walk_length_succ_eq
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: ext p
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
n : ℕ
⊢ {p | Walk.length p = Nat.succ n} = ⋃ (w : V) (h : Adj G u w), Walk.cons h '' {p' | Walk.length p' = n}

tactic: cases' p with _ _ w _ huw pwv
state_before: case h
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
n : ℕ
p : Walk G u v
⊢ p ∈ {p | Walk.length p = Nat.succ n} ↔ p ∈ ⋃ (w : V) (h : Adj G u w), Walk.cons h '' {p' | Walk.length p' = n}

tactic: simp [eq_comm]
state_before: case h.nil
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u : V
n : ℕ
⊢ Walk.nil ∈ {p | Walk.length p = Nat.succ n} ↔
    Walk.nil ∈ ⋃ (w : V) (h : Adj G u w), Walk.cons h '' {p' | Walk.length p' = n}

tactic: simp only [Nat.succ_eq_add_one, Set.mem_setOf_eq, Walk.length_cons, add_left_inj,
  Set.mem_iUnion, Set.mem_image, exists_prop]
state_before: case h.cons
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
n : ℕ
w : V
huw : Adj G u w
pwv : Walk G w v
⊢ Walk.cons huw pwv ∈ {p | Walk.length p = Nat.succ n} ↔
    Walk.cons huw pwv ∈ ⋃ (w : V) (h : Adj G u w), Walk.cons h '' {p' | Walk.length p' = n}

tactic: constructor
state_before: case h.cons
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
n : ℕ
w : V
huw : Adj G u w
pwv : Walk G w v
⊢ Walk.length pwv = n ↔ ∃ i h x, Walk.length x = n ∧ Walk.cons (_ : Adj G u i) x = Walk.cons huw pwv

tactic: rintro rfl
state_before: case h.cons.mp
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
n : ℕ
w : V
huw : Adj G u w
pwv : Walk G w v
⊢ Walk.length pwv = n → ∃ i h x, Walk.length x = n ∧ Walk.cons (_ : Adj G u i) x = Walk.cons huw pwv

tactic: exact ⟨w, huw, pwv, rfl, rfl⟩
state_before: case h.cons.mp
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w : V
huw : Adj G u w
pwv : Walk G w v
⊢ ∃ i h x, Walk.length x = Walk.length pwv ∧ Walk.cons (_ : Adj G u i) x = Walk.cons huw pwv

tactic: rintro ⟨w, huw, pwv, rfl, rfl, rfl⟩
state_before: case h.cons.mpr
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
n : ℕ
w : V
huw : Adj G u w
pwv : Walk G w v
⊢ (∃ i h x, Walk.length x = n ∧ Walk.cons (_ : Adj G u i) x = Walk.cons huw pwv) → Walk.length pwv = n

tactic: rfl
state_before: case h.cons.mpr.intro.intro.intro.intro.refl
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w : V
huw✝ : Adj G u w
pwv : Walk G w v
huw : Adj G u w
⊢ Walk.length pwv = Walk.length pwv
Theorem: MeasurableSet.pi
File: Mathlib/MeasureTheory/MeasurableSpace.lean

tactic: rw [pi_def]
state_before: α : Type ?u.104676
β : Type ?u.104679
γ : Type ?u.104682
δ : Type u_1
δ' : Type ?u.104688
ι : Sort uι
s✝ t✝ u : Set α
π : δ → Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : (a : δ) → MeasurableSpace (π a)
inst✝ : MeasurableSpace γ
s : Set δ
t : (i : δ) → Set (π i)
hs : Set.Countable s
ht : ∀ (i : δ), i ∈ s → MeasurableSet (t i)
⊢ MeasurableSet (Set.pi s t)

tactic: exact MeasurableSet.biInter hs fun i hi => measurable_pi_apply _ (ht i hi)
state_before: α : Type ?u.104676
β : Type ?u.104679
γ : Type ?u.104682
δ : Type u_1
δ' : Type ?u.104688
ι : Sort uι
s✝ t✝ u : Set α
π : δ → Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : (a : δ) → MeasurableSpace (π a)
inst✝ : MeasurableSpace γ
s : Set δ
t : (i : δ) → Set (π i)
hs : Set.Countable s
ht : ∀ (i : δ), i ∈ s → MeasurableSet (t i)
⊢ MeasurableSet (⋂ (a : δ) (_ : a ∈ s), eval a ⁻¹' t a)
Theorem: lintegral_eq_lintegral_meas_lt
File: Mathlib/MeasureTheory/Integral/Layercake.lean

tactic: rw [lintegral_eq_lintegral_meas_le μ f_nn f_mble]
state_before: α : Type u_1
inst✝³ : MeasurableSpace α
μ✝ : MeasureTheory.Measure α
β : Type ?u.1235354
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSingletonClass β
f : α → ℝ
g : ℝ → ℝ
s : Set α
μ : MeasureTheory.Measure α
inst✝ : SigmaFinite μ
f_nn : 0 ≤ f
f_mble : Measurable f
⊢ (∫⁻ (ω : α), ENNReal.ofReal (f ω) ∂μ) = ∫⁻ (t : ℝ) in Ioi 0, ↑↑μ {a | t < f a}

tactic: apply lintegral_congr_ae
state_before: α : Type u_1
inst✝³ : MeasurableSpace α
μ✝ : MeasureTheory.Measure α
β : Type ?u.1235354
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSingletonClass β
f : α → ℝ
g : ℝ → ℝ
s : Set α
μ : MeasureTheory.Measure α
inst✝ : SigmaFinite μ
f_nn : 0 ≤ f
f_mble : Measurable f
⊢ (∫⁻ (t : ℝ) in Ioi 0, ↑↑μ {a | t ≤ f a}) = ∫⁻ (t : ℝ) in Ioi 0, ↑↑μ {a | t < f a}

tactic: filter_upwards [Measure.meas_le_ae_eq_meas_lt μ (volume.restrict (Ioi 0)) f_mble] with t ht
state_before: case h
α : Type u_1
inst✝³ : MeasurableSpace α
μ✝ : MeasureTheory.Measure α
β : Type ?u.1235354
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSingletonClass β
f : α → ℝ
g : ℝ → ℝ
s : Set α
μ : MeasureTheory.Measure α
inst✝ : SigmaFinite μ
f_nn : 0 ≤ f
f_mble : Measurable f
⊢ (fun a => ↑↑μ {a_1 | a ≤ f a_1}) =ᵐ[Measure.restrict volume (Ioi 0)] fun a => ↑↑μ {a_1 | a < f a_1}

tactic: rw [ht]
state_before: case h
α : Type u_1
inst✝³ : MeasurableSpace α
μ✝ : MeasureTheory.Measure α
β : Type ?u.1235354
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSingletonClass β
f : α → ℝ
g : ℝ → ℝ
s : Set α
μ : MeasureTheory.Measure α
inst✝ : SigmaFinite μ
f_nn : 0 ≤ f
f_mble : Measurable f
t : ℝ
ht : ↑↑μ {a | t ≤ f a} = ↑↑μ {a | t < f a}
⊢ ↑↑μ {a | t ≤ f a} = ↑↑μ {a | t < f a}
Theorem: CategoryTheory.GrothendieckTopology.Subpresheaf.family_of_elements_compatible
File: Mathlib/CategoryTheory/Sites/Subsheaf.lean

tactic: intro Y₁ Y₂ Z g₁ g₂ f₁ f₂ h₁ h₂ e
state_before: C : Type u
inst✝ : Category C
J : GrothendieckTopology C
F F' F'' : Cᵒᵖ ⥤ Type w
G G' : Subpresheaf F
U : Cᵒᵖ
s : F.obj U
⊢ Presieve.FamilyOfElements.Compatible (familyOfElementsOfSection G s)

tactic: refine Subtype.ext ?_
state_before: C : Type u
inst✝ : Category C
J : GrothendieckTopology C
F F' F'' : Cᵒᵖ ⥤ Type w
G G' : Subpresheaf F
U : Cᵒᵖ
s : F.obj U
Y₁ Y₂ Z : C
g₁ : Z ⟶ Y₁
g₂ : Z ⟶ Y₂
f₁ : Y₁ ⟶ U.unop
f₂ : Y₂ ⟶ U.unop
h₁ : (sieveOfSection G s).arrows f₁
h₂ : (sieveOfSection G s).arrows f₂
e : g₁ ≫ f₁ = g₂ ≫ f₂
⊢ (toPresheaf G).map g₁.op (familyOfElementsOfSection G s f₁ h₁) =
    (toPresheaf G).map g₂.op (familyOfElementsOfSection G s f₂ h₂)

tactic: change F.map g₁.op (F.map f₁.op s) = F.map g₂.op (F.map f₂.op s)
state_before: C : Type u
inst✝ : Category C
J : GrothendieckTopology C
F F' F'' : Cᵒᵖ ⥤ Type w
G G' : Subpresheaf F
U : Cᵒᵖ
s : F.obj U
Y₁ Y₂ Z : C
g₁ : Z ⟶ Y₁
g₂ : Z ⟶ Y₂
f₁ : Y₁ ⟶ U.unop
f₂ : Y₂ ⟶ U.unop
h₁ : (sieveOfSection G s).arrows f₁
h₂ : (sieveOfSection G s).arrows f₂
e : g₁ ≫ f₁ = g₂ ≫ f₂
⊢ ↑((toPresheaf G).map g₁.op (familyOfElementsOfSection G s f₁ h₁)) =
    ↑((toPresheaf G).map g₂.op (familyOfElementsOfSection G s f₂ h₂))

tactic: rw [← FunctorToTypes.map_comp_apply, ← FunctorToTypes.map_comp_apply, ← op_comp, ← op_comp, e]
state_before: C : Type u
inst✝ : Category C
J : GrothendieckTopology C
F F' F'' : Cᵒᵖ ⥤ Type w
G G' : Subpresheaf F
U : Cᵒᵖ
s : F.obj U
Y₁ Y₂ Z : C
g₁ : Z ⟶ Y₁
g₂ : Z ⟶ Y₂
f₁ : Y₁ ⟶ U.unop
f₂ : Y₂ ⟶ U.unop
h₁ : (sieveOfSection G s).arrows f₁
h₂ : (sieveOfSection G s).arrows f₂
e : g₁ ≫ f₁ = g₂ ≫ f₂
⊢ F.map g₁.op (F.map f₁.op s) = F.map g₂.op (F.map f₂.op s)
Theorem: List.unzip_zip_right
File: Mathlib/Data/List/Zip.lean

tactic: rw [← zip_swap, unzip_swap]
state_before: α : Type u
β : Type u_1
γ : Type ?u.86992
δ : Type ?u.86995
ε : Type ?u.86998
l₁ : List α
l₂ : List β
h : length l₂ ≤ length l₁
⊢ (unzip (zip l₁ l₂)).snd = l₂

tactic: exact unzip_zip_left h
state_before: α : Type u
β : Type u_1
γ : Type ?u.86992
δ : Type ?u.86995
ε : Type ?u.86998
l₁ : List α
l₂ : List β
h : length l₂ ≤ length l₁
⊢ (Prod.swap (unzip (zip l₂ l₁))).snd = l₂
Theorem: mul_neg_iff
File: Mathlib/Algebra/Order/Ring/Defs.lean

tactic: rw [← neg_pos, neg_mul_eq_mul_neg, mul_pos_iff, neg_pos, neg_lt_zero]
state_before: α : Type u
β : Type ?u.174326
inst✝ : LinearOrderedRing α
a b c : α
⊢ a * b < 0 ↔ 0 < a ∧ b < 0 ∨ a < 0 ∧ 0 < b
Theorem: MeasureTheory.AEEqFun.coeFn_pair
File: Mathlib/MeasureTheory/Function/AEEqFun.lean

tactic: rw [pair_eq_mk]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type ?u.393568
inst✝³ : MeasurableSpace α
μ ν : Measure α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α →ₘ[μ] β
g : α →ₘ[μ] γ
⊢ ↑(pair f g) =ᵐ[μ] fun x => (↑f x, ↑g x)

tactic: apply coeFn_mk
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type ?u.393568
inst✝³ : MeasurableSpace α
μ ν : Measure α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α →ₘ[μ] β
g : α →ₘ[μ] γ
⊢ ↑(mk (fun x => (↑f x, ↑g x)) (_ : AEStronglyMeasurable (fun x => (↑f x, ↑g x)) μ)) =ᵐ[μ] fun x => (↑f x, ↑g x)
Theorem: differentiableOn_univ
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: simp only [DifferentiableOn, Differentiable, differentiableWithinAt_univ, mem_univ,
  forall_true_left]
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.322615
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.322710
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
⊢ DifferentiableOn 𝕜 f univ ↔ Differentiable 𝕜 f
Theorem: Matrix.Fin.circulant_mul
File: Mathlib/LinearAlgebra/Matrix/Circulant.lean

tactic: simp [Injective]
state_before: α : Type u_1
β : Type ?u.20421
m : Type ?u.20424
n : Type ?u.20427
R : Type ?u.20430
inst✝ : Semiring α
⊢ ∀ (v w : Fin 0 → α), circulant v ⬝ circulant w = circulant (mulVec (circulant v) w)
Theorem: ENNReal.one_rpow
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: rw [← coe_one, coe_rpow_of_ne_zero one_ne_zero]
state_before: x : ℝ
⊢ 1 ^ x = 1

tactic: simp
state_before: x : ℝ
⊢ ↑(1 ^ x) = ↑1
Theorem: BoxIntegral.Prepartition.isPartition_splitMany
File: Mathlib/Analysis/BoxIntegral/Partition/Split.lean

tactic: simp only [splitMany_empty, isPartitionTop]
state_before: ι : Type u_1
M : Type ?u.44679
n : ℕ
I✝ J : Box ι
i : ι
x : ℝ
I : Box ι
s : Finset (ι × ℝ)
⊢ IsPartition (splitMany I ∅)

tactic: simpa only [splitMany_insert, inf_split] using hs.biUnion fun J _ => isPartitionSplit _ _ _
state_before: ι : Type u_1
M : Type ?u.44679
n : ℕ
I✝ J : Box ι
i : ι
x : ℝ
I : Box ι
s✝ : Finset (ι × ℝ)
a : ι × ℝ
s : Finset (ι × ℝ)
x✝ : ¬a ∈ s
hs : IsPartition (splitMany I s)
⊢ IsPartition (splitMany I (insert a s))
Theorem: IsLocalizedModule.mk'_zero
File: Mathlib/Algebra/Module/LocalizedModule.lean

tactic: rw [← zero_smul R (0 : M), mk'_smul, zero_smul]
state_before: R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_3
M' : Type u_2
M'' : Type ?u.820045
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : AddCommMonoid M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
s : { x // x ∈ S }
⊢ mk' f 0 s = 0