tasksource/leandojo huggingface dataset:
Theorem: Monotone.leftLim
File: Mathlib/Topology/Algebra/Order/LeftRightLim.lean

tactic: intro x y h
state_before: α : Type u_1
β : Type u_2
inst✝³ : LinearOrder α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : Monotone f
x y : α
⊢ Monotone (leftLim f)

tactic: rcases eq_or_lt_of_le h with (rfl | hxy)
state_before: α : Type u_1
β : Type u_2
inst✝³ : LinearOrder α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : Monotone f
x✝ y✝ x y : α
h : x ≤ y
⊢ leftLim f x ≤ leftLim f y

tactic: exact le_rfl
state_before: case inl
α : Type u_1
β : Type u_2
inst✝³ : LinearOrder α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : Monotone f
x✝ y x : α
h : x ≤ x
⊢ leftLim f x ≤ leftLim f x

tactic: exact (hf.leftLim_le le_rfl).trans (hf.le_leftLim hxy)
state_before: case inr
α : Type u_1
β : Type u_2
inst✝³ : LinearOrder α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : Monotone f
x✝ y✝ x y : α
h : x ≤ y
hxy : x < y
⊢ leftLim f x ≤ leftLim f y
Theorem: vsub_sub_vsub_cancel_right
File: Mathlib/Algebra/AddTorsor.lean

tactic: rw [← vsub_vadd_eq_vsub_sub, vsub_vadd]
state_before: G : Type u_1
P : Type u_2
inst✝ : AddGroup G
T : AddTorsor G P
p1 p2 p3 : P
⊢ p1 -ᵥ p3 - (p2 -ᵥ p3) = p1 -ᵥ p2
Theorem: one_sub_invOf_two
File: Mathlib/Algebra/Invertible.lean

tactic: rw [mul_sub, mul_invOf_self, mul_one, ← one_add_one_eq_two, add_sub_cancel]
state_before: α : Type u
inst✝¹ : Ring α
inst✝ : Invertible 2
⊢ 2 * (1 - ⅟2) = 2 * ⅟2
Theorem: div_div_div_cancel_right
File: Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean

tactic: rw [div_div_eq_mul_div, div_mul_cancel _ hc]
state_before: α : Type ?u.8170
M₀ : Type ?u.8173
G₀ : Type u_1
M₀' : Type ?u.8179
G₀' : Type ?u.8182
F : Type ?u.8185
F' : Type ?u.8188
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
hc : c ≠ 0
⊢ a / c / (b / c) = a / b
Theorem: PNat.eq_one_of_lt_two
File: Mathlib/Data/PNat/Prime.lean

tactic: intro h
state_before: n : ℕ+
⊢ n < 2 → n = 1

tactic: apply le_antisymm
state_before: n : ℕ+
h : n < 2
⊢ n = 1

tactic: swap
state_before: case a
n : ℕ+
h : n < 2
⊢ n ≤ 1

case a
n : ℕ+
h : n < 2
⊢ 1 ≤ n

tactic: apply PNat.one_le
state_before: case a
n : ℕ+
h : n < 2
⊢ 1 ≤ n

case a
n : ℕ+
h : n < 2
⊢ n ≤ 1

tactic: exact PNat.lt_add_one_iff.1 h
state_before: case a
n : ℕ+
h : n < 2
⊢ n ≤ 1
Theorem: AlternatingMap.map_congr_perm
File: Mathlib/LinearAlgebra/Alternating.lean

tactic: rw [g.map_perm, smul_smul]
state_before: R : Type u_4
inst✝¹⁶ : Semiring R
M : Type u_3
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : Module R M
N : Type ?u.482812
inst✝¹³ : AddCommMonoid N
inst✝¹² : Module R N
P : Type ?u.482842
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : Module R P
M' : Type ?u.482872
inst✝⁹ : AddCommGroup M'
inst✝⁸ : Module R M'
N' : Type u_2
inst✝⁷ : AddCommGroup N'
inst✝⁶ : Module R N'
ι : Type u_1
ι' : Type ?u.483651
ι'' : Type ?u.483654
M₂ : Type ?u.483657
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
M₃ : Type ?u.483687
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M₃
f f' : AlternatingMap R M N ι
g g₂ : AlternatingMap R M N' ι
g' : AlternatingMap R M' N' ι
v : ι → M
v' : ι → M'
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
σ : Equiv.Perm ι
⊢ ↑g v = ↑Equiv.Perm.sign σ • ↑g (v ∘ ↑σ)

