tasksource/leandojo huggingface dataset:
Theorem: CategoryTheory.simple_of_cosimple
File: Mathlib/CategoryTheory/Simple.lean

tactic: fconstructor
state_before: C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
f : Y ⟶ X
I : Mono f
⊢ IsIso f ↔ f ≠ 0

tactic: intros
state_before: case mp
C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
f : Y ⟶ X
I : Mono f
⊢ IsIso f → f ≠ 0

tactic: have hx := cokernel.π_of_epi f
state_before: case mp
C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
f : Y ⟶ X
I : Mono f
a✝ : IsIso f
⊢ f ≠ 0

tactic: by_contra h
state_before: case mp
C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
f : Y ⟶ X
I : Mono f
a✝ : IsIso f
hx : cokernel.π f = 0
⊢ f ≠ 0

tactic: subst h
state_before: case mp
C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h✝ : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
f : Y ⟶ X
I : Mono f
a✝ : IsIso f
hx : cokernel.π f = 0
h : f = 0
⊢ False

tactic: exact (h _).mp (cokernel.π_of_zero _ _) hx
state_before: case mp
C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
I : Mono 0
a✝ : IsIso 0
hx : cokernel.π 0 = 0
⊢ False

tactic: intro hf
state_before: case mpr
C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
f : Y ⟶ X
I : Mono f
⊢ f ≠ 0 → IsIso f

tactic: suffices Epi f by exact isIso_of_mono_of_epi _
state_before: case mpr
C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
f : Y ⟶ X
I : Mono f
hf : f ≠ 0
⊢ IsIso f

tactic: apply Preadditive.epi_of_cokernel_zero
state_before: case mpr
C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
f : Y ⟶ X
I : Mono f
hf : f ≠ 0
⊢ Epi f

tactic: by_contra h'
state_before: case mpr.w
C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
f : Y ⟶ X
I : Mono f
hf : f ≠ 0
⊢ cokernel.π f = 0

