tasksource/leandojo huggingface dataset:
Theorem: Pmf.toMeasure_apply_singleton
File: Mathlib/Probability/ProbabilityMassFunction/Basic.lean

tactic: simp [toMeasure_apply_eq_toOuterMeasure_apply _ _ h, toOuterMeasure_apply_singleton]
state_before: α : Type u_1
β : Type ?u.83685
γ : Type ?u.83688
inst✝ : MeasurableSpace α
p : Pmf α
s t : Set α
a : α
h : MeasurableSet {a}
⊢ ↑↑(toMeasure p) {a} = ↑p a
Theorem: LowerSet.compl_iInf₂
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp_rw [LowerSet.compl_iInf]
state_before: α : Type u_1
β : Type ?u.91020
γ : Type ?u.91023
ι : Sort u_2
κ : ι → Sort u_3
inst✝ : LE α
s t : LowerSet α
a : α
f : (i : ι) → κ i → LowerSet α
⊢ compl (⨅ (i : ι) (j : κ i), f i j) = ⨅ (i : ι) (j : κ i), compl (f i j)
Theorem: Finset.image₂_subset_iff_right
File: Mathlib/Data/Finset/NAry.lean

tactic: simp_rw [image₂_subset_iff, image_subset_iff, @forall₂_swap α]
state_before: α : Type u_2
α' : Type ?u.20278
β : Type u_3
β' : Type ?u.20284
γ : Type u_1
γ' : Type ?u.20290
δ : Type ?u.20293
δ' : Type ?u.20296
ε : Type ?u.20299
ε' : Type ?u.20302
ζ : Type ?u.20305
ζ' : Type ?u.20308
ν : Type ?u.20311
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
⊢ image₂ f s t ⊆ u ↔ ∀ (b : β), b ∈ t → image (fun a => f a b) s ⊆ u
Theorem: SimpleGraph.Walk.IsTrail.of_append_right
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: rw [isTrail_def, edges_append, List.nodup_append] at h
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w : V
p : Walk G u v
q : Walk G v w
h : IsTrail (append p q)
⊢ IsTrail q

tactic: exact ⟨h.2.1⟩
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w : V
p : Walk G u v
q : Walk G v w
h : List.Nodup (edges p) ∧ List.Nodup (edges q) ∧ List.Disjoint (edges p) (edges q)
⊢ IsTrail q
Theorem: uniformly_extend_spec
File: Mathlib/Topology/UniformSpace/UniformEmbedding.lean

tactic: simpa only [DenseInducing.extend] using
  tendsto_nhds_limUnder (uniformly_extend_exists h_e ‹_› h_f _)
state_before: α : Type u_3
β : Type u_2
γ : Type u_1
inst✝³ : UniformSpace α
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
e : β → α
h_e : UniformInducing e
h_dense : DenseRange e
f : β → γ
h_f : UniformContinuous f
inst✝ : CompleteSpace γ
a : α
⊢ Tendsto f (comap e (𝓝 a)) (𝓝 (DenseInducing.extend (_ : DenseInducing e) f a))
Theorem: MeasureTheory.snormEssSup_mono_measure
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: simp_rw [snormEssSup]
state_before: α : Type u_1
E : Type ?u.1987410
F : Type u_2
G : Type ?u.1987416
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≪ μ
⊢ snormEssSup f ν ≤ snormEssSup f μ

tactic: exact essSup_mono_measure hμν
state_before: α : Type u_1
E : Type ?u.1987410
F : Type u_2
G : Type ?u.1987416
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≪ μ
⊢ essSup (fun x => ↑‖f x‖₊) ν ≤ essSup (fun x => ↑‖f x‖₊) μ
Theorem: Finset.union_right_comm
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [mem_union, or_assoc, @or_comm (x ∈ t)]
state_before: α : Type u_1
β : Type ?u.147908
γ : Type ?u.147911
inst✝ : DecidableEq α
s✝ s₁ s₂ t✝ t₁ t₂ u✝ v : Finset α
a b : α
s t u : Finset α
x : α
⊢ x ∈ s ∪ t ∪ u ↔ x ∈ s ∪ u ∪ t
Theorem: MulChar.IsQuadratic.pow_odd
File: Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean

tactic: obtain ⟨n, rfl⟩ := hn
state_before: R : Type u
inst✝² : CommRing R
R' : Type v
inst✝¹ : CommRing R'
R'' : Type w
inst✝ : CommRing R''
χ : MulChar R R'
hχ : IsQuadratic χ
n : ℕ
hn : Odd n
⊢ χ ^ n = χ

tactic: rw [pow_add, pow_one, hχ.pow_even (even_two_mul _), one_mul]
state_before: case intro
R : Type u
inst✝² : CommRing R
R' : Type v
inst✝¹ : CommRing R'
R'' : Type w
inst✝ : CommRing R''
χ : MulChar R R'
hχ : IsQuadratic χ
n : ℕ
⊢ χ ^ (2 * n + 1) = χ
Theorem: MeasureTheory.Integrable.trim
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: refine' ⟨hf.aestronglyMeasurable, _⟩
state_before: α : Type u_1
β : Type ?u.1258403
γ : Type ?u.1258406
δ : Type ?u.1258409
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
H : Type u_2
inst✝ : NormedAddCommGroup H
m0 : MeasurableSpace α
μ' : Measure α
f : α → H
hm : m ≤ m0
hf_int : Integrable f
hf : StronglyMeasurable f
⊢ Integrable f

tactic: rw [HasFiniteIntegral, lintegral_trim hm _]
state_before: α : Type u_1
β : Type ?u.1258403
γ : Type ?u.1258406
δ : Type ?u.1258409
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
H : Type u_2
inst✝ : NormedAddCommGroup H
m0 : MeasurableSpace α
μ' : Measure α
f : α → H
hm : m ≤ m0
hf_int : Integrable f
hf : StronglyMeasurable f
⊢ HasFiniteIntegral f

tactic: exact hf_int.2
state_before: α : Type u_1
β : Type ?u.1258403
γ : Type ?u.1258406
δ : Type ?u.1258409
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
H : Type u_2
inst✝ : NormedAddCommGroup H
m0 : MeasurableSpace α
μ' : Measure α
f : α → H
hm : m ≤ m0
hf_int : Integrable f
hf : StronglyMeasurable f
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ∂μ') < ⊤

tactic: exact @StronglyMeasurable.ennnorm _ m _ _ f hf
state_before: α : Type u_1
β : Type ?u.1258403
γ : Type ?u.1258406
δ : Type ?u.1258409
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
H : Type u_2
inst✝ : NormedAddCommGroup H
m0 : MeasurableSpace α
μ' : Measure α
f : α → H
hm : m ≤ m0
hf_int : Integrable f
hf : StronglyMeasurable f
⊢ Measurable fun a => ↑‖f a‖₊
Theorem: OrthonormalBasis.orthonormal
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: classical
  rw [orthonormal_iff_ite]
  intro i j
  rw [← b.repr.inner_map_map (b i) (b j), b.repr_self i, b.repr_self j,
    EuclideanSpace.inner_single_left, EuclideanSpace.single_apply, map_one, one_mul]
state_before: ι : Type u_1
ι' : Type ?u.781880
𝕜 : Type u_2
inst✝⁹ : IsROrC 𝕜
E : Type u_3
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type ?u.781909
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type ?u.781927
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type ?u.781947
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
⊢ Orthonormal 𝕜 ↑b

tactic: rw [orthonormal_iff_ite]
state_before: ι : Type u_1
ι' : Type ?u.781880
𝕜 : Type u_2
inst✝⁹ : IsROrC 𝕜
E : Type u_3
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type ?u.781909
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type ?u.781927
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type ?u.781947
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
⊢ Orthonormal 𝕜 ↑b