tactic: simp
state_before: R : Type u_4
inst✝¹⁶ : Semiring R
M : Type u_3
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : Module R M
N : Type ?u.482812
inst✝¹³ : AddCommMonoid N
inst✝¹² : Module R N
P : Type ?u.482842
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : Module R P
M' : Type ?u.482872
inst✝⁹ : AddCommGroup M'
inst✝⁸ : Module R M'
N' : Type u_2
inst✝⁷ : AddCommGroup N'
inst✝⁶ : Module R N'
ι : Type u_1
ι' : Type ?u.483651
ι'' : Type ?u.483654
M₂ : Type ?u.483657
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
M₃ : Type ?u.483687
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M₃
f f' : AlternatingMap R M N ι
g g₂ : AlternatingMap R M N' ι
g' : AlternatingMap R M' N' ι
v : ι → M
v' : ι → M'
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
σ : Equiv.Perm ι
⊢ ↑g v = (↑Equiv.Perm.sign σ * ↑Equiv.Perm.sign σ) • ↑g v
Theorem: MeasureTheory.Measure.haarMeasure_self
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

tactic: haveI : LocallyCompactSpace G := K₀.locallyCompactSpace_of_group
state_before: G : Type u_1
inst✝⁵ : Group G
inst✝⁴ : TopologicalSpace G
inst✝³ : T2Space G
inst✝² : TopologicalGroup G
inst✝¹ : MeasurableSpace G
inst✝ : BorelSpace G
K₀ : PositiveCompacts G
⊢ ↑↑(haarMeasure K₀) ↑K₀ = 1

tactic: rw [haarMeasure_apply K₀.isCompact.measurableSet, ENNReal.div_self]
state_before: G : Type u_1
inst✝⁵ : Group G
inst✝⁴ : TopologicalSpace G
inst✝³ : T2Space G
inst✝² : TopologicalGroup G
inst✝¹ : MeasurableSpace G
inst✝ : BorelSpace G
K₀ : PositiveCompacts G
this : LocallyCompactSpace G
⊢ ↑↑(haarMeasure K₀) ↑K₀ = 1

tactic: rw [← pos_iff_ne_zero]
state_before: case h0
G : Type u_1
inst✝⁵ : Group G
inst✝⁴ : TopologicalSpace G
inst✝³ : T2Space G
inst✝² : TopologicalGroup G
inst✝¹ : MeasurableSpace G
inst✝ : BorelSpace G
K₀ : PositiveCompacts G
this : LocallyCompactSpace G
⊢ ↑(Content.outerMeasure (haarContent K₀)) ↑K₀ ≠ 0

tactic: exact haarContent_outerMeasure_self_pos
state_before: case h0
G : Type u_1
inst✝⁵ : Group G
inst✝⁴ : TopologicalSpace G
inst✝³ : T2Space G
inst✝² : TopologicalGroup G
inst✝¹ : MeasurableSpace G
inst✝ : BorelSpace G
K₀ : PositiveCompacts G
this : LocallyCompactSpace G
⊢ 0 < ↑(Content.outerMeasure (haarContent K₀)) ↑K₀

tactic: exact (Content.outerMeasure_lt_top_of_isCompact _ K₀.isCompact).ne
state_before: case hI
G : Type u_1
inst✝⁵ : Group G
inst✝⁴ : TopologicalSpace G
inst✝³ : T2Space G
inst✝² : TopologicalGroup G
inst✝¹ : MeasurableSpace G
inst✝ : BorelSpace G
K₀ : PositiveCompacts G
this : LocallyCompactSpace G
⊢ ↑(Content.outerMeasure (haarContent K₀)) ↑K₀ ≠ ⊤
Theorem: Polynomial.self_sub_C_mul_X_pow
File: Mathlib/Data/Polynomial/EraseLead.lean

