tasksource/leandojo huggingface dataset:
Theorem: CategoryTheory.Subobject.factorThru_add
File: Mathlib/CategoryTheory/Subobject/FactorThru.lean

tactic: ext
state_before: C : Type u₁
inst✝² : Category C
X✝ Y✝ Z : C
D : Type u₂
inst✝¹ : Category D
inst✝ : Preadditive C
X Y : C
P : Subobject Y
f g : X ⟶ Y
w : Factors P (f + g)
wf : Factors P f
wg : Factors P g
⊢ factorThru P (f + g) w = factorThru P f wf + factorThru P g wg

tactic: simp
state_before: case h
C : Type u₁
inst✝² : Category C
X✝ Y✝ Z : C
D : Type u₂
inst✝¹ : Category D
inst✝ : Preadditive C
X Y : C
P : Subobject Y
f g : X ⟶ Y
w : Factors P (f + g)
wf : Factors P f
wg : Factors P g
⊢ factorThru P (f + g) w ≫ arrow P = (factorThru P f wf + factorThru P g wg) ≫ arrow P
Theorem: MeasureTheory.Measure.toSignedMeasure_smul
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: ext i
state_before: α : Type u_1
β : Type ?u.138627
m : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
r : ℝ≥0
⊢ toSignedMeasure (r • μ) = r • toSignedMeasure μ

tactic: intro hi
state_before: case h
α : Type u_1
β : Type ?u.138627
m : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
r : ℝ≥0
i : Set α
⊢ MeasurableSet i → ↑(toSignedMeasure (r • μ)) i = ↑(r • toSignedMeasure μ) i

tactic: rw [toSignedMeasure_apply_measurable hi, VectorMeasure.smul_apply,
  toSignedMeasure_apply_measurable hi, coe_smul, Pi.smul_apply, ENNReal.toReal_smul]
state_before: case h
α : Type u_1
β : Type ?u.138627
m : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
r : ℝ≥0
i : Set α
hi : MeasurableSet i
⊢ ↑(toSignedMeasure (r • μ)) i = ↑(r • toSignedMeasure μ) i
Theorem: Fin.comp_snoc
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: ext j
state_before: m n : ℕ
α✝ : Fin (n + 1) → Type u
x : α✝ (last n)
q✝ : (i : Fin (n + 1)) → α✝ i
p : (i : Fin n) → α✝ (↑castSucc i)
i : Fin n
y✝ : α✝ (↑castSucc i)
z : α✝ (last n)
α : Type u_1
β : Type u_2
g : α → β
q : Fin n → α
y : α
⊢ g ∘ snoc q y = snoc (g ∘ q) (g y)

tactic: by_cases h : j.val < n
state_before: case h
m n : ℕ
α✝ : Fin (n + 1) → Type u
x : α✝ (last n)
q✝ : (i : Fin (n + 1)) → α✝ i
p : (i : Fin n) → α✝ (↑castSucc i)
i : Fin n
y✝ : α✝ (↑castSucc i)
z : α✝ (last n)
α : Type u_1
β : Type u_2
g : α → β
q : Fin n → α
y : α
j : Fin (n + 1)
⊢ (g ∘ snoc q y) j = snoc (g ∘ q) (g y) j

tactic: simp [h, snoc, castSucc_castLT]
state_before: case pos
m n : ℕ
α✝ : Fin (n + 1) → Type u
x : α✝ (last n)
q✝ : (i : Fin (n + 1)) → α✝ i
p : (i : Fin n) → α✝ (↑castSucc i)
i : Fin n
y✝ : α✝ (↑castSucc i)
z : α✝ (last n)
α : Type u_1
β : Type u_2
g : α → β
q : Fin n → α
y : α
j : Fin (n + 1)
h : ↑j < n
⊢ (g ∘ snoc q y) j = snoc (g ∘ q) (g y) j