tactic: intro i j
state_before: ι : Type u_1
ι' : Type ?u.781880
𝕜 : Type u_2
inst✝⁹ : IsROrC 𝕜
E : Type u_3
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type ?u.781909
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type ?u.781927
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type ?u.781947
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
⊢ ∀ (i j : ι), inner (↑b i) (↑b j) = if i = j then 1 else 0

tactic: rw [← b.repr.inner_map_map (b i) (b j), b.repr_self i, b.repr_self j,
  EuclideanSpace.inner_single_left, EuclideanSpace.single_apply, map_one, one_mul]
state_before: ι : Type u_1
ι' : Type ?u.781880
𝕜 : Type u_2
inst✝⁹ : IsROrC 𝕜
E : Type u_3
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type ?u.781909
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type ?u.781927
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type ?u.781947
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
i j : ι
⊢ inner (↑b i) (↑b j) = if i = j then 1 else 0
Theorem: Nat.succ_descFactorial_succ
File: Mathlib/Data/Nat/Factorial/Basic.lean

tactic: rw [descFactorial_zero, descFactorial_one, mul_one]
state_before: n : ℕ
⊢ descFactorial (n + 1) (0 + 1) = (n + 1) * descFactorial n 0

tactic: rw [descFactorial_succ, succ_descFactorial_succ _ k, descFactorial_succ, succ_sub_succ,
  mul_left_comm]
state_before: n k : ℕ
⊢ descFactorial (n + 1) (succ k + 1) = (n + 1) * descFactorial n (succ k)
Theorem: Scott.isOpen_sUnion
File: Mathlib/Topology/OmegaCompletePartialOrder.lean

tactic: simp only [IsOpen] at hs⊢
state_before: α : Type u
inst✝ : OmegaCompletePartialOrder α
s : Set (Set α)
hs : ∀ (t : Set α), t ∈ s → IsOpen α t
⊢ IsOpen α (⋃₀ s)

tactic: convert CompleteLattice.sSup_continuous' (setOf ⁻¹' s) hs
state_before: α : Type u
inst✝ : OmegaCompletePartialOrder α
s : Set (Set α)
hs : ∀ (t : Set α), t ∈ s → Continuous' fun x => x ∈ t
⊢ Continuous' fun x => x ∈ ⋃₀ s

tactic: simp only [sSup_apply, setOf_bijective.surjective.exists, exists_prop, mem_preimage,
  SetCoe.exists, iSup_Prop_eq, mem_setOf_eq, mem_sUnion]