tactic: rw [C_mul_X_pow_eq_monomial, self_sub_monomial_natDegree_leadingCoeff]
state_before: R✝ : Type ?u.16691
inst✝¹ : Semiring R✝
f✝ : R✝[X]
R : Type u_1
inst✝ : Ring R
f : R[X]
⊢ f - ↑C (leadingCoeff f) * X ^ natDegree f = eraseLead f
Theorem: Metric.glueDist_triangle_inl_inr_inr
File: Mathlib/Topology/MetricSpace/Gluing.lean

tactic: simp only [glueDist]
state_before: X : Type u
Y : Type v
Z : Type w
inst✝² : MetricSpace X
inst✝¹ : MetricSpace Y
Φ✝ : Z → X
Ψ✝ : Z → Y
ε✝ : ℝ
inst✝ : Nonempty Z
Φ : Z → X
Ψ : Z → Y
ε : ℝ
x : X
y z : Y
⊢ glueDist Φ Ψ ε (Sum.inl x) (Sum.inr z) ≤
    glueDist Φ Ψ ε (Sum.inl x) (Sum.inr y) + glueDist Φ Ψ ε (Sum.inr y) (Sum.inr z)

tactic: rw [add_right_comm, add_le_add_iff_right]
state_before: X : Type u
Y : Type v
Z : Type w
inst✝² : MetricSpace X
inst✝¹ : MetricSpace Y
Φ✝ : Z → X
Ψ✝ : Z → Y
ε✝ : ℝ
inst✝ : Nonempty Z
Φ : Z → X
Ψ : Z → Y
ε : ℝ
x : X
y z : Y
⊢ (⨅ (p : Z), dist x (Φ p) + dist z (Ψ p)) + ε ≤ (⨅ (p : Z), dist x (Φ p) + dist y (Ψ p)) + ε + dist y z

tactic: refine le_ciInf_add fun p => ciInf_le_of_le ⟨0, ?_⟩ p ?_
state_before: X : Type u
Y : Type v
Z : Type w
inst✝² : MetricSpace X
inst✝¹ : MetricSpace Y
Φ✝ : Z → X
Ψ✝ : Z → Y
ε✝ : ℝ
inst✝ : Nonempty Z
Φ : Z → X
Ψ : Z → Y
ε : ℝ
x : X
y z : Y
⊢ (⨅ (p : Z), dist x (Φ p) + dist z (Ψ p)) ≤ (⨅ (p : Z), dist x (Φ p) + dist y (Ψ p)) + dist y z

tactic: exact forall_range_iff.2 fun _ => add_nonneg dist_nonneg dist_nonneg
state_before: case refine_1
X : Type u
Y : Type v
Z : Type w
inst✝² : MetricSpace X
inst✝¹ : MetricSpace Y
Φ✝ : Z → X
Ψ✝ : Z → Y
ε✝ : ℝ
inst✝ : Nonempty Z
Φ : Z → X
Ψ : Z → Y
ε : ℝ
x : X
y z : Y
p : Z
⊢ 0 ∈ lowerBounds (range fun p => dist x (Φ p) + dist z (Ψ p))

tactic: linarith [dist_triangle_left z (Ψ p) y]
state_before: case refine_2
X : Type u
Y : Type v
Z : Type w
inst✝² : MetricSpace X
inst✝¹ : MetricSpace Y
Φ✝ : Z → X
Ψ✝ : Z → Y
ε✝ : ℝ
inst✝ : Nonempty Z
Φ : Z → X
Ψ : Z → Y
ε : ℝ
x : X
y z : Y
p : Z
⊢ dist x (Φ p) + dist z (Ψ p) ≤ dist x (Φ p) + dist y (Ψ p) + dist y z
Theorem: IsCompact.exists_isMinOn
File: Mathlib/Topology/Algebra/Order/Compact.lean

tactic: rcases hs.exists_sInf_image_eq_and_le ne_s hf with ⟨x, hxs, -, hx⟩
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.35524
inst✝⁴ : ConditionallyCompleteLinearOrder α
inst✝³ : TopologicalSpace α
inst✝² : OrderTopology α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
s : Set β
hs : IsCompact s
ne_s : Set.Nonempty s
f : β → α
hf : ContinuousOn f s
⊢ ∃ x, x ∈ s ∧ IsMinOn f s x