tactic: rw [eq_last_of_not_lt h]
state_before: case neg
m n : ℕ
α✝ : Fin (n + 1) → Type u
x : α✝ (last n)
q✝ : (i : Fin (n + 1)) → α✝ i
p : (i : Fin n) → α✝ (↑castSucc i)
i : Fin n
y✝ : α✝ (↑castSucc i)
z : α✝ (last n)
α : Type u_1
β : Type u_2
g : α → β
q : Fin n → α
y : α
j : Fin (n + 1)
h : ¬↑j < n
⊢ (g ∘ snoc q y) j = snoc (g ∘ q) (g y) j

tactic: simp
state_before: case neg
m n : ℕ
α✝ : Fin (n + 1) → Type u
x : α✝ (last n)
q✝ : (i : Fin (n + 1)) → α✝ i
p : (i : Fin n) → α✝ (↑castSucc i)
i : Fin n
y✝ : α✝ (↑castSucc i)
z : α✝ (last n)
α : Type u_1
β : Type u_2
g : α → β
q : Fin n → α
y : α
j : Fin (n + 1)
h : ¬↑j < n
⊢ (g ∘ snoc q y) (last n) = snoc (g ∘ q) (g y) (last n)
Theorem: mul_right_surjective₀
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: simp [mul_assoc, inv_mul_cancel h]
state_before: α : Type ?u.30355
M₀ : Type ?u.30358
G₀ : Type u_1
M₀' : Type ?u.30364
G₀' : Type ?u.30367
F : Type ?u.30370
F' : Type ?u.30373
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
h : a ≠ 0
g : G₀
⊢ (fun g => g * a) (g * a⁻¹) = g
Theorem: Polynomial.restriction_zero
File: Mathlib/RingTheory/Polynomial/Basic.lean

tactic: simp only [restriction, Finset.sum_empty, support_zero]
state_before: R : Type u
S : Type ?u.76676
inst✝ : Ring R
⊢ restriction 0 = 0
Theorem: circleIntegral.integral_radius_zero
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: simp [circleIntegral, const]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
⊢ (∮ (z : ℂ) in C(c, 0), f z) = 0
Theorem: PowerSeries.eq_shift_mul_X_add_const
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: ext (_ | n)
state_before: R : Type u_1
inst✝ : Semiring R
φ : PowerSeries R
⊢ φ = (mk fun p => ↑(coeff R (p + 1)) φ) * X + ↑(C R) (↑(constantCoeff R) φ)

tactic: simp only [Nat.zero_eq, coeff_zero_eq_constantCoeff, map_add, map_mul, constantCoeff_X,
  mul_zero, coeff_zero_C, zero_add]
state_before: case h.zero
R : Type u_1
inst✝ : Semiring R
φ : PowerSeries R
⊢ ↑(coeff R Nat.zero) φ = ↑(coeff R Nat.zero) ((mk fun p => ↑(coeff R (p + 1)) φ) * X + ↑(C R) (↑(constantCoeff R) φ))

tactic: simp only [coeff_succ_mul_X, coeff_mk, LinearMap.map_add, coeff_C, n.succ_ne_zero, sub_zero,
  if_false, add_zero]
state_before: case h.succ
R : Type u_1
inst✝ : Semiring R
φ : PowerSeries R
n : ℕ
⊢ ↑(coeff R (Nat.succ n)) φ =
    ↑(coeff R (Nat.succ n)) ((mk fun p => ↑(coeff R (p + 1)) φ) * X + ↑(C R) (↑(constantCoeff R) φ))
Theorem: RingHom.ker_isPrime
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: rw [Ne.def, Ideal.eq_top_iff_one]
state_before: R : Type u
S : Type v
T : Type w
F : Type u_1
inst✝³ : Ring R
inst✝² : Ring S
inst✝¹ : IsDomain S
inst✝ : RingHomClass F R S
f : F
⊢ ker f ≠ ⊤

tactic: exact not_one_mem_ker f
state_before: R : Type u
S : Type v
T : Type w
F : Type u_1
inst✝³ : Ring R
inst✝² : Ring S
inst✝¹ : IsDomain S
inst✝ : RingHomClass F R S
f : F
⊢ ¬1 ∈ ker f