state_before: case h.e'_5.h.a
α : Type u
inst✝ : OmegaCompletePartialOrder α
s : Set (Set α)
hs : ∀ (t : Set α), t ∈ s → Continuous' fun x => x ∈ t
x✝ : α
⊢ x✝ ∈ ⋃₀ s ↔ sSup (setOf ⁻¹' s) x✝
Theorem: CategoryTheory.Limits.PullbackCone.unop_inr
File: Mathlib/CategoryTheory/Limits/Opposites.lean

tactic: aesop_cat
state_before: C : Type u₁
inst✝¹ : Category C
J : Type u₂
inst✝ : Category J
X✝ : Type v₂
X Y Z : Cᵒᵖ
f : X ⟶ Z
g : Y ⟶ Z
c : PullbackCone f g
⊢ PushoutCocone.inr (unop c) = (snd c).unop
Theorem: MeasureTheory.locallyIntegrableOn_of_locallyIntegrable_restrict
File: Mathlib/MeasureTheory/Function/LocallyIntegrable.lean

tactic: intro x _
state_before: X : Type u_1
Y : Type ?u.122795
E : Type u_2
R : Type ?u.122801
inst✝⁵ : MeasurableSpace X
inst✝⁴ : TopologicalSpace X
inst✝³ : MeasurableSpace Y
inst✝² : TopologicalSpace Y
inst✝¹ : NormedAddCommGroup E
f : X → E
μ : Measure X
s : Set X
inst✝ : OpensMeasurableSpace X
hf : LocallyIntegrable f
⊢ LocallyIntegrableOn f s

tactic: obtain ⟨t, ht_mem, ht_int⟩ := hf x
state_before: X : Type u_1
Y : Type ?u.122795
E : Type u_2
R : Type ?u.122801
inst✝⁵ : MeasurableSpace X
inst✝⁴ : TopologicalSpace X
inst✝³ : MeasurableSpace Y
inst✝² : TopologicalSpace Y
inst✝¹ : NormedAddCommGroup E
f : X → E
μ : Measure X
s : Set X
inst✝ : OpensMeasurableSpace X
hf : LocallyIntegrable f
x : X
a✝ : x ∈ s
⊢ IntegrableAtFilter f (𝓝[s] x)

tactic: obtain ⟨u, hu_sub, hu_o, hu_mem⟩ := mem_nhds_iff.mp ht_mem
state_before: case intro.intro
X : Type u_1
Y : Type ?u.122795
E : Type u_2
R : Type ?u.122801
inst✝⁵ : MeasurableSpace X
inst✝⁴ : TopologicalSpace X
inst✝³ : MeasurableSpace Y
inst✝² : TopologicalSpace Y
inst✝¹ : NormedAddCommGroup E
f : X → E
μ : Measure X
s : Set X
inst✝ : OpensMeasurableSpace X
hf : LocallyIntegrable f
x : X
a✝ : x ∈ s
t : Set X
ht_mem : t ∈ 𝓝 x
ht_int : IntegrableOn f t
⊢ IntegrableAtFilter f (𝓝[s] x)

tactic: refine' ⟨_, inter_mem_nhdsWithin s (hu_o.mem_nhds hu_mem), _⟩
state_before: case intro.intro.intro.intro.intro
X : Type u_1
Y : Type ?u.122795
E : Type u_2
R : Type ?u.122801
inst✝⁵ : MeasurableSpace X
inst✝⁴ : TopologicalSpace X
inst✝³ : MeasurableSpace Y
inst✝² : TopologicalSpace Y
inst✝¹ : NormedAddCommGroup E
f : X → E
μ : Measure X
s : Set X
inst✝ : OpensMeasurableSpace X
hf : LocallyIntegrable f
x : X
a✝ : x ∈ s
t : Set X
ht_mem : t ∈ 𝓝 x
ht_int : IntegrableOn f t
u : Set X
hu_sub : u ⊆ t
hu_o : IsOpen u
hu_mem : x ∈ u
⊢ IntegrableAtFilter f (𝓝[s] x)

tactic: simpa only [IntegrableOn, Measure.restrict_restrict hu_o.measurableSet, inter_comm] using
  ht_int.mono_set hu_sub
state_before: case intro.intro.intro.intro.intro
X : Type u_1
Y : Type ?u.122795
E : Type u_2
R : Type ?u.122801
inst✝⁵ : MeasurableSpace X
inst✝⁴ : TopologicalSpace X
inst✝³ : MeasurableSpace Y
inst✝² : TopologicalSpace Y
inst✝¹ : NormedAddCommGroup E
f : X → E
μ : Measure X
s : Set X
inst✝ : OpensMeasurableSpace X
hf : LocallyIntegrable f
x : X
a✝ : x ∈ s
t : Set X
ht_mem : t ∈ 𝓝 x
ht_int : IntegrableOn f t
u : Set X
hu_sub : u ⊆ t
hu_o : IsOpen u
hu_mem : x ∈ u
⊢ IntegrableOn f (s ∩ u)
Theorem: ZMod.coe_add_eq_ite
File: Mathlib/Data/ZMod/Basic.lean

tactic: cases n
state_before: n✝ : ℕ
R : Type ?u.34539
inst✝ : Ring R
n : ℕ
a b : ZMod n
⊢ ↑(a + b) = ↑(if ↑n ≤ ↑a + ↑b then a + b - ↑n else a + b)

tactic: simp only [Fin.val_add_eq_ite, ← Int.ofNat_add, ← Int.ofNat_succ, Int.ofNat_le]
state_before: case succ
n : ℕ
R : Type ?u.34539
inst✝ : Ring R
n✝ : ℕ
a b : ZMod (Nat.succ n✝)
⊢ ↑(a + b) = ↑(if ↑(Nat.succ n✝) ≤ ↑a + ↑b then a + b - ↑(Nat.succ n✝) else a + b)

tactic: split_ifs with h
state_before: case succ
n : ℕ
R : Type ?u.34539
inst✝ : Ring R
n✝ : ℕ
a b : ZMod (Nat.succ n✝)
⊢ ↑(a + b) = ↑(if ↑(Nat.succ n✝) ≤ ↑a + ↑b then a + b - ↑(Nat.succ n✝) else a + b)

tactic: simp
state_before: case zero
n : ℕ
R : Type ?u.34539
inst✝ : Ring R
a b : ZMod Nat.zero
⊢ ↑(a + b) = ↑(if ↑Nat.zero ≤ ↑a + ↑b then a + b - ↑Nat.zero else a + b)

tactic: norm_cast
state_before: case succ.inl
n : ℕ
R : Type ?u.34539
inst✝ : Ring R
n✝ : ℕ
a b : ZMod (Nat.succ n✝)
h : ↑(Nat.succ n✝) ≤ ↑a + ↑b
⊢ ↑(a + b) = ↑(a + b - ↑(Nat.succ n✝))

tactic: congr
state_before: case succ.inl
n : ℕ
R : Type ?u.34539
inst✝ : Ring R
n✝ : ℕ
a b : ZMod (Nat.succ n✝)
h : ↑(Nat.succ n✝) ≤ ↑a + ↑b
⊢ ↑(a + b) = ↑(a + b - ↑(Nat.succ n✝))

tactic: simp
state_before: case succ.inl.e_a
n : ℕ
R : Type ?u.34539
inst✝ : Ring R
n✝ : ℕ
a b : ZMod (Nat.succ n✝)
h : ↑(Nat.succ n✝) ≤ ↑a + ↑b
⊢ a + b = a + b - ↑(Nat.succ n✝)

tactic: rfl
state_before: case succ.inr
n : ℕ
R : Type ?u.34539
inst✝ : Ring R
n✝ : ℕ
a b : ZMod (Nat.succ n✝)
h : ¬↑(Nat.succ n✝) ≤ ↑a + ↑b
⊢ ↑(a + b) = ↑(a + b)
Theorem: CategoryTheory.Idempotents.Karoubi.id_eq
File: Mathlib/CategoryTheory/Idempotents/Karoubi.lean

tactic: repeat' rw [P.idem]
state_before: C : Type ?u.15232
inst✝ : Category C
P : Karoubi C
⊢ P.p = P.p ≫ P.p ≫ P.p

tactic: rw [P.idem]
state_before: C : Type ?u.15232
inst✝ : Category C
P : Karoubi C
⊢ P.p = P.p ≫ P.p

tactic: rfl
state_before: C : Type u_1
inst✝ : Category C
P : Karoubi C
⊢ 𝟙 P = Hom.mk P.p
Theorem: Nat.card_Iic
File: Mathlib/Data/Nat/Interval.lean

tactic: rw [Iic_eq_Icc, card_Icc, bot_eq_zero, tsub_zero]
state_before: a b c : ℕ
⊢ card (Iic b) = b + 1
Theorem: isNilpotent_of_product_of_sylow_group
File: Mathlib/GroupTheory/Nilpotent.lean

tactic: classical
  let ps := (Fintype.card G).factorization.support
  have : ∀ (p : ps) (P : Sylow p G), IsNilpotent (↑P : Subgroup G) := by
    intro p P
    haveI : Fact (Nat.Prime ↑p) := Fact.mk (Nat.prime_of_mem_factorization (Finset.coe_mem p))
    exact P.isPGroup'.isNilpotent
  exact nilpotent_of_mulEquiv e
state_before: G : Type u_1
hG : Group G
inst✝ : Fintype G
e : ((p : { x // x ∈ (Nat.factorization (card G)).support }) → (P : Sylow (↑p) G) → { x // x ∈ ↑P }) ≃* G
⊢ Group.IsNilpotent G

tactic: let ps := (Fintype.card G).factorization.support
state_before: G : Type u_1
hG : Group G
inst✝ : Fintype G
e : ((p : { x // x ∈ (Nat.factorization (card G)).support }) → (P : Sylow (↑p) G) → { x // x ∈ ↑P }) ≃* G
⊢ Group.IsNilpotent G

tactic: have : ∀ (p : ps) (P : Sylow p G), IsNilpotent (↑P : Subgroup G) := by
  intro p P
  haveI : Fact (Nat.Prime ↑p) := Fact.mk (Nat.prime_of_mem_factorization (Finset.coe_mem p))
  exact P.isPGroup'.isNilpotent
state_before: G : Type u_1
hG : Group G
inst✝ : Fintype G
e : ((p : { x // x ∈ (Nat.factorization (card G)).support }) → (P : Sylow (↑p) G) → { x // x ∈ ↑P }) ≃* G
ps : Finset ℕ := (Nat.factorization (card G)).support
⊢ Group.IsNilpotent G

tactic: exact nilpotent_of_mulEquiv e
state_before: G : Type u_1
hG : Group G
inst✝ : Fintype G
e : ((p : { x // x ∈ (Nat.factorization (card G)).support }) → (P : Sylow (↑p) G) → { x // x ∈ ↑P }) ≃* G
ps : Finset ℕ := (Nat.factorization (card G)).support
this : ∀ (p : { x // x ∈ ps }) (P : Sylow (↑p) G), Group.IsNilpotent { x // x ∈ ↑P }
⊢ Group.IsNilpotent G

tactic: intro p P
state_before: G : Type u_1
hG : Group G
inst✝ : Fintype G
e : ((p : { x // x ∈ (Nat.factorization (card G)).support }) → (P : Sylow (↑p) G) → { x // x ∈ ↑P }) ≃* G
ps : Finset ℕ := (Nat.factorization (card G)).support
⊢ ∀ (p : { x // x ∈ ps }) (P : Sylow (↑p) G), Group.IsNilpotent { x // x ∈ ↑P }

tactic: haveI : Fact (Nat.Prime ↑p) := Fact.mk (Nat.prime_of_mem_factorization (Finset.coe_mem p))
state_before: G : Type u_1
hG : Group G
inst✝ : Fintype G
e : ((p : { x // x ∈ (Nat.factorization (card G)).support }) → (P : Sylow (↑p) G) → { x // x ∈ ↑P }) ≃* G
ps : Finset ℕ := (Nat.factorization (card G)).support
p : { x // x ∈ ps }
P : Sylow (↑p) G
⊢ Group.IsNilpotent { x // x ∈ ↑P }

tactic: exact P.isPGroup'.isNilpotent
state_before: G : Type u_1
hG : Group G
inst✝ : Fintype G
e : ((p : { x // x ∈ (Nat.factorization (card G)).support }) → (P : Sylow (↑p) G) → { x // x ∈ ↑P }) ≃* G
ps : Finset ℕ := (Nat.factorization (card G)).support
p : { x // x ∈ ps }
P : Sylow (↑p) G
this : Fact (Nat.Prime ↑p)
⊢ Group.IsNilpotent { x // x ∈ ↑P }
Theorem: inv_smul_lt_iff_of_neg
File: Mathlib/Algebra/Order/Module.lean

tactic: rw [← smul_lt_smul_iff_of_neg h, smul_inv_smul₀ h.ne]
state_before: k : Type u_1
M : Type u_2
N : Type ?u.96377
inst✝³ : LinearOrderedField k
inst✝² : OrderedAddCommGroup M
inst✝¹ : Module k M
inst✝ : OrderedSMul k M
a b : M
c : k
h : c < 0
⊢ c⁻¹ • a < b ↔ c • b < a
Theorem: IsLocalization.map_eq_zero_iff
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: constructor
state_before: R : Type u_2
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_1
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type ?u.395998
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
r : R
⊢ ↑(algebraMap R S) r = 0 ↔ ∃ m, ↑m * r = 0

tactic: intro h
state_before: case mp
R : Type u_2
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_1
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type ?u.395998
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
r : R
⊢ ↑(algebraMap R S) r = 0 → ∃ m, ↑m * r = 0

case mpr
R : Type u_2
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_1
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type ?u.395998
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
r : R
⊢ (∃ m, ↑m * r = 0) → ↑(algebraMap R S) r = 0

tactic: obtain ⟨m, hm⟩ := (IsLocalization.eq_iff_exists M S).mp ((algebraMap R S).map_zero.trans h.symm)
state_before: case mp
R : Type u_2
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_1
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type ?u.395998
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
r : R
h : ↑(algebraMap R S) r = 0
⊢ ∃ m, ↑m * r = 0

tactic: exact ⟨m, by simpa using hm.symm⟩
state_before: case mp.intro
R : Type u_2
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_1
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type ?u.395998
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
r : R
h : ↑(algebraMap R S) r = 0
m : { x // x ∈ M }
hm : ↑m * 0 = ↑m * r
⊢ ∃ m, ↑m * r = 0

tactic: simpa using hm.symm
state_before: R : Type u_2
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_1
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type ?u.395998
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
r : R
h : ↑(algebraMap R S) r = 0
m : { x // x ∈ M }
hm : ↑m * 0 = ↑m * r
⊢ ↑m * r = 0

tactic: rintro ⟨m, hm⟩
state_before: case mpr
R : Type u_2
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_1
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type ?u.395998
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
r : R
⊢ (∃ m, ↑m * r = 0) → ↑(algebraMap R S) r = 0

tactic: rw [← (IsLocalization.map_units S m).mul_right_inj, mul_zero, ← RingHom.map_mul, hm,
  RingHom.map_zero]
state_before: case mpr.intro
R : Type u_2
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_1
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type ?u.395998
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
r : R
m : { x // x ∈ M }
hm : ↑m * r = 0
⊢ ↑(algebraMap R S) r = 0
Theorem: Odd.zpow_neg_iff
File: Mathlib/Algebra/Order/Field/Power.lean

tactic: cases' hn with k hk
state_before: α : Type u_1
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
hn : Odd n
⊢ a ^ n < 0 ↔ a < 0

tactic: simpa only [hk, two_mul] using zpow_bit1_neg_iff
state_before: case intro
α : Type u_1
inst✝ : LinearOrderedField α
a b c d : α
n k : ℤ
hk : n = 2 * k + 1
⊢ a ^ n < 0 ↔ a < 0
Theorem: tsub_add_min
File: Mathlib/Algebra/Order/Sub/Canonical.lean

tactic: rw [← tsub_min, @tsub_add_cancel_of_le]
state_before: α : Type u_1
inst✝² : CanonicallyLinearOrderedAddMonoid α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
⊢ a - b + min a b = a

tactic: apply min_le_left
state_before: case h
α : Type u_1
inst✝² : CanonicallyLinearOrderedAddMonoid α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
⊢ min a b ≤ a
Theorem: FirstOrder.Language.Substructure.range_subtype
File: Mathlib/ModelTheory/Substructures.lean

tactic: ext x
state_before: L : Language
M : Type w
N : Type ?u.1144938
P : Type ?u.1144941
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S✝ S : Substructure L M
⊢ Hom.range (Embedding.toHom (subtype S)) = S

tactic: simp only [Hom.mem_range, Embedding.coe_toHom, coeSubtype]
state_before: case h
L : Language
M : Type w
N : Type ?u.1144938
P : Type ?u.1144941
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S✝ S : Substructure L M
x : M
⊢ x ∈ Hom.range (Embedding.toHom (subtype S)) ↔ x ∈ S

tactic: refine' ⟨_, fun h => ⟨⟨x, h⟩, rfl⟩⟩
state_before: case h
L : Language
M : Type w
N : Type ?u.1144938
P : Type ?u.1144941
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S✝ S : Substructure L M
x : M
⊢ (∃ y, ↑y = x) ↔ x ∈ S

tactic: rintro ⟨⟨y, hy⟩, rfl⟩
state_before: case h
L : Language
M : Type w
N : Type ?u.1144938
P : Type ?u.1144941
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S✝ S : Substructure L M
x : M
⊢ (∃ y, ↑y = x) → x ∈ S

tactic: exact hy
state_before: case h.intro.mk
L : Language
M : Type w
N : Type ?u.1144938
P : Type ?u.1144941
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S✝ S : Substructure L M
y : M
hy : y ∈ S
⊢ ↑{ val := y, property := hy } ∈ S
Theorem: compl_eq_comm
File: Mathlib/Order/BooleanAlgebra.lean

tactic: rw [eq_comm, compl_eq_iff_isCompl, eq_compl_iff_isCompl]
state_before: α : Type u
β : Type ?u.54315
w x y z : α
inst✝ : BooleanAlgebra α
⊢ xᶜ = y ↔ yᶜ = x
Theorem: Ordinal.IsNormal.cof_le
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rcases zero_or_succ_or_limit a with (rfl | ⟨b, rfl⟩ | ha)
state_before: α : Type ?u.99458
r : α → α → Prop
f : Ordinal → Ordinal
hf : IsNormal f
a : Ordinal
⊢ cof a ≤ cof (f a)

tactic: rw [cof_zero]
state_before: case inl
α : Type ?u.99458
r : α → α → Prop
f : Ordinal → Ordinal
hf : IsNormal f
⊢ cof 0 ≤ cof (f 0)

tactic: exact zero_le _
state_before: case inl
α : Type ?u.99458
r : α → α → Prop
f : Ordinal → Ordinal
hf : IsNormal f
⊢ 0 ≤ cof (f 0)

tactic: rw [cof_succ, Cardinal.one_le_iff_ne_zero, cof_ne_zero, ← Ordinal.pos_iff_ne_zero]
state_before: case inr.inl.intro
α : Type ?u.99458
r : α → α → Prop
f : Ordinal → Ordinal
hf : IsNormal f
b : Ordinal
⊢ cof (succ b) ≤ cof (f (succ b))

tactic: exact (Ordinal.zero_le (f b)).trans_lt (hf.1 b)
state_before: case inr.inl.intro
α : Type ?u.99458
r : α → α → Prop
f : Ordinal → Ordinal
hf : IsNormal f
b : Ordinal
⊢ 0 < f (succ b)

tactic: rw [hf.cof_eq ha]
state_before: case inr.inr
α : Type ?u.99458
r : α → α → Prop
f : Ordinal → Ordinal
hf : IsNormal f
a : Ordinal
ha : IsLimit a
⊢ cof a ≤ cof (f a)
Theorem: Filter.frequently_const
File: Mathlib/Order/Filter/Basic.lean

tactic: simpa [h]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.163070
ι : Sort x
f : Filter α
inst✝ : NeBot f
p : Prop
h : p
⊢ (∃ᶠ (x : α) in f, p) ↔ p

tactic: simp [h]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.163070
ι : Sort x
f : Filter α
inst✝ : NeBot f
p : Prop
h : ¬p
⊢ (∃ᶠ (x : α) in f, p) ↔ p