tactic: exact ⟨x, hxs, hx⟩
state_before: case intro.intro.intro
α : Type u_2
β : Type u_1
γ : Type ?u.35524
inst✝⁴ : ConditionallyCompleteLinearOrder α
inst✝³ : TopologicalSpace α
inst✝² : OrderTopology α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
s : Set β
hs : IsCompact s
ne_s : Set.Nonempty s
f : β → α
hf : ContinuousOn f s
x : β
hxs : x ∈ s
hx : ∀ (y : β), y ∈ s → f x ≤ f y
⊢ ∃ x, x ∈ s ∧ IsMinOn f s x
Theorem: Rat.zero_ne_one
File: Mathlib/Data/Rat/Defs.lean

tactic: rw [ne_comm, ← divInt_one_one, divInt_ne_zero one_ne_zero]
state_before: a b c : ℚ
⊢ 0 ≠ 1

tactic: exact one_ne_zero
state_before: a b c : ℚ
⊢ 1 ≠ 0
Theorem: hasSum_empty
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: convert @hasSum_zero α β _ _
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.15946
δ : Type ?u.15949
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
f g : β → α
a b : α
s : Finset β
inst✝ : IsEmpty β
⊢ HasSum f 0
Theorem: CommMonoid.primaryComponent.disjoint
File: Mathlib/GroupTheory/Torsion.lean

tactic: rintro g ⟨_ | n, hn⟩ ⟨n', hn'⟩
state_before: G : Type u_1
H : Type ?u.192353
inst✝ : CommMonoid G
p : ℕ
hp : Fact (Nat.Prime p)
p' : ℕ
hp' : Fact (Nat.Prime p')
hne : p ≠ p'
⊢ ∀ {x : G}, x ∈ primaryComponent G p → x ∈ primaryComponent G p' → x = 1

tactic: rwa [pow_zero, orderOf_eq_one_iff] at hn
state_before: case intro.zero.intro
G : Type u_1
H : Type ?u.192353
inst✝ : CommMonoid G
p : ℕ
hp : Fact (Nat.Prime p)
p' : ℕ
hp' : Fact (Nat.Prime p')
hne : p ≠ p'
g : G
hn : orderOf g = p ^ Nat.zero
n' : ℕ
hn' : orderOf g = p' ^ n'
⊢ g = 1

tactic: exact
  absurd (eq_of_prime_pow_eq hp.out.prime hp'.out.prime n.succ_pos (hn.symm.trans hn')) hne
state_before: case intro.succ.intro
G : Type u_1
H : Type ?u.192353
inst✝ : CommMonoid G
p : ℕ
hp : Fact (Nat.Prime p)
p' : ℕ
hp' : Fact (Nat.Prime p')
hne : p ≠ p'
g : G
n : ℕ
hn : orderOf g = p ^ Nat.succ n
n' : ℕ
hn' : orderOf g = p' ^ n'
⊢ g = 1
Theorem: Bitvec.ofFin_val
File: Mathlib/Data/Bitvec/Lemmas.lean

tactic: rw [ofFin, toNat_ofNat, Nat.mod_eq_of_lt]
state_before: n : ℕ
i : Fin (2 ^ n)
⊢ Bitvec.toNat (ofFin i) = ↑i

tactic: apply i.is_lt
state_before: n : ℕ
i : Fin (2 ^ n)
⊢ ↑i < 2 ^ n
Theorem: Path.continuous_uncurry_extend_of_continuous_family
File: Mathlib/Topology/PathConnected.lean

tactic: refine' h.comp (continuous_id.prod_map continuous_projIcc)
state_before: X✝ : Type ?u.327951
Y : Type ?u.327954
inst✝³ : TopologicalSpace X✝
inst✝² : TopologicalSpace Y
x y z : X✝
ι✝ : Type ?u.327969
γ✝ : Path x y
X : Type u_1
ι : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace ι
a b : ι → X
γ : (t : ι) → Path (a t) (b t)
h : Continuous ↿γ
⊢ Continuous ↿fun t => extend (γ t)