tactic: simpa only [mem_ker, map_mul] using @eq_zero_or_eq_zero_of_mul_eq_zero S _ _ _ _ _
state_before: R : Type u
S : Type v
T : Type w
F : Type u_1
inst✝³ : Ring R
inst✝² : Ring S
inst✝¹ : IsDomain S
inst✝ : RingHomClass F R S
f : F
x y : R
⊢ x * y ∈ ker f → x ∈ ker f ∨ y ∈ ker f
Theorem: LinearMap.toMatrix₂'_mul
File: Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean

tactic: simp only [B.toMatrix₂'_compl₂, toMatrix'_toLin']
state_before: R : Type u_1
R₁ : Type ?u.1101680
R₂ : Type ?u.1101683
M✝ : Type ?u.1101686
M₁ : Type ?u.1101689
M₂ : Type ?u.1101692
M₁' : Type ?u.1101695
M₂' : Type ?u.1101698
n : Type u_2
m : Type u_3
n' : Type ?u.1101707
m' : Type u_4
ι : Type ?u.1101713
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing R₁
inst✝⁸ : CommRing R₂
inst✝⁷ : Fintype n
inst✝⁶ : Fintype m
inst✝⁵ : DecidableEq n
inst✝⁴ : DecidableEq m
σ₁ : R₁ →+* R
σ₂ : R₂ →+* R
inst✝³ : Fintype n'
inst✝² : Fintype m'
inst✝¹ : DecidableEq n'
inst✝ : DecidableEq m'
B : (n → R) →ₗ[R] (m → R) →ₗ[R] R
M : Matrix m m' R
⊢ ↑toMatrix₂' B ⬝ M = ↑toMatrix₂' (compl₂ B (↑toLin' M))
Theorem: round_neg_two_inv
File: Mathlib/Algebra/Order/Floor.lean

tactic: simp only [round_eq, ← one_div, add_left_neg, floor_zero]
state_before: F : Type ?u.280809
α : Type u_1
β : Type ?u.280815
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
⊢ round (-2⁻¹) = 0
Theorem: SimpleGraph.Preconnected.boxProd
File: Mathlib/Combinatorics/SimpleGraph/Prod.lean

tactic: rintro x y
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.81755
G : SimpleGraph α
H : SimpleGraph β
hG : Preconnected G
hH : Preconnected H
⊢ Preconnected (G □ H)

tactic: obtain ⟨w₁⟩ := hG x.1 y.1
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.81755
G : SimpleGraph α
H : SimpleGraph β
hG : Preconnected G
hH : Preconnected H
x y : α × β
⊢ Reachable (G □ H) x y

tactic: obtain ⟨w₂⟩ := hH x.2 y.2
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type ?u.81755
G : SimpleGraph α
H : SimpleGraph β
hG : Preconnected G
hH : Preconnected H
x y : α × β
w₁ : Walk G x.fst y.fst
⊢ Reachable (G □ H) x y

tactic: rw [← @Prod.mk.eta _ _ x, ← @Prod.mk.eta _ _ y]
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type ?u.81755
G : SimpleGraph α
H : SimpleGraph β
hG : Preconnected G
hH : Preconnected H
x y : α × β
w₁ : Walk G x.fst y.fst
w₂ : Walk H x.snd y.snd
⊢ Reachable (G □ H) x y

tactic: exact ⟨(w₁.boxProdLeft _ _).append (w₂.boxProdRight _ _)⟩
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type ?u.81755
G : SimpleGraph α
H : SimpleGraph β
hG : Preconnected G
hH : Preconnected H
x y : α × β
w₁ : Walk G x.fst y.fst
w₂ : Walk H x.snd y.snd
⊢ Reachable (G □ H) (x.fst, x.snd) (y.fst, y.snd)
Theorem: List.pairwise_of_reflexive_of_forall_ne
File: Mathlib/Data/List/Pairwise.lean

tactic: classical exact pairwise_of_reflexive_on_dupl_of_forall_ne (fun _ _ => hr _) h
state_before: α : Type u_1
β : Type ?u.44556
R S T : α → α → Prop
a : α
l✝ l : List α
r : α → α → Prop
hr : Reflexive r
h : ∀ (a : α), a ∈ l → ∀ (b : α), b ∈ l → a ≠ b → r a b
⊢ Pairwise r l

tactic: exact pairwise_of_reflexive_on_dupl_of_forall_ne (fun _ _ => hr _) h
state_before: α : Type u_1
β : Type ?u.44556
R S T : α → α → Prop
a : α
l✝ l : List α
r : α → α → Prop
hr : Reflexive r
h : ∀ (a : α), a ∈ l → ∀ (b : α), b ∈ l → a ≠ b → r a b
⊢ Pairwise r l
Theorem: geometric_hahn_banach_point_point
File: Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean

tactic: obtain ⟨f, s, t, hs, st, ht⟩ :=
  geometric_hahn_banach_compact_closed (convex_singleton x) isCompact_singleton
    (convex_singleton y) isClosed_singleton (disjoint_singleton.2 hxy)
state_before: 𝕜 : Type ?u.125223
E : Type u_1
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : Module ℝ E
inst✝² : ContinuousSMul ℝ E
s t : Set E
x y : E
inst✝¹ : LocallyConvexSpace ℝ E
inst✝ : T1Space E
hxy : x ≠ y
⊢ ∃ f, ↑f x < ↑f y

tactic: exact ⟨f, by linarith [hs x rfl, ht y rfl]⟩
state_before: case intro.intro.intro.intro.intro
𝕜 : Type ?u.125223
E : Type u_1
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : Module ℝ E
inst✝² : ContinuousSMul ℝ E
s✝ t✝ : Set E
x y : E
inst✝¹ : LocallyConvexSpace ℝ E
inst✝ : T1Space E
hxy : x ≠ y
f : E →L[ℝ] ℝ
s t : ℝ
hs : ∀ (a : E), a ∈ {x} → ↑f a < s
st : s < t
ht : ∀ (b : E), b ∈ {y} → t < ↑f b
⊢ ∃ f, ↑f x < ↑f y

tactic: linarith [hs x rfl, ht y rfl]
state_before: 𝕜 : Type ?u.125223
E : Type u_1
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : Module ℝ E
inst✝² : ContinuousSMul ℝ E
s✝ t✝ : Set E
x y : E
inst✝¹ : LocallyConvexSpace ℝ E
inst✝ : T1Space E
hxy : x ≠ y
f : E →L[ℝ] ℝ
s t : ℝ
hs : ∀ (a : E), a ∈ {x} → ↑f a < s
st : s < t
ht : ∀ (b : E), b ∈ {y} → t < ↑f b
⊢ ↑f x < ↑f y
Theorem: BilinForm.toMatrix_basisFun
File: Mathlib/LinearAlgebra/Matrix/BilinearForm.lean

tactic: ext B
state_before: R : Type ?u.1309864
M : Type ?u.1309867
inst✝¹⁷ : Semiring R
inst✝¹⁶ : AddCommMonoid M
inst✝¹⁵ : Module R M
R₁ : Type ?u.1309903
M₁ : Type ?u.1309906
inst✝¹⁴ : Ring R₁
inst✝¹³ : AddCommGroup M₁
inst✝¹² : Module R₁ M₁
R₂ : Type u_1
M₂ : Type ?u.1310518
inst✝¹¹ : CommSemiring R₂
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : Module R₂ M₂
R₃ : Type ?u.1310705
M₃ : Type ?u.1310708
inst✝⁸ : CommRing R₃
inst✝⁷ : AddCommGroup M₃
inst✝⁶ : Module R₃ M₃
V : Type ?u.1311296
K : Type ?u.1311299
inst✝⁵ : Field K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
B : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
n : Type u_2
o : Type ?u.1312516
inst✝² : Fintype n
inst✝¹ : Fintype o
inst✝ : DecidableEq n
b : Basis n R₂ M₂
⊢ toMatrix (Pi.basisFun R₂ n) = toMatrix'

tactic: rw [BilinForm.toMatrix_apply, BilinForm.toMatrix'_apply, Pi.basisFun_apply, Pi.basisFun_apply]
state_before: case h.a.h
R : Type ?u.1309864
M : Type ?u.1309867
inst✝¹⁷ : Semiring R
inst✝¹⁶ : AddCommMonoid M
inst✝¹⁵ : Module R M
R₁ : Type ?u.1309903
M₁ : Type ?u.1309906
inst✝¹⁴ : Ring R₁
inst✝¹³ : AddCommGroup M₁
inst✝¹² : Module R₁ M₁
R₂ : Type u_1
M₂ : Type ?u.1310518
inst✝¹¹ : CommSemiring R₂
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : Module R₂ M₂
R₃ : Type ?u.1310705
M₃ : Type ?u.1310708
inst✝⁸ : CommRing R₃
inst✝⁷ : AddCommGroup M₃
inst✝⁶ : Module R₃ M₃
V : Type ?u.1311296
K : Type ?u.1311299
inst✝⁵ : Field K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
n : Type u_2
o : Type ?u.1312516
inst✝² : Fintype n
inst✝¹ : Fintype o
inst✝ : DecidableEq n
b : Basis n R₂ M₂
B : BilinForm R₂ (n → R₂)
i✝ x✝ : n
⊢ ↑(toMatrix (Pi.basisFun R₂ n)) B i✝ x✝ = ↑toMatrix' B i✝ x✝
Theorem: Int.lt_irrefl
File: Std/Data/Int/Lemmas.lean

tactic: rw [hn, Int.add_zero]
state_before: a : Int
H : a < a
n : Nat
hn : a + ↑(succ n) = a
⊢ a + ↑(succ n) = a + 0
Theorem: Equiv.swap_mul_eq_mul_swap
File: Mathlib/GroupTheory/Perm/Basic.lean

tactic: simp only [Perm.mul_apply, swap_apply_def]
state_before: α : Type u
β : Type v
inst✝ : DecidableEq α
f : Perm α
x y z : α
⊢ ↑(swap x y * f) z = ↑(f * swap (↑f⁻¹ x) (↑f⁻¹ y)) z

tactic: split_ifs <;>
  simp_all only [Perm.apply_inv_self, Perm.eq_inv_iff_eq, eq_self_iff_true, not_true]
state_before: α : Type u
β : Type v
inst✝ : DecidableEq α
f : Perm α
x y z : α
⊢ (if ↑f z = x then y else if ↑f z = y then x else ↑f z) =
    ↑f (if z = ↑f⁻¹ x then ↑f⁻¹ y else if z = ↑f⁻¹ y then ↑f⁻¹ x else z)
Theorem: AEMeasurable.exists_measurable_nonneg
File: Mathlib/MeasureTheory/Measure/AEMeasurable.lean

tactic: obtain ⟨G, hG_meas, hG_mem, hG_ae_eq⟩ := hf.exists_ae_eq_range_subset f_nn ⟨0, le_rfl⟩
state_before: ι : Type ?u.2730322
α : Type u_2
β✝ : Type ?u.2730328
γ : Type ?u.2730331
δ : Type ?u.2730334
R : Type ?u.2730337
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β✝
inst✝³ : MeasurableSpace γ
inst✝² : MeasurableSpace δ
f✝ g : α → β✝
μ ν : MeasureTheory.Measure α
β : Type u_1
inst✝¹ : Preorder β
inst✝ : Zero β
mβ : MeasurableSpace β
f : α → β
hf : AEMeasurable f
f_nn : ∀ᵐ (t : α) ∂μ, 0 ≤ f t
⊢ ∃ g, Measurable g ∧ 0 ≤ g ∧ f =ᶠ[ae μ] g

tactic: exact ⟨G, hG_meas, fun x => hG_mem (mem_range_self x), hG_ae_eq⟩
state_before: case intro.intro.intro
ι : Type ?u.2730322
α : Type u_2
β✝ : Type ?u.2730328
γ : Type ?u.2730331
δ : Type ?u.2730334
R : Type ?u.2730337
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β✝
inst✝³ : MeasurableSpace γ
inst✝² : MeasurableSpace δ
f✝ g : α → β✝
μ ν : MeasureTheory.Measure α
β : Type u_1
inst✝¹ : Preorder β
inst✝ : Zero β
mβ : MeasurableSpace β
f : α → β
hf : AEMeasurable f
f_nn : ∀ᵐ (t : α) ∂μ, 0 ≤ f t
G : α → β
hG_meas : Measurable G
hG_mem : range G ⊆ Preorder.toLE.1 0
hG_ae_eq : f =ᶠ[ae μ] G
⊢ ∃ g, Measurable g ∧ 0 ≤ g ∧ f =ᶠ[ae μ] g
Theorem: MeasurableSet.iInter
File: Mathlib/MeasureTheory/MeasurableSpaceDef.lean

tactic: rw [compl_iInter]
state_before: α : Type u_2
β : Type ?u.7084
γ : Type ?u.7087
δ : Type ?u.7090
δ' : Type ?u.7093
ι : Sort u_1
s t u : Set α
m : MeasurableSpace α
inst✝ : Countable ι
f : ι → Set α
h : ∀ (b : ι), MeasurableSet (f b)
⊢ MeasurableSet ((⋂ (b : ι), f b)ᶜ)

tactic: exact .iUnion fun b => (h b).compl
state_before: α : Type u_2
β : Type ?u.7084
γ : Type ?u.7087
δ : Type ?u.7090
δ' : Type ?u.7093
ι : Sort u_1
s t u : Set α
m : MeasurableSpace α
inst✝ : Countable ι
f : ι → Set α
h : ∀ (b : ι), MeasurableSet (f b)
⊢ MeasurableSet (⋃ (i : ι), f iᶜ)
Theorem: LieSubmodule.map_comap_incl
File: Mathlib/Algebra/Lie/IdealOperations.lean

tactic: rw [← coe_toSubmodule_eq_iff]
state_before: R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
f : M →ₗ⁅R,L⁆ M₂
⊢ map (incl N) (comap (incl N) N') = N ⊓ N'

tactic: exact (N : Submodule R M).map_comap_subtype N'
state_before: R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
f : M →ₗ⁅R,L⁆ M₂
⊢ ↑(map (incl N) (comap (incl N) N')) = ↑(N ⊓ N')
Theorem: Set.pairwise_disjoint_Ioo_zpow
File: Mathlib/Data/Set/Intervals/Group.lean

tactic: simpa only [one_mul] using pairwise_disjoint_Ioo_mul_zpow 1 b
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
⊢ Pairwise (Disjoint on fun n => Ioo (b ^ n) (b ^ (n + 1)))
Theorem: ConvexCone.Blunt.salient
File: Mathlib/Analysis/Convex/Cone/Basic.lean

tactic: rw [salient_iff_not_flat, blunt_iff_not_pointed]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.79178
G : Type ?u.79181
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
S✝ S : ConvexCone 𝕜 E
⊢ Blunt S → Salient S

tactic: exact mt Flat.pointed
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.79178
G : Type ?u.79181
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
S✝ S : ConvexCone 𝕜 E
⊢ ¬Pointed S → ¬Flat S
Theorem: WeakBilin.tendsto_iff_forall_eval_tendsto
File: Mathlib/Topology/Algebra/Module/WeakDual.lean

tactic: rw [← tendsto_pi_nhds, Embedding.tendsto_nhds_iff (embedding hB)]
state_before: α : Type u_1
𝕜 : Type u_2
𝕝 : Type ?u.37176
R : Type ?u.37179
E : Type u_3
F : Type u_4
M : Type ?u.37188
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : CommSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommMonoid F
inst✝ : Module 𝕜 F
B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
l : Filter α
f : α → WeakBilin B
x : WeakBilin B
hB : Function.Injective ↑B
⊢ Tendsto f l (𝓝 x) ↔ ∀ (y : F), Tendsto (fun i => ↑(↑B (f i)) y) l (𝓝 (↑(↑B x) y))

tactic: rfl
state_before: α : Type u_1
𝕜 : Type u_2
𝕝 : Type ?u.37176
R : Type ?u.37179
E : Type u_3
F : Type u_4
M : Type ?u.37188
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : CommSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommMonoid F
inst✝ : Module 𝕜 F
B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
l : Filter α
f : α → WeakBilin B
x : WeakBilin B
hB : Function.Injective ↑B
⊢ Tendsto ((fun x y => ↑(↑B x) y) ∘ f) l (𝓝 fun y => ↑(↑B x) y) ↔
    Tendsto (fun i y => ↑(↑B (f i)) y) l (𝓝 fun y => ↑(↑B x) y)
Theorem: periodic_circleMap
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: simp [circleMap, add_mul, exp_periodic _]
state_before: E : Type ?u.2472
inst✝ : NormedAddCommGroup E
c : ℂ
R θ : ℝ
⊢ circleMap c R (θ + 2 * π) = circleMap c R θ
Theorem: Multiset.prod_replicate
File: Mathlib/Algebra/BigOperators/Multiset/Basic.lean

tactic: simp [replicate, List.prod_replicate]
state_before: ι : Type ?u.19271
α : Type u_1
β : Type ?u.19277
γ : Type ?u.19280
inst✝ : CommMonoid α
s t : Multiset α
a✝ : α
m : Multiset ι
f g : ι → α
n : ℕ
a : α
⊢ prod (replicate n a) = a ^ n
Theorem: Polynomial.degree_monomial_le
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: rw [h, (monomial n).map_zero]
state_before: R : Type u
S : Type v
a✝ b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
n : ℕ
a : R
h : a = 0
⊢ degree (↑(monomial n) a) ≤ ↑n

tactic: exact bot_le
state_before: R : Type u
S : Type v
a✝ b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
n : ℕ
a : R
h : a = 0
⊢ degree 0 ≤ ↑n
Theorem: PadicInt.prime_p
File: Mathlib/NumberTheory/Padics/PadicIntegers.lean

tactic: rw [← Ideal.span_singleton_prime, ← maximalIdeal_eq_span_p]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
⊢ Prime ↑p

tactic: infer_instance
state_before: p : ℕ
hp : Fact (Nat.Prime p)
⊢ Ideal.IsPrime (maximalIdeal ℤ_[p])

tactic: exact_mod_cast hp.1.ne_zero
state_before: p : ℕ
hp : Fact (Nat.Prime p)
⊢ ↑p ≠ 0
Theorem: ENNReal.exists_nnreal_pos_mul_lt
File: Mathlib/Data/Real/ENNReal.lean

tactic: rcases exists_nat_pos_inv_mul_lt ha hb with ⟨n, npos : 0 < n, hn⟩
state_before: α : Type ?u.342393
β : Type ?u.342396
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ 0
⊢ ∃ n, n > 0 ∧ ↑n * a < b

tactic: use (n : ℝ≥0)⁻¹
state_before: case intro.intro
α : Type ?u.342393
β : Type ?u.342396
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ 0
n : ℕ
npos : 0 < n
hn : (↑n)⁻¹ * a < b
⊢ ∃ n, n > 0 ∧ ↑n * a < b

tactic: simp [*, npos.ne', zero_lt_one]
state_before: case intro.intro
α : Type ?u.342393
β : Type ?u.342396
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ 0
n : ℕ
npos : 0 < n
hn : (↑n)⁻¹ * a < b
⊢ (↑n)⁻¹ > 0 ∧ ↑(↑n)⁻¹ * a < b
Theorem: Polynomial.splits_map_iff
File: Mathlib/Data/Polynomial/Splits.lean

tactic: simp [Splits, Polynomial.map_map]
state_before: F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
j : L →+* F
f : K[X]
⊢ Splits j (map i f) ↔ Splits (RingHom.comp j i) f
Theorem: RatFunc.num_algebraMap
File: Mathlib/FieldTheory/RatFunc.lean

tactic: convert num_div p 1 <;> simp
state_before: K : Type u
inst✝ : Field K
p : K[X]
⊢ num (↑(algebraMap K[X] (RatFunc K)) p) = p
Theorem: Real.arccos_lt_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: simp [arccos]
state_before: x : ℝ
⊢ arccos x < π / 2 ↔ 0 < x
Theorem: Subgroup.card_le_one_iff_eq_bot
File: Mathlib/GroupTheory/Subgroup/Finite.lean

tactic: simpa [Subtype.ext_iff] using Fintype.card_le_one_iff.1 h ⟨x, hx⟩ 1
state_before: G : Type u_1
inst✝² : Group G
A : Type ?u.15911
inst✝¹ : AddGroup A
H K : Subgroup G
inst✝ : Fintype { x // x ∈ H }
h : Fintype.card { x // x ∈ H } ≤ 1
x : G
hx : x ∈ H
⊢ x = 1

tactic: simp [h]
state_before: G : Type u_1
inst✝² : Group G
A : Type ?u.15911
inst✝¹ : AddGroup A
H K : Subgroup G
inst✝ : Fintype { x // x ∈ H }
h : H = ⊥
⊢ Fintype.card { x // x ∈ H } ≤ 1
Theorem: Substring.ValidFor.isEmpty
File: Std/Data/String/Lemmas.lean

tactic: simp [Substring.isEmpty, h.bsize]
state_before: l m r : List Char
x✝ : Substring
h : ValidFor l m r x✝
⊢ Substring.isEmpty x✝ = true ↔ m = []
Theorem: Nat.eq_zero_of_dvd_of_div_eq_zero
File: Mathlib/Data/Nat/Basic.lean

tactic: rw [← Nat.div_mul_cancel w, h, zero_mul]
state_before: m n k a b : ℕ
w : a ∣ b
h : b / a = 0
⊢ b = 0
Theorem: Nat.xgcd_aux_val
File: Mathlib/Data/Int/GCD.lean

tactic: rw [xgcd, ← xgcd_aux_fst x y 1 0 0 1]
state_before: x y : ℕ
⊢ xgcdAux x 1 0 y 0 1 = (gcd x y, xgcd x y)
Theorem: hasFDerivAtFilter_const
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: simp only [zero_apply, sub_self]
state_before: 𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.1361007
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.1361102
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
c : F
x : E
L : Filter E
x✝ : E
⊢ 0 = (fun x => c) x✝ - (fun x => c) x - ↑0 (x✝ - x)
Theorem: Matrix.neg_mul
File: Mathlib/Data/Matrix/Basic.lean

tactic: ext
state_before: l : Type ?u.379437
m : Type u_1
n : Type u_2
o : Type u_3
m' : o → Type ?u.379451
n' : o → Type ?u.379456
R : Type ?u.379459
S : Type ?u.379462
α : Type v
β : Type w
γ : Type ?u.379469
inst✝¹ : NonUnitalNonAssocRing α
inst✝ : Fintype n
M : Matrix m n α
N : Matrix n o α
⊢ (-M) ⬝ N = -M ⬝ N

tactic: apply neg_dotProduct
state_before: case a.h
l : Type ?u.379437
m : Type u_1
n : Type u_2
o : Type u_3
m' : o → Type ?u.379451
n' : o → Type ?u.379456
R : Type ?u.379459
S : Type ?u.379462
α : Type v
β : Type w
γ : Type ?u.379469
inst✝¹ : NonUnitalNonAssocRing α
inst✝ : Fintype n
M : Matrix m n α
N : Matrix n o α
i✝ : m
x✝ : o
⊢ ((-M) ⬝ N) i✝ x✝ = (-M ⬝ N) i✝ x✝