tactic: exact cokernel_not_iso_of_nonzero hf ((h _).mpr h')
state_before: case mpr.w
C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
f : Y ⟶ X
I : Mono f
hf : f ≠ 0
h' : ¬cokernel.π f = 0
⊢ False

tactic: exact isIso_of_mono_of_epi _
state_before: C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
X : C
h : ∀ {Z : C} (f : X ⟶ Z) [inst : Epi f], IsIso f ↔ f ≠ 0
Y : C
f : Y ⟶ X
I : Mono f
hf : f ≠ 0
this : Epi f
⊢ IsIso f
Theorem: List.sublist_of_subperm_of_sorted
File: Mathlib/Data/List/Sort.lean

tactic: let ⟨_, h, h'⟩ := p
state_before: α : Type uu
r : α → α → Prop
a : α
l : List α
inst✝ : IsAntisymm α r
l₁ l₂ : List α
p : l₁ <+~ l₂
s₁ : Sorted r l₁
s₂ : Sorted r l₂
⊢ l₁ <+ l₂

tactic: rwa [← eq_of_perm_of_sorted h (s₂.sublist h') s₁]
state_before: α : Type uu
r : α → α → Prop
a : α
l : List α
inst✝ : IsAntisymm α r
l₁ l₂ : List α
p : l₁ <+~ l₂
s₁ : Sorted r l₁
s₂ : Sorted r l₂
w✝ : List α
h : w✝ ~ l₁
h' : w✝ <+ l₂
⊢ l₁ <+ l₂
Theorem: NNReal.pow_arith_mean_le_arith_mean_pow
File: Mathlib/Analysis/MeanInequalitiesPow.lean

tactic: exact_mod_cast
  Real.pow_arith_mean_le_arith_mean_pow s _ _ (fun i _ => (w i).coe_nonneg)
    (by exact_mod_cast hw') (fun i _ => (z i).coe_nonneg) n
state_before: ι : Type u
s : Finset ι
w z : ι → ℝ≥0
hw' : ∑ i in s, w i = 1
n : ℕ
⊢ (∑ i in s, w i * z i) ^ n ≤ ∑ i in s, w i * z i ^ n

tactic: exact_mod_cast hw'
state_before: ι : Type u
s : Finset ι
w z : ι → ℝ≥0
hw' : ∑ i in s, w i = 1
n : ℕ
⊢ ∑ i in s, ↑(w i) = 1
Theorem: LieModule.antitone_lowerCentralSeries
File: Mathlib/Algebra/Lie/Nilpotent.lean

tactic: intro l k
state_before: R : Type u
L : Type v
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
k : ℕ
N : LieSubmodule R L M
⊢ Antitone (lowerCentralSeries R L M)

tactic: induction' k with k ih generalizing l <;> intro h
state_before: R : Type u
L : Type v
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
k✝ : ℕ
N : LieSubmodule R L M
l k : ℕ
⊢ l ≤ k → lowerCentralSeries R L M k ≤ lowerCentralSeries R L M l

tactic: exact (le_zero_iff.mp h).symm ▸ le_rfl
state_before: case zero
R : Type u
L : Type v
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
k : ℕ
N : LieSubmodule R L M
l✝ l : ℕ
h : l ≤ Nat.zero
⊢ lowerCentralSeries R L M Nat.zero ≤ lowerCentralSeries R L M l

tactic: rcases Nat.of_le_succ h with (hk | hk)
state_before: case succ
R : Type u
L : Type v
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
k✝ : ℕ
N : LieSubmodule R L M
l✝ k : ℕ
ih : ∀ ⦃l : ℕ⦄, l ≤ k → lowerCentralSeries R L M k ≤ lowerCentralSeries R L M l
l : ℕ
h : l ≤ Nat.succ k
⊢ lowerCentralSeries R L M (Nat.succ k) ≤ lowerCentralSeries R L M l

tactic: rw [lowerCentralSeries_succ]
state_before: case succ.inl
R : Type u
L : Type v
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
k✝ : ℕ
N : LieSubmodule R L M
l✝ k : ℕ
ih : ∀ ⦃l : ℕ⦄, l ≤ k → lowerCentralSeries R L M k ≤ lowerCentralSeries R L M l
l : ℕ
h : l ≤ Nat.succ k
hk : l ≤ k
⊢ lowerCentralSeries R L M (Nat.succ k) ≤ lowerCentralSeries R L M l

tactic: exact (LieSubmodule.mono_lie_right _ _ ⊤ (ih hk)).trans (LieSubmodule.lie_le_right _ _)
state_before: case succ.inl
R : Type u
L : Type v
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
k✝ : ℕ
N : LieSubmodule R L M
l✝ k : ℕ
ih : ∀ ⦃l : ℕ⦄, l ≤ k → lowerCentralSeries R L M k ≤ lowerCentralSeries R L M l
l : ℕ
h : l ≤ Nat.succ k
hk : l ≤ k
⊢ ⁅⊤, lowerCentralSeries R L M k⁆ ≤ lowerCentralSeries R L M l

tactic: exact hk.symm ▸ le_rfl
state_before: case succ.inr
R : Type u
L : Type v
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
k✝ : ℕ
N : LieSubmodule R L M
l✝ k : ℕ
ih : ∀ ⦃l : ℕ⦄, l ≤ k → lowerCentralSeries R L M k ≤ lowerCentralSeries R L M l
l : ℕ
h : l ≤ Nat.succ k
hk : l = Nat.succ k
⊢ lowerCentralSeries R L M (Nat.succ k) ≤ lowerCentralSeries R L M l
Theorem: IsLowerSet.nonMemberSubfamily
File: Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean

tactic: simp_rw [mem_coe, mem_nonMemberSubfamily]
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s✝ : Finset α
a : α
h : IsLowerSet ↑𝒜
s t : Finset α
hts : t ≤ s
⊢ s ∈ ↑(Finset.nonMemberSubfamily a 𝒜) → t ∈ ↑(Finset.nonMemberSubfamily a 𝒜)

tactic: exact And.imp (h hts) (mt <| @hts _)
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s✝ : Finset α
a : α
h : IsLowerSet ↑𝒜
s t : Finset α
hts : t ≤ s
⊢ s ∈ 𝒜 ∧ ¬a ∈ s → t ∈ 𝒜 ∧ ¬a ∈ t
Theorem: Polynomial.nat_cast_inj
File: Mathlib/Data/Polynomial/Coeff.lean

tactic: constructor
state_before: R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
⊢ ↑m = ↑n ↔ m = n

tactic: intro h
state_before: case mp
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
⊢ ↑m = ↑n → m = n

tactic: apply_fun fun p => p.coeff 0  at h
state_before: case mp
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
h : ↑m = ↑n
⊢ m = n

tactic: simpa using h
state_before: case mp
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
h : coeff (↑m) 0 = coeff (↑n) 0
⊢ m = n

tactic: rintro rfl
state_before: case mpr
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
⊢ m = n → ↑m = ↑n

tactic: rfl
state_before: case mpr
R✝ : Type u
S : Type v
a b : R✝
n m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
⊢ ↑m = ↑m
Theorem: LinearMap.sub_mem_ker_iff
File: Mathlib/LinearAlgebra/Basic.lean

tactic: rw [mem_ker, map_sub, sub_eq_zero]
state_before: R : Type u_2
R₁ : Type ?u.1341382
R₂ : Type u_3
R₃ : Type ?u.1341388
R₄ : Type ?u.1341391
S : Type ?u.1341394
K : Type ?u.1341397
K₂ : Type ?u.1341400
M : Type u_1
M' : Type ?u.1341406
M₁ : Type ?u.1341409
M₂ : Type u_4
M₃ : Type ?u.1341415
M₄ : Type ?u.1341418
N : Type ?u.1341421
N₂ : Type ?u.1341424
ι : Type ?u.1341427
V : Type ?u.1341430
V₂ : Type ?u.1341433
inst✝⁹ : Ring R
inst✝⁸ : Ring R₂
inst✝⁷ : Ring R₃
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : AddCommGroup M₃
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
x y : M
⊢ x - y ∈ ker f ↔ ↑f x = ↑f y
Theorem: MeasureTheory.ae_eq_dirac
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp [Filter.EventuallyEq]
state_before: α : Type u_1
β : Type ?u.603087
γ : Type ?u.603090
δ : Type u_2
ι : Type ?u.603096
R : Type ?u.603099
R' : Type ?u.603102
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSingletonClass α
a : α
f : α → δ
⊢ f =ᶠ[ae (dirac a)] const α (f a)
Theorem: Set.Nontrivial.infsep_eq_iInf
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: classical rw [Set.infsep_eq_iInf, if_pos hs]
state_before: α : Type u_1
β : Type ?u.65221
inst✝ : PseudoMetricSpace α
x y z : α
s t : Set α
hs : Set.Nontrivial s
⊢ infsep s = ⨅ (d : ↑(offDiag s)), uncurry dist ↑d

tactic: rw [Set.infsep_eq_iInf, if_pos hs]
state_before: α : Type u_1
β : Type ?u.65221
inst✝ : PseudoMetricSpace α
x y z : α
s t : Set α
hs : Set.Nontrivial s
⊢ infsep s = ⨅ (d : ↑(offDiag s)), uncurry dist ↑d
Theorem: Polynomial.eq_zero_of_eq_zero
File: Mathlib/Data/Polynomial/Basic.lean

tactic: rw [← one_smul R p, ← h, zero_smul]
state_before: R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p✝ q : R[X]
h : 0 = 1
p : R[X]
⊢ p = 0
Theorem: MeasureTheory.Measure.measure_sInf_le
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [sInf_apply hs]
state_before: α : Type u_1
β : Type ?u.151657
γ : Type ?u.151660
δ : Type ?u.151663
ι : Type ?u.151666
R : Type ?u.151669
R' : Type ?u.151672
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : Set (Measure α)
h : μ ∈ m
this : sInf (toOuterMeasure '' m) ≤ ↑μ
s : Set α
hs : MeasurableSet s
⊢ ↑↑(sInf m) s ≤ ↑↑μ s

tactic: exact this s
state_before: α : Type u_1
β : Type ?u.151657
γ : Type ?u.151660
δ : Type ?u.151663
ι : Type ?u.151666
R : Type ?u.151669
R' : Type ?u.151672
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : Set (Measure α)
h : μ ∈ m
this : sInf (toOuterMeasure '' m) ≤ ↑μ
s : Set α
hs : MeasurableSet s
⊢ ↑(sInf (toOuterMeasure '' m)) s ≤ ↑↑μ s
Theorem: edist_triangle_right
File: Mathlib/Topology/MetricSpace/EMetricSpace.lean

tactic: rw [edist_comm y]
state_before: α : Type u
β : Type v
X : Type ?u.4940
inst✝ : PseudoEMetricSpace α
x y z : α
⊢ edist x y ≤ edist x z + edist y z

tactic: apply edist_triangle
state_before: α : Type u
β : Type v
X : Type ?u.4940
inst✝ : PseudoEMetricSpace α
x y z : α
⊢ edist x y ≤ edist x z + edist z y
Theorem: LinearMap.dualMap_id
File: Mathlib/LinearAlgebra/Dual.lean

tactic: ext
state_before: R : Type u
inst✝⁴ : CommSemiring R
M₁ : Type v
M₂ : Type v'
inst✝³ : AddCommMonoid M₁
inst✝² : Module R M₁
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R M₂
⊢ dualMap id = id

tactic: rfl
state_before: case h.h
R : Type u
inst✝⁴ : CommSemiring R
M₁ : Type v
M₂ : Type v'
inst✝³ : AddCommMonoid M₁
inst✝² : Module R M₁
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R M₂
x✝¹ : Dual R M₁
x✝ : M₁
⊢ ↑(↑(dualMap id) x✝¹) x✝ = ↑(↑id x✝¹) x✝
Theorem: Mathlib.Meta.NormNum.IsInt.to_isRat
File: Mathlib/Tactic/NormNum/Core.lean

tactic: simp
state_before: α : Type u_1
inst✝ : Ring α
n✝ : ℤ
⊢ 1 * ↑1 = 1

tactic: simp
state_before: α : Type u_1
inst✝ : Ring α
n✝ : ℤ
⊢ ↑1 * 1 = 1

tactic: simp
state_before: α : Type u_1
inst✝ : Ring α
n✝ : ℤ
⊢ ↑n✝ = ↑n✝ * ⅟↑1
Theorem: Finset.sup'_const
File: Mathlib/Data/Finset/Lattice.lean

tactic: apply le_antisymm
state_before: F : Type ?u.250689
α : Type u_1
β : Type u_2
γ : Type ?u.250698
ι : Type ?u.250701
κ : Type ?u.250704
inst✝ : SemilatticeSup α
s : Finset β
H : Finset.Nonempty s
f : β → α
a : α
⊢ (sup' s H fun x => a) = a

tactic: apply sup'_le
state_before: case a
F : Type ?u.250689
α : Type u_1
β : Type u_2
γ : Type ?u.250698
ι : Type ?u.250701
κ : Type ?u.250704
inst✝ : SemilatticeSup α
s : Finset β
H : Finset.Nonempty s
f : β → α
a : α
⊢ (sup' s H fun x => a) ≤ a

tactic: intros
state_before: case a.hs
F : Type ?u.250689
α : Type u_1
β : Type u_2
γ : Type ?u.250698
ι : Type ?u.250701
κ : Type ?u.250704
inst✝ : SemilatticeSup α
s : Finset β
H : Finset.Nonempty s
f : β → α
a : α
⊢ ∀ (b : β), b ∈ s → a ≤ a

tactic: exact le_rfl
state_before: case a.hs
F : Type ?u.250689
α : Type u_1
β : Type u_2
γ : Type ?u.250698
ι : Type ?u.250701
κ : Type ?u.250704
inst✝ : SemilatticeSup α
s : Finset β
H : Finset.Nonempty s
f : β → α
a : α
b✝ : β
a✝ : b✝ ∈ s
⊢ a ≤ a

tactic: apply le_sup' (fun _ => a) H.choose_spec
state_before: case a
F : Type ?u.250689
α : Type u_1
β : Type u_2
γ : Type ?u.250698
ι : Type ?u.250701
κ : Type ?u.250704
inst✝ : SemilatticeSup α
s : Finset β
H : Finset.Nonempty s
f : β → α
a : α
⊢ a ≤ sup' s H fun x => a
Theorem: CategoryTheory.Subobject.ofMkLE_arrow
File: Mathlib/CategoryTheory/Subobject/Basic.lean

tactic: simp [ofMkLE]
state_before: C : Type u₁
inst✝² : Category C
X✝ Y Z : C
D : Type u₂
inst✝¹ : Category D
B A : C
f : A ⟶ B
inst✝ : Mono f
X : Subobject B
h : mk f ≤ X
⊢ ofMkLE f X h ≫ arrow X = f
Theorem: multiplicity.multiplicity_le_multiplicity_iff
File: Mathlib/RingTheory/Multiplicity.lean

tactic: rw [← PartENat.natCast_get (finite_iff_dom.1 hab)]
state_before: α : Type u_1
inst✝¹ : Monoid α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b c d : α
h : ∀ (n : ℕ), a ^ n ∣ b → c ^ n ∣ d
hab : Finite a b
⊢ multiplicity a b ≤ multiplicity c d

tactic: exact le_multiplicity_of_pow_dvd (h _ (pow_multiplicity_dvd _))
state_before: α : Type u_1
inst✝¹ : Monoid α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b c d : α
h : ∀ (n : ℕ), a ^ n ∣ b → c ^ n ∣ d
hab : Finite a b
⊢ ↑(Part.get (multiplicity a b) (_ : (multiplicity a b).Dom)) ≤ multiplicity c d

tactic: have : ∀ n : ℕ, c ^ n ∣ d := fun n => h n (not_finite_iff_forall.1 hab _)
state_before: α : Type u_1
inst✝¹ : Monoid α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b c d : α
h : ∀ (n : ℕ), a ^ n ∣ b → c ^ n ∣ d
hab : ¬Finite a b
⊢ multiplicity a b ≤ multiplicity c d

tactic: rw [eq_top_iff_not_finite.2 hab, eq_top_iff_not_finite.2 (not_finite_iff_forall.2 this)]
state_before: α : Type u_1
inst✝¹ : Monoid α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b c d : α
h : ∀ (n : ℕ), a ^ n ∣ b → c ^ n ∣ d
hab : ¬Finite a b
this : ∀ (n : ℕ), c ^ n ∣ d
⊢ multiplicity a b ≤ multiplicity c d
Theorem: Set.exists_smaller_Set
File: Mathlib/Data/Set/Ncard.lean

tactic: simpa
state_before: α : Type u_1
β : Type ?u.133040
s✝ t : Set α
a b x y : α
f : α → β
s : Set α
i : ℕ
h₁ : i ≤ ncard s
⊢ i + ncard ∅ ≤ ncard s

tactic: simpa using ht.2.2
state_before: α : Type u_1
β : Type ?u.133040
s✝ t✝ : Set α
a b x y : α
f : α → β
s : Set α
i : ℕ
h₁ : i ≤ ncard s
t : Set α
ht : ∅ ⊆ t ∧ t ⊆ s ∧ ncard t = i + ncard ∅
⊢ ncard t = i
Theorem: Complex.arg_mul_cos_add_sin_mul_I_coe_angle
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: induction' θ using Real.Angle.induction_on with θ
state_before: r : ℝ
hr : 0 < r
θ : Angle
⊢ ↑(arg (↑r * (↑(Angle.cos θ) + ↑(Angle.sin θ) * I))) = θ

tactic: rw [Real.Angle.cos_coe, Real.Angle.sin_coe, Real.Angle.angle_eq_iff_two_pi_dvd_sub]
state_before: case h
r : ℝ
hr : 0 < r
θ : ℝ
⊢ ↑(arg (↑r * (↑(Angle.cos ↑θ) + ↑(Angle.sin ↑θ) * I))) = ↑θ

tactic: use ⌊(π - θ) / (2 * π)⌋
state_before: case h
r : ℝ
hr : 0 < r
θ : ℝ
⊢ ∃ k, arg (↑r * (↑(Real.cos θ) + ↑(Real.sin θ) * I)) - θ = 2 * π * ↑k

tactic: exact_mod_cast arg_mul_cos_add_sin_mul_I_sub hr θ
state_before: case h
r : ℝ
hr : 0 < r
θ : ℝ
⊢ arg (↑r * (↑(Real.cos θ) + ↑(Real.sin θ) * I)) - θ = 2 * π * ↑⌊(π - θ) / (2 * π)⌋
Theorem: associated_eq_eq
File: Mathlib/Algebra/Associated.lean

tactic: ext
state_before: α : Type u_1
β : Type ?u.249344
γ : Type ?u.249347
δ : Type ?u.249350
inst✝¹ : Monoid α
inst✝ : Unique αˣ
⊢ Associated = Eq

tactic: rw [associated_iff_eq]
state_before: case h.h.a
α : Type u_1
β : Type ?u.249344
γ : Type ?u.249347
δ : Type ?u.249350
inst✝¹ : Monoid α
inst✝ : Unique αˣ
x✝¹ x✝ : α
⊢ x✝¹ ~ᵤ x✝ ↔ x✝¹ = x✝
Theorem: FirstOrder.Language.Term.relabel_relabel
File: Mathlib/ModelTheory/Syntax.lean

tactic: induction' t with _ _ _ _ ih
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.5460
P : Type ?u.5463
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type u_1
f : α → β
g : β → γ
t : Term L α
⊢ relabel g (relabel f t) = relabel (g ∘ f) t

tactic: rfl
state_before: case var
L : Language
L' : Language
M : Type w
N : Type ?u.5460
P : Type ?u.5463
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type u_1
f : α → β
g : β → γ
_a✝ : α
⊢ relabel g (relabel f (var _a✝)) = relabel (g ∘ f) (var _a✝)

tactic: simp [ih]
state_before: case func
L : Language
L' : Language
M : Type w
N : Type ?u.5460
P : Type ?u.5463
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type u_1
f : α → β
g : β → γ
l✝ : ℕ
_f✝ : Functions L l✝
_ts✝ : Fin l✝ → Term L α
ih : ∀ (a : Fin l✝), relabel g (relabel f (_ts✝ a)) = relabel (g ∘ f) (_ts✝ a)
⊢ relabel g (relabel f (func _f✝ _ts✝)) = relabel (g ∘ f) (func _f✝ _ts✝)
Theorem: contDiffOn_succ_iff_fderiv_apply
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: rw [contDiffOn_succ_iff_fderivWithin hs, contDiffOn_clm_apply]
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹¹ : NormedAddCommGroup D
inst✝¹⁰ : NormedSpace 𝕜 D
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 ?u.2846299
inst✝³ : NormedAddCommGroup X
inst✝² : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g : F → G
x x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
n : ℕ
f : E → F
s : Set E
hs : UniqueDiffOn 𝕜 s
⊢ ContDiffOn 𝕜 (↑(n + 1)) f s ↔
    DifferentiableOn 𝕜 f s ∧ ∀ (y : E), ContDiffOn 𝕜 (↑n) (fun x => ↑(fderivWithin 𝕜 f s x) y) s
Theorem: Complex.cos_antiperiodic
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: simp [cos_add]
state_before: ⊢ Function.Antiperiodic cos ↑π
Theorem: tsum_dite_left
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: by_cases hP : P <;> simp [hP]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.329046
δ : Type ?u.329049
inst✝³ : AddCommMonoid α
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
f g : β → α
a a₁ a₂ : α
P : Prop
inst✝ : Decidable P
x : β → P → α
⊢ (∑' (b : β), if h : P then x b h else 0) = if h : P then ∑' (b : β), x b h else 0
Theorem: Algebra.adjoin_res_eq_adjoin_res
File: Mathlib/RingTheory/Adjoin/Tower.lean

tactic: rw [adjoin_restrictScalars C E, adjoin_restrictScalars C D, ← hS, ← hT, ← Algebra.adjoin_image,
  ← Algebra.adjoin_image, ← AlgHom.coe_toRingHom, ← AlgHom.coe_toRingHom,
  IsScalarTower.coe_toAlgHom, IsScalarTower.coe_toAlgHom, ← adjoin_union_eq_adjoin_adjoin, ←
  adjoin_union_eq_adjoin_adjoin, Set.union_comm]
state_before: R : Type u
S✝ : Type v
A : Type w
B : Type u₁
C : Type u_1
D : Type u_2
E : Type u_3
F : Type u_4
inst✝¹⁰ : CommSemiring C
inst✝⁹ : CommSemiring D
inst✝⁸ : CommSemiring E
inst✝⁷ : CommSemiring F
inst✝⁶ : Algebra C D
inst✝⁵ : Algebra C E
inst✝⁴ : Algebra C F
inst✝³ : Algebra D F
inst✝² : Algebra E F
inst✝¹ : IsScalarTower C D F
inst✝ : IsScalarTower C E F
S : Set D
T : Set E
hS : adjoin C S = ⊤
hT : adjoin C T = ⊤
⊢ Subalgebra.restrictScalars C (adjoin E (↑(algebraMap D F) '' S)) =
    Subalgebra.restrictScalars C (adjoin D (↑(algebraMap E F) '' T))
Theorem: MeasureTheory.OuterMeasure.map_comap
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: simp only [image_preimage_eq_inter_range, Subtype.range_coe]
state_before: α : Type u_2
β✝ : Type ?u.117782
R : Type ?u.117785
R' : Type ?u.117788
ms : Set (OuterMeasure α)
m✝ : OuterMeasure α
β : Type u_1
f : α → β
m : OuterMeasure β
s : Set β
⊢ f '' (f ⁻¹' s) = Subtype.val '' (Subtype.val ⁻¹' s)
Theorem: SimpleGraph.Walk.cons_map_snd_darts
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: induction p <;> simp! [*]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
p : Walk G u v
⊢ u :: List.map (fun x => x.snd) (darts p) = support p
Theorem: Filter.le_cofinite_iff_compl_singleton_mem
File: Mathlib/Order/Filter/Cofinite.lean

tactic: refine' ⟨fun h x => h (finite_singleton x).compl_mem_cofinite, fun h s (hs : sᶜ.Finite) => _⟩
state_before: ι : Type ?u.2270
α : Type u_1
β : Type ?u.2276
l : Filter α
⊢ l ≤ cofinite ↔ ∀ (x : α), {x}ᶜ ∈ l

tactic: rw [← compl_compl s, ← biUnion_of_singleton (sᶜ), compl_iUnion₂, Filter.biInter_mem hs]
state_before: ι : Type ?u.2270
α : Type u_1
β : Type ?u.2276
l : Filter α
h : ∀ (x : α), {x}ᶜ ∈ l
s : Set α
hs : Set.Finite (sᶜ)
⊢ s ∈ l

tactic: exact fun x _ => h x
state_before: ι : Type ?u.2270
α : Type u_1
β : Type ?u.2276
l : Filter α
h : ∀ (x : α), {x}ᶜ ∈ l
s : Set α
hs : Set.Finite (sᶜ)
⊢ ∀ (i : α), i ∈ sᶜ → {i}ᶜ ∈ l
Theorem: Complex.abs_deriv_le_one_of_mapsTo_ball
File: Mathlib/Analysis/Complex/Schwarz.lean

tactic: rwa [hc]
state_before: f : ℂ → ℂ
c z : ℂ
R R₁ R₂ : ℝ
hd : DifferentiableOn ℂ f (ball c R)
h_maps : MapsTo f (ball c R) (ball c R)
hc : f c = c
h₀ : 0 < R
⊢ MapsTo f (ball c R) (ball (f c) R)
Theorem: MvPowerSeries.mul_inv_cancel
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: rw [← invOfUnit_eq φ h, mul_invOfUnit φ (Units.mk0 _ h) rfl]
state_before: σ : Type u_1
R : Type ?u.1849733
k : Type u_2
inst✝ : Field k
φ : MvPowerSeries σ k
h : ↑(constantCoeff σ k) φ ≠ 0
⊢ φ * φ⁻¹ = 1