tactic: exact zero_le_one
state_before: X✝ : Type ?u.327951
Y : Type ?u.327954
inst✝³ : TopologicalSpace X✝
inst✝² : TopologicalSpace Y
x y z : X✝
ι✝ : Type ?u.327969
γ✝ : Path x y
X : Type u_1
ι : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace ι
a b : ι → X
γ : (t : ι) → Path (a t) (b t)
h : Continuous ↿γ
⊢ 0 ≤ 1
Theorem: Matrix.inv_zero
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

tactic: cases' subsingleton_or_nontrivial α with ht ht
state_before: l : Type ?u.265241
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
⊢ 0⁻¹ = 0

tactic: cases' (Fintype.card n).zero_le.eq_or_lt with hc hc
state_before: case inr
l : Type ?u.265241
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
⊢ 0⁻¹ = 0

tactic: simp
state_before: case inl
l : Type ?u.265241
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Subsingleton α
⊢ 0⁻¹ = 0

tactic: rw [eq_comm, Fintype.card_eq_zero_iff] at hc
state_before: case inr.inl
l : Type ?u.265241
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
hc : 0 = Fintype.card n
⊢ 0⁻¹ = 0

tactic: haveI := hc
state_before: case inr.inl
l : Type ?u.265241
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
hc : IsEmpty n
⊢ 0⁻¹ = 0

tactic: ext i
state_before: case inr.inl
l : Type ?u.265241
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
hc this : IsEmpty n
⊢ 0⁻¹ = 0

tactic: exact (IsEmpty.false i).elim
state_before: case inr.inl.a.h
l : Type ?u.265241
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
hc this : IsEmpty n
i x✝ : n
⊢ 0⁻¹ i x✝ = OfNat.ofNat 0 i x✝

tactic: have hn : Nonempty n := Fintype.card_pos_iff.mp hc
state_before: case inr.inr
l : Type ?u.265241
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
hc : 0 < Fintype.card n
⊢ 0⁻¹ = 0

tactic: refine' nonsing_inv_apply_not_isUnit _ _
state_before: case inr.inr
l : Type ?u.265241
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
hc : 0 < Fintype.card n
hn : Nonempty n
⊢ 0⁻¹ = 0

tactic: simp [hn]
state_before: case inr.inr
l : Type ?u.265241
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
ht : Nontrivial α
hc : 0 < Fintype.card n
hn : Nonempty n
⊢ ¬IsUnit (det 0)
Theorem: Finpartition.coe_energy
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean

tactic: rw [energy]
state_before: α : Type u_2
inst✝² : DecidableEq α
s : Finset α
P : Finpartition s
G : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
𝕜 : Type u_1
inst✝ : LinearOrderedField 𝕜
⊢ ↑(energy P G) = ↑(∑ uv in offDiag P.parts, SimpleGraph.edgeDensity G uv.fst uv.snd ^ 2) / ↑(↑(card P.parts) ^ 2)

tactic: norm_cast
state_before: α : Type u_2
inst✝² : DecidableEq α
s : Finset α
P : Finpartition s
G : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
𝕜 : Type u_1
inst✝ : LinearOrderedField 𝕜
⊢ ↑((∑ uv in offDiag P.parts, SimpleGraph.edgeDensity G uv.fst uv.snd ^ 2) / ↑(card P.parts ^ 2)) =
    ↑(∑ uv in offDiag P.parts, SimpleGraph.edgeDensity G uv.fst uv.snd ^ 2) / ↑(↑(card P.parts) ^ 2)
Theorem: Matrix.blockTriangular_blockDiagonal'
File: Mathlib/LinearAlgebra/Matrix/Block.lean

tactic: rintro ⟨i, i'⟩ ⟨j, j'⟩ h
state_before: α : Type u_1
β : Type ?u.31715
m : Type ?u.31718
n : Type ?u.31721
o : Type ?u.31724
m' : α → Type u_2
n' : α → Type ?u.31734
R : Type v
inst✝² : CommRing R
M N : Matrix m m R
b : m → α
inst✝¹ : Preorder α
inst✝ : DecidableEq α
d : (i : α) → Matrix (m' i) (m' i) R
⊢ BlockTriangular (blockDiagonal' d) Sigma.fst

tactic: apply blockDiagonal'_apply_ne d i' j' fun h' => ne_of_lt h h'.symm
state_before: case mk.mk
α : Type u_1
β : Type ?u.31715
m : Type ?u.31718
n : Type ?u.31721
o : Type ?u.31724
m' : α → Type u_2
n' : α → Type ?u.31734
R : Type v
inst✝² : CommRing R
M N : Matrix m m R
b : m → α
inst✝¹ : Preorder α
inst✝ : DecidableEq α
d : (i : α) → Matrix (m' i) (m' i) R
i : α
i' : m' i
j : α
j' : m' j
h : { fst := j, snd := j' }.fst < { fst := i, snd := i' }.fst
⊢ blockDiagonal' d { fst := i, snd := i' } { fst := j, snd := j' } = 0
Theorem: Nat.factorization_ord_compl
File: Mathlib/Data/Nat/Factorization/Basic.lean

tactic: rcases eq_or_ne n 0 with (rfl | hn)
state_before: n p : ℕ
⊢ factorization (n / p ^ ↑(factorization n) p) = Finsupp.erase p (factorization n)

tactic: by_cases pp : p.Prime
state_before: case inr
n p : ℕ
hn : n ≠ 0
⊢ factorization (n / p ^ ↑(factorization n) p) = Finsupp.erase p (factorization n)

tactic: ext q
state_before: case pos
n p : ℕ
hn : n ≠ 0
pp : Prime p
⊢ factorization (n / p ^ ↑(factorization n) p) = Finsupp.erase p (factorization n)

tactic: rcases eq_or_ne q p with (rfl | hqp)
state_before: case pos.h
n p : ℕ
hn : n ≠ 0
pp : Prime p
q : ℕ
⊢ ↑(factorization (n / p ^ ↑(factorization n) p)) q = ↑(Finsupp.erase p (factorization n)) q

tactic: simp
state_before: case inl
p : ℕ
⊢ factorization (0 / p ^ ↑(factorization 0) p) = Finsupp.erase p (factorization 0)

tactic: rw [Finsupp.erase_of_not_mem_support]
state_before: n p : ℕ
hn : n ≠ 0
pp : ¬Prime p
⊢ factorization (n / p ^ ↑(factorization n) p) = Finsupp.erase p (factorization n)

tactic: simp [pp]
state_before: n p : ℕ
hn : n ≠ 0
pp : ¬Prime p
⊢ factorization (n / p ^ ↑(factorization n) p) = factorization n

tactic: simp [mt prime_of_mem_factors pp]
state_before: n p : ℕ
hn : n ≠ 0
pp : ¬Prime p
⊢ ¬p ∈ (factorization n).support

tactic: simp only [Finsupp.erase_same, factorization_eq_zero_iff, not_dvd_ord_compl pp hn]
state_before: case pos.h.inl
n : ℕ
hn : n ≠ 0
q : ℕ
pp : Prime q
⊢ ↑(factorization (n / q ^ ↑(factorization n) q)) q = ↑(Finsupp.erase q (factorization n)) q

tactic: simp
state_before: case pos.h.inl
n : ℕ
hn : n ≠ 0
q : ℕ
pp : Prime q
⊢ ¬Prime q ∨ True ∨ n / q ^ ↑(factorization n) q = 0

tactic: rw [Finsupp.erase_ne hqp, factorization_div (ord_proj_dvd n p)]
state_before: case pos.h.inr
n p : ℕ
hn : n ≠ 0
pp : Prime p
q : ℕ
hqp : q ≠ p
⊢ ↑(factorization (n / p ^ ↑(factorization n) p)) q = ↑(Finsupp.erase p (factorization n)) q

tactic: simp [pp.factorization, hqp.symm]
state_before: case pos.h.inr
n p : ℕ
hn : n ≠ 0
pp : Prime p
q : ℕ
hqp : q ≠ p
⊢ ↑(factorization n - factorization (p ^ ↑(factorization n) p)) q = ↑(factorization n) q
Theorem: two_nsmul_lie_lmul_lmul_add_eq_lie_lmul_lmul_add
File: Mathlib/Algebra/Jordan/Basic.lean

tactic: suffices 2 • ⁅L a, L (a * b)⁆ + 2 • ⁅L b, L (b * a)⁆ + ⁅L b, L (a * a)⁆ + ⁅L a, L (b * b)⁆ = 0 by
  rwa [← sub_eq_zero, ← sub_sub, sub_eq_add_neg, sub_eq_add_neg, lie_skew, lie_skew, nsmul_add]
state_before: A : Type u_1
inst✝¹ : NonUnitalNonAssocRing A
inst✝ : IsCommJordan A
a b : A
⊢ 2 • (⁅↑L a, ↑L (a * b)⁆ + ⁅↑L b, ↑L (b * a)⁆) = ⁅↑L (a * a), ↑L b⁆ + ⁅↑L (b * b), ↑L a⁆

tactic: convert (commute_lmul_lmul_sq (a + b)).lie_eq using 1
state_before: A : Type u_1
inst✝¹ : NonUnitalNonAssocRing A
inst✝ : IsCommJordan A
a b : A
⊢ 2 • ⁅↑L a, ↑L (a * b)⁆ + 2 • ⁅↑L b, ↑L (b * a)⁆ + ⁅↑L b, ↑L (a * a)⁆ + ⁅↑L a, ↑L (b * b)⁆ = 0

tactic: simp only [add_mul, mul_add, map_add, lie_add, add_lie, IsCommJordan.mul_comm b a,
  (commute_lmul_lmul_sq a).lie_eq, (commute_lmul_lmul_sq b).lie_eq, zero_add, add_zero, two_smul]
state_before: case h.e'_2
A : Type u_1
inst✝¹ : NonUnitalNonAssocRing A
inst✝ : IsCommJordan A
a b : A
⊢ 2 • ⁅↑L a, ↑L (a * b)⁆ + 2 • ⁅↑L b, ↑L (b * a)⁆ + ⁅↑L b, ↑L (a * a)⁆ + ⁅↑L a, ↑L (b * b)⁆ =
    ⁅↑L (a + b), ↑L ((a + b) * (a + b))⁆

tactic: abel
state_before: case h.e'_2
A : Type u_1
inst✝¹ : NonUnitalNonAssocRing A
inst✝ : IsCommJordan A
a b : A
⊢ ⁅↑L a, ↑L (a * b)⁆ + ⁅↑L a, ↑L (a * b)⁆ + (⁅↑L b, ↑L (a * b)⁆ + ⁅↑L b, ↑L (a * b)⁆) + ⁅↑L b, ↑L (a * a)⁆ +
      ⁅↑L a, ↑L (b * b)⁆ =
    ⁅↑L b, ↑L (a * a)⁆ + (⁅↑L a, ↑L (a * b)⁆ + ⁅↑L b, ↑L (a * b)⁆) +
      (⁅↑L a, ↑L (a * b)⁆ + ⁅↑L b, ↑L (a * b)⁆ + ⁅↑L a, ↑L (b * b)⁆)

tactic: rwa [← sub_eq_zero, ← sub_sub, sub_eq_add_neg, sub_eq_add_neg, lie_skew, lie_skew, nsmul_add]
state_before: A : Type u_1
inst✝¹ : NonUnitalNonAssocRing A
inst✝ : IsCommJordan A
a b : A
this : 2 • ⁅↑L a, ↑L (a * b)⁆ + 2 • ⁅↑L b, ↑L (b * a)⁆ + ⁅↑L b, ↑L (a * a)⁆ + ⁅↑L a, ↑L (b * b)⁆ = 0
⊢ 2 • (⁅↑L a, ↑L (a * b)⁆ + ⁅↑L b, ↑L (b * a)⁆) = ⁅↑L (a * a), ↑L b⁆ + ⁅↑L (b * b), ↑L a⁆
Theorem: MeasurableSet.const_smul_of_ne_zero
File: Mathlib/MeasureTheory/Group/Pointwise.lean

tactic: rw [← preimage_smul_inv₀ ha]
state_before: G₀ : Type u_1
α : Type u_2
inst✝⁴ : GroupWithZero G₀
inst✝³ : MulAction G₀ α
inst✝² : MeasurableSpace G₀
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSMul G₀ α
s : Set α
hs : MeasurableSet s
a : G₀
ha : a ≠ 0
⊢ MeasurableSet (a • s)

tactic: exact measurable_const_smul _ hs
state_before: G₀ : Type u_1
α : Type u_2
inst✝⁴ : GroupWithZero G₀
inst✝³ : MulAction G₀ α
inst✝² : MeasurableSpace G₀
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSMul G₀ α
s : Set α
hs : MeasurableSet s
a : G₀
ha : a ≠ 0
⊢ MeasurableSet ((fun x => a⁻¹ • x) ⁻¹' s)
Theorem: IsChain.directed
File: Mathlib/Order/Chain.lean

tactic: simp only [hab, exists_prop, and_self_iff, Subtype.exists]
state_before: α : Type u_2
β : Type u_1
r : α → α → Prop
c✝ c₁ c₂ c₃ s t : Set α
a✝ b✝ x y : α
inst✝ : IsRefl α r
f : β → α
c : Set β
h : IsChain (f ⁻¹'o r) c
x✝¹ x✝ : { a // a ∈ c }
a : β
ha : a ∈ c
b : β
hb : b ∈ c
hab : a = b
⊢ ∃ z,
    r ((fun x => f ↑x) { val := a, property := ha }) ((fun x => f ↑x) z) ∧
      r ((fun x => f ↑x) { val := b, property := hb }) ((fun x => f ↑x) z)

tactic: exact ⟨b, hb, refl _⟩
state_before: α : Type u_2
β : Type u_1
r : α → α → Prop
c✝ c₁ c₂ c₃ s t : Set α
a✝ b✝ x y : α
inst✝ : IsRefl α r
f : β → α
c : Set β
h : IsChain (f ⁻¹'o r) c
x✝¹ x✝ : { a // a ∈ c }
a : β
ha : a ∈ c
b : β
hb : b ∈ c
hab : a = b
⊢ ∃ a, a ∈ c ∧ r (f b) (f a)
Theorem: HasFTaylorSeriesUpToOn.continuousOn
File: Mathlib/Analysis/Calculus/ContDiffDef.lean

tactic: have := (h.cont 0 bot_le).congr fun x hx => (h.zero_eq' hx).symm
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
h : HasFTaylorSeriesUpToOn n f p s
⊢ ContinuousOn f s

tactic: rwa [← (continuousMultilinearCurryFin0 𝕜 E F).symm.comp_continuousOn_iff]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
h : HasFTaylorSeriesUpToOn n f p s
this : ContinuousOn (fun x => ↑(LinearIsometryEquiv.symm (continuousMultilinearCurryFin0 𝕜 E F)) (f x)) s
⊢ ContinuousOn f s
Theorem: Rat.not_countably_generated_nhds_infty_opc
File: Mathlib/Topology/Instances/RatLemmas.lean

tactic: intro
state_before: p q : ℚ
s t : Set ℚ
⊢ ¬IsCountablyGenerated (𝓝 ∞)

tactic: have : IsCountablyGenerated (comap (OnePoint.some : ℚ → ℚ∞) (𝓝 ∞)) := by infer_instance
state_before: p q : ℚ
s t : Set ℚ
a✝ : IsCountablyGenerated (𝓝 ∞)
⊢ False

tactic: rw [OnePoint.comap_coe_nhds_infty, coclosedCompact_eq_cocompact] at this
state_before: p q : ℚ
s t : Set ℚ
a✝ : IsCountablyGenerated (𝓝 ∞)
this : IsCountablyGenerated (comap OnePoint.some (𝓝 ∞))
⊢ False

tactic: exact not_countably_generated_cocompact this
state_before: p q : ℚ
s t : Set ℚ
a✝ : IsCountablyGenerated (𝓝 ∞)
this : IsCountablyGenerated (cocompact ℚ)
⊢ False

tactic: infer_instance
state_before: p q : ℚ
s t : Set ℚ
a✝ : IsCountablyGenerated (𝓝 ∞)
⊢ IsCountablyGenerated (comap OnePoint.some (𝓝 ∞))