tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.snorm'_const
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: rw [snorm', lintegral_const, ENNReal.mul_rpow_of_nonneg _ _ (by simp [hq_pos.le] : 0 ≤ 1 / q)]
state_before: α : Type u_1
E : Type ?u.953790
F : Type u_2
G : Type ?u.953796
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ snorm' (fun x => c) q μ = ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / q)

tactic: congr
state_before: α : Type u_1
E : Type ?u.953790
F : Type u_2
G : Type ?u.953796
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ (↑‖c‖₊ ^ q) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / q) = ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / q)

tactic: rw [← ENNReal.rpow_mul]
state_before: case e_a
α : Type u_1
E : Type ?u.953790
F : Type u_2
G : Type ?u.953796
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ (↑‖c‖₊ ^ q) ^ (1 / q) = ↑‖c‖₊

tactic: suffices hq_cancel : q * (1 / q) = 1
state_before: case e_a
α : Type u_1
E : Type ?u.953790
F : Type u_2
G : Type ?u.953796
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ ↑‖c‖₊ ^ (q * (1 / q)) = ↑‖c‖₊

tactic: rw [one_div, mul_inv_cancel (ne_of_lt hq_pos).symm]
state_before: case hq_cancel
α : Type u_1
E : Type ?u.953790
F : Type u_2
G : Type ?u.953796
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ q * (1 / q) = 1

tactic: simp [hq_pos.le]
state_before: α : Type u_1
E : Type ?u.953790
F : Type u_2
G : Type ?u.953796
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ 0 ≤ 1 / q

tactic: rw [hq_cancel, ENNReal.rpow_one]
state_before: case e_a
α : Type u_1
E : Type ?u.953790
F : Type u_2
G : Type ?u.953796
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
hq_cancel : q * (1 / q) = 1
⊢ ↑‖c‖₊ ^ (q * (1 / q)) = ↑‖c‖₊
Theorem: Complex.eqOn_closure_of_eqOn_frontier
File: Mathlib/Analysis/Complex/AbsMax.lean

tactic: suffices H : ∀ z ∈ closure U, ‖(f - g) z‖ ≤ 0
state_before: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : Nontrivial E
f g : E → F
U : Set E
hU : Metric.Bounded U
hf : DiffContOnCl ℂ f U
hg : DiffContOnCl ℂ g U
hfg : EqOn f g (frontier U)
⊢ EqOn f g (closure U)

tactic: refine' fun z hz => norm_le_of_forall_mem_frontier_norm_le hU (hf.sub hg) (fun w hw => _) hz
state_before: case H
E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : Nontrivial E
f g : E → F
U : Set E
hU : Metric.Bounded U
hf : DiffContOnCl ℂ f U
hg : DiffContOnCl ℂ g U
hfg : EqOn f g (frontier U)
⊢ ∀ (z : E), z ∈ closure U → ‖(f - g) z‖ ≤ 0

tactic: simp [hfg hw]
state_before: case H
E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : Nontrivial E
f g : E → F
U : Set E
hU : Metric.Bounded U
hf : DiffContOnCl ℂ f U
hg : DiffContOnCl ℂ g U
hfg : EqOn f g (frontier U)
z : E
hz : z ∈ closure U
w : E
hw : w ∈ frontier U
⊢ ‖(f - g) w‖ ≤ 0

tactic: simpa [sub_eq_zero] using H
state_before: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : Nontrivial E
f g : E → F
U : Set E
hU : Metric.Bounded U
hf : DiffContOnCl ℂ f U
hg : DiffContOnCl ℂ g U
hfg : EqOn f g (frontier U)
H : ∀ (z : E), z ∈ closure U → ‖(f - g) z‖ ≤ 0
⊢ EqOn f g (closure U)
Theorem: Ordinal.le_mul_left
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: convert mul_le_mul_left' (one_le_iff_pos.2 hb) a
state_before: α : Type ?u.192331
β : Type ?u.192334
γ : Type ?u.192337
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal
hb : 0 < b
⊢ a ≤ a * b

tactic: rw [mul_one a]
state_before: case h.e'_3
α : Type ?u.192331
β : Type ?u.192334
γ : Type ?u.192337
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal
hb : 0 < b
⊢ a = a * 1
Theorem: Matrix.coe_units_inv
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

tactic: letI := A.invertible
state_before: l : Type ?u.130720
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A✝ B : Matrix n n α
A : (Matrix n n α)ˣ
⊢ ↑A⁻¹ = (↑A)⁻¹

tactic: rw [← invOf_eq_nonsing_inv, invOf_units]
state_before: l : Type ?u.130720
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A✝ B : Matrix n n α
A : (Matrix n n α)ˣ
this : Invertible ↑A := Units.invertible A
⊢ ↑A⁻¹ = (↑A)⁻¹
Theorem: SimpleGraph.IsClique.card_le_of_coloring
File: Mathlib/Combinatorics/SimpleGraph/Coloring.lean

tactic: rw [isClique_iff_induce_eq] at h
state_before: V : Type u
G : SimpleGraph V
α : Type v
C✝ : Coloring G α
s : Finset V
h : IsClique G ↑s
inst✝ : Fintype α
C : Coloring G α
⊢ Finset.card s ≤ Fintype.card α

tactic: have f : G.induce ↑s ↪g G := Embedding.comap (Function.Embedding.subtype fun x => x ∈ ↑s) G
state_before: V : Type u
G : SimpleGraph V
α : Type v
C✝ : Coloring G α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : Coloring G α
⊢ Finset.card s ≤ Fintype.card α

tactic: rw [h] at f
state_before: V : Type u
G : SimpleGraph V
α : Type v
C✝ : Coloring G α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : Coloring G α
f : induce (↑s) G ↪g G
⊢ Finset.card s ≤ Fintype.card α

tactic: convert Fintype.card_le_of_injective _ (C.comp f.toHom).injective_of_top_hom using 1
state_before: V : Type u
G : SimpleGraph V
α : Type v
C✝ : Coloring G α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : Coloring G α
f : ⊤ ↪g G
⊢ Finset.card s ≤ Fintype.card α

tactic: simp
state_before: case h.e'_3
V : Type u
G : SimpleGraph V
α : Type v
C✝ : Coloring G α
s : Finset V
h : induce (↑s) G = ⊤
inst✝ : Fintype α
C : Coloring G α
f : ⊤ ↪g G
⊢ Finset.card s = Fintype.card ↑↑s
Theorem: MeasureTheory.ae_nonneg_restrict_of_forall_set_integral_nonneg
File: Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean

tactic: refine'
  ae_nonneg_restrict_of_forall_set_integral_nonneg_inter
    (hf_int_finite t ht (lt_top_iff_ne_top.mpr hμt)) fun s hs _ => _
state_before: α : Type u_1
E : Type ?u.87153
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
⊢ 0 ≤ᵐ[Measure.restrict μ t] f

tactic: refine' hf_zero (s ∩ t) (hs.inter ht) _
state_before: α : Type u_1
E : Type ?u.87153
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
s : Set α
hs : MeasurableSet s
x✝ : ↑↑μ (s ∩ t) < ⊤
⊢ 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ

tactic: exact (measure_mono (Set.inter_subset_right s t)).trans_lt (lt_top_iff_ne_top.mpr hμt)
state_before: α : Type u_1
E : Type ?u.87153
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
s : Set α
hs : MeasurableSet s
x✝ : ↑↑μ (s ∩ t) < ⊤
⊢ ↑↑μ (s ∩ t) < ⊤
Theorem: Finmap.liftOn_toFinmap
File: Mathlib/Data/Finmap.lean

tactic: cases s
state_before: α : Type u
β : α → Type v
γ : Type u_1
s : AList β
f : AList β → γ
H : ∀ (a b : AList β), a.entries ~ b.entries → f a = f b
⊢ liftOn ⟦s⟧ f H = f s

tactic: rfl
state_before: case mk
α : Type u
β : α → Type v
γ : Type u_1
f : AList β → γ
H : ∀ (a b : AList β), a.entries ~ b.entries → f a = f b
entries✝ : List (Sigma β)
nodupKeys✝ : NodupKeys entries✝
⊢ liftOn ⟦{ entries := entries✝, nodupKeys := nodupKeys✝ }⟧ f H = f { entries := entries✝, nodupKeys := nodupKeys✝ }
Theorem: List.filter_false
File: Mathlib/Data/List/Basic.lean

tactic: induction l <;> simp [*, filter]
state_before: ι : Type ?u.381273
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
p : α → Bool
l : List α
⊢ filter (fun x => false) l = []
Theorem: Polynomial.taylor_mul
File: Mathlib/Data/Polynomial/Taylor.lean

tactic: simp only [taylor_apply, mul_comp]
state_before: R✝ : Type ?u.211470
inst✝¹ : Semiring R✝
r✝ : R✝
f : R✝[X]
R : Type u_1
inst✝ : CommSemiring R
r : R
p q : R[X]
⊢ ↑(taylor r) (p * q) = ↑(taylor r) p * ↑(taylor r) q
Theorem: List.Pairwise.forall_of_forall
File: Mathlib/Data/List/Pairwise.lean

tactic: rwa [H.flip_eq]
state_before: α : Type u_1
β : Type ?u.5992
R S T : α → α → Prop
a : α
l : List α
H : Symmetric R
H₁ : ∀ (x : α), x ∈ l → R x x
H₂ : Pairwise R l
⊢ Pairwise (flip fun x => R x) l
Theorem: CategoryTheory.MorphismProperty.IsInvertedBy.op
File: Mathlib/CategoryTheory/MorphismProperty.lean

tactic: haveI := h f.unop hf
state_before: C : Type u
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
W : MorphismProperty C
L : C ⥤ D
h : IsInvertedBy W L
X Y : Cᵒᵖ
f : X ⟶ Y
hf : MorphismProperty.op W f
⊢ IsIso ((Functor.op L).map f)

tactic: dsimp
state_before: C : Type u
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
W : MorphismProperty C
L : C ⥤ D
h : IsInvertedBy W L
X Y : Cᵒᵖ
f : X ⟶ Y
hf : MorphismProperty.op W f
this : IsIso (L.map f.unop)
⊢ IsIso ((Functor.op L).map f)

tactic: infer_instance
state_before: C : Type u
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
W : MorphismProperty C
L : C ⥤ D
h : IsInvertedBy W L
X Y : Cᵒᵖ
f : X ⟶ Y
hf : MorphismProperty.op W f
this : IsIso (L.map f.unop)
⊢ IsIso (L.map f.unop).op
Theorem: ENNReal.not_lt_zero
File: Mathlib/Data/Real/ENNReal.lean

tactic: simp
state_before: α : Type ?u.109045
β : Type ?u.109048
a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ ¬a < 0
Theorem: rank_bot
File: Mathlib/LinearAlgebra/Dimension.lean

tactic: have : (⊥ : Submodule R M) ≃ₗ[R] PUnit := botEquivPUnit
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.117699
R : Type u
inst✝⁷ : Ring R
M : Type v
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
M' : Type v'
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M'
M₁ : Type v
inst✝² : AddCommGroup M₁
inst✝¹ : Module R M₁
inst✝ : Nontrivial R
⊢ Module.rank R { x // x ∈ ⊥ } = 0

tactic: rw [this.rank_eq, rank_punit]
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.117699
R : Type u
inst✝⁷ : Ring R
M : Type v
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
M' : Type v'
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M'
M₁ : Type v
inst✝² : AddCommGroup M₁
inst✝¹ : Module R M₁
inst✝ : Nontrivial R
this : { x // x ∈ ⊥ } ≃ₗ[R] PUnit
⊢ Module.rank R { x // x ∈ ⊥ } = 0
Theorem: TrivSqZeroExt.inl_mul
File: Mathlib/Algebra/TrivSqZeroExt.lean

tactic: rw [smul_zero, zero_add, smul_zero]
state_before: R : Type u
M : Type v
inst✝³ : Monoid R
inst✝² : AddMonoid M
inst✝¹ : DistribMulAction R M
inst✝ : DistribMulAction Rᵐᵒᵖ M
r₁ r₂ : R
⊢ 0 = r₁ • 0 + op r₂ • 0
Theorem: Algebra.TensorProduct.map_comp_includeLeft
File: Mathlib/RingTheory/TensorProduct.lean

tactic: simp
state_before: R : Type u
inst✝⁸ : CommSemiring R
A : Type v₁
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
B : Type v₂
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R B
C : Type v₃
inst✝³ : Semiring C
inst✝² : Algebra R C
D : Type v₄
inst✝¹ : Semiring D
inst✝ : Algebra R D
f : A →ₐ[R] B
g : C →ₐ[R] D
⊢ ∀ (x : A), ↑(AlgHom.comp (map f g) includeLeft) x = ↑(AlgHom.comp includeLeft f) x
Theorem: PowerSeries.coeff_zero_C
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: rw [← monomial_zero_eq_C_apply, coeff_monomial_same 0 a]
state_before: R : Type u_1
inst✝ : Semiring R
a : R
⊢ ↑(coeff R 0) (↑(C R) a) = a
Theorem: maximal_linearIndependent_eq_infinite_basis
File: Mathlib/LinearAlgebra/Dimension.lean

tactic: apply le_antisymm
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι✝ : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.376396
R : Type u
inst✝⁴ : Ring R
inst✝³ : StrongRankCondition R
M : Type v
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_1
b : Basis ι R M
inst✝ : Infinite ι
κ : Type u_1
v : κ → M
i : LinearIndependent R v
m : LinearIndependent.Maximal i
⊢ (#κ) = (#ι)

tactic: exact linearIndependent_le_basis b v i
state_before: case a
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι✝ : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.376396
R : Type u
inst✝⁴ : Ring R
inst✝³ : StrongRankCondition R
M : Type v
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_1
b : Basis ι R M
inst✝ : Infinite ι
κ : Type u_1
v : κ → M
i : LinearIndependent R v
m : LinearIndependent.Maximal i
⊢ (#κ) ≤ (#ι)

tactic: haveI : Nontrivial R := nontrivial_of_invariantBasisNumber R
state_before: case a
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι✝ : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.376396
R : Type u
inst✝⁴ : Ring R
inst✝³ : StrongRankCondition R
M : Type v
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_1
b : Basis ι R M
inst✝ : Infinite ι
κ : Type u_1
v : κ → M
i : LinearIndependent R v
m : LinearIndependent.Maximal i
⊢ (#ι) ≤ (#κ)

tactic: exact infinite_basis_le_maximal_linearIndependent b v i m
state_before: case a
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι✝ : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.376396
R : Type u
inst✝⁴ : Ring R
inst✝³ : StrongRankCondition R
M : Type v
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_1
b : Basis ι R M
inst✝ : Infinite ι
κ : Type u_1
v : κ → M
i : LinearIndependent R v
m : LinearIndependent.Maximal i
this : Nontrivial R
⊢ (#ι) ≤ (#κ)
Theorem: Nat.cast_mul
File: Mathlib/Data/Nat/Cast/Basic.lean

tactic: induction n <;> simp [mul_succ, mul_add, *]
state_before: α : Type u_1
β : Type ?u.2100
inst✝ : NonAssocSemiring α
m n : ℕ
⊢ ↑(m * n) = ↑m * ↑n
Theorem: Nat.gcd_fib_add_mul_self
File: Mathlib/Data/Nat/Fib.lean

tactic: simp
state_before: m n : ℕ
⊢ gcd (fib m) (fib (n + 0 * m)) = gcd (fib m) (fib n)

tactic: rw [←gcd_fib_add_mul_self m n k,
  add_mul,
  ← add_assoc,
  one_mul,
  gcd_fib_add_self _ _]
state_before: m n k : ℕ
⊢ gcd (fib m) (fib (n + (k + 1) * m)) = gcd (fib m) (fib n)
Theorem: Polynomial.revAt_zero
File: Mathlib/Data/Polynomial/Reverse.lean

tactic: simp
state_before: R : Type ?u.89713
inst✝ : Semiring R
f : R[X]
N : ℕ
⊢ ↑(revAt N) 0 = N
Theorem: ComplexShape.next_eq'
File: Mathlib/Algebra/Homology/ComplexShape.lean

tactic: apply c.next_eq _ h
state_before: ι : Type u_1
c : ComplexShape ι
i j : ι
h : Rel c i j
⊢ next c i = j

tactic: rw [next]
state_before: ι : Type u_1
c : ComplexShape ι
i j : ι
h : Rel c i j
⊢ Rel c i (next c i)

tactic: rw [dif_pos]
state_before: ι : Type u_1
c : ComplexShape ι
i j : ι
h : Rel c i j
⊢ Rel c i (if h : ∃ j, Rel c i j then Exists.choose h else i)

tactic: exact Exists.choose_spec ⟨j, h⟩
state_before: ι : Type u_1
c : ComplexShape ι
i j : ι
h : Rel c i j
⊢ Rel c i (Exists.choose ?hc)

case hc
ι : Type u_1
c : ComplexShape ι
i j : ι
h : Rel c i j
⊢ ∃ j, Rel c i j
Theorem: ProbabilityTheory.kernel.integral_piecewise
File: Mathlib/Probability/Kernel/Basic.lean

tactic: simp_rw [piecewise_apply]
state_before: α : Type u_3
β : Type u_2
ι : Type ?u.1471684
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ η : { x // x ∈ kernel α β }
s : Set α
hs : MeasurableSet s
inst✝³ : DecidablePred fun x => x ∈ s
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
a : α
g : β → E
⊢ (∫ (b : β), g b ∂↑(piecewise hs κ η) a) = if a ∈ s then ∫ (b : β), g b ∂↑κ a else ∫ (b : β), g b ∂↑η a

tactic: split_ifs <;> rfl
state_before: α : Type u_3
β : Type u_2
ι : Type ?u.1471684
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ η : { x // x ∈ kernel α β }
s : Set α
hs : MeasurableSet s
inst✝³ : DecidablePred fun x => x ∈ s
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
a : α
g : β → E
⊢ (∫ (b : β), g b ∂if a ∈ s then ↑κ a else ↑η a) = if a ∈ s then ∫ (b : β), g b ∂↑κ a else ∫ (b : β), g b ∂↑η a
Theorem: Num.pred_succ
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [PosNum.pred'_succ']
state_before: α : Type ?u.858461
p : PosNum
⊢ toZNumNeg (PosNum.pred' (succ' (pos p))) = ZNum.neg p

tactic: rfl
state_before: α : Type ?u.858461
p : PosNum
⊢ toZNumNeg (pos p) = ZNum.neg p

tactic: rw [ZNum.pred, ← toZNum_succ, Num.succ, PosNum.succ'_pred', toZNum]
state_before: α : Type ?u.858461
p : PosNum
⊢ ZNum.succ (ZNum.pred (ZNum.pos p)) = ZNum.pos p
Theorem: sq_le_two_pow_add_one_minus_three
File: Mathlib/Computability/Ackermann.lean

tactic: induction' n with k hk
state_before: n : ℕ
⊢ n ^ 2 ≤ 2 ^ (n + 1) - 3

tactic: norm_num
state_before: case zero

⊢ zero ^ 2 ≤ 2 ^ (zero + 1) - 3

tactic: cases' k with k k
state_before: case succ
k : ℕ
hk : k ^ 2 ≤ 2 ^ (k + 1) - 3
⊢ succ k ^ 2 ≤ 2 ^ (succ k + 1) - 3

tactic: norm_num
state_before: case succ.zero
hk : zero ^ 2 ≤ 2 ^ (zero + 1) - 3
⊢ succ zero ^ 2 ≤ 2 ^ (succ zero + 1) - 3

tactic: rw [succ_eq_add_one, add_sq, Nat.pow_succ 2, mul_comm _ 2, two_mul (2 ^ _),
    add_tsub_assoc_of_le, add_comm (2 ^ _), add_assoc]
state_before: case succ.succ
k : ℕ
hk : succ k ^ 2 ≤ 2 ^ (succ k + 1) - 3
⊢ succ (succ k) ^ 2 ≤ 2 ^ (succ (succ k) + 1) - 3

tactic: apply Nat.add_le_add hk
state_before: case succ.succ
k : ℕ
hk : succ k ^ 2 ≤ 2 ^ (succ k + 1) - 3
⊢ (k + 1) ^ 2 + (2 * (k + 1) * 1 + 1 ^ 2) ≤ 2 ^ (k + 2) - 3 + 2 ^ (k + 2)

tactic: norm_num
state_before: case succ.succ
k : ℕ
hk : succ k ^ 2 ≤ 2 ^ (succ k + 1) - 3
⊢ 2 * (k + 1) * 1 + 1 ^ 2 ≤ 2 ^ (k + 2)

tactic: apply succ_le_of_lt
state_before: case succ.succ
k : ℕ
hk : succ k ^ 2 ≤ 2 ^ (succ k + 1) - 3
⊢ 2 * (k + 1) + 1 ≤ 2 ^ (k + 2)

tactic: rw [Nat.pow_succ, mul_comm _ 2, mul_lt_mul_left (zero_lt_two' ℕ)]
state_before: case succ.succ.h
k : ℕ
hk : succ k ^ 2 ≤ 2 ^ (succ k + 1) - 3
⊢ 2 * (k + 1) < 2 ^ (k + 2)

tactic: apply lt_two_pow
state_before: case succ.succ.h
k : ℕ
hk : succ k ^ 2 ≤ 2 ^ (succ k + 1) - 3
⊢ k + 1 < 2 ^ (k + 1)

tactic: rw [Nat.pow_succ, Nat.pow_succ]
state_before: case succ.succ.h
k : ℕ
hk : succ k ^ 2 ≤ 2 ^ (succ k + 1) - 3
⊢ 3 ≤ 2 ^ (k + 2)

tactic: linarith [one_le_pow k 2 zero_lt_two]
state_before: case succ.succ.h
k : ℕ
hk : succ k ^ 2 ≤ 2 ^ (succ k + 1) - 3
⊢ 3 ≤ 2 ^ k * 2 * 2
Theorem: Mod_.assoc_flip
File: Mathlib/CategoryTheory/Monoidal/Mod_.lean

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : MonoidalCategory C
A : Mon_ C
M : Mod_ A
⊢ (𝟙 A.X ⊗ M.act) ≫ M.act = (α_ A.X A.X M.X).inv ≫ (A.mul ⊗ 𝟙 M.X) ≫ M.act
Theorem: Flow.omegaLimit_image_subset
File: Mathlib/Dynamics/OmegaLimit.lean

tactic: simp only [omegaLimit_image_eq, ← map_add]
state_before: τ : Type u_1
inst✝³ : TopologicalSpace τ
inst✝² : AddMonoid τ
inst✝¹ : ContinuousAdd τ
α : Type u_2
inst✝ : TopologicalSpace α
f : Filter τ
ϕ : Flow τ α
s : Set α
t : τ
ht : Tendsto (fun x => x + t) f f
⊢ ω f ϕ.toFun (toFun ϕ t '' s) ⊆ ω f ϕ.toFun s

tactic: exact omegaLimit_subset_of_tendsto ϕ s ht
state_before: τ : Type u_1
inst✝³ : TopologicalSpace τ
inst✝² : AddMonoid τ
inst✝¹ : ContinuousAdd τ
α : Type u_2
inst✝ : TopologicalSpace α
f : Filter τ
ϕ : Flow τ α
s : Set α
t : τ
ht : Tendsto (fun x => x + t) f f
⊢ ω f (fun t_1 x => toFun ϕ (t_1 + t) x) s ⊆ ω f ϕ.toFun s
Theorem: GaloisInsertion.l_sInf_u_image
File: Mathlib/Order/GaloisConnection.lean

tactic: rw [sInf_image, gi.l_biInf_u, sInf_eq_iInf]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
κ : ι → Sort ?u.42081
a a₁ a₂ : α
b b₁ b₂ : β
l : α → β
u : β → α
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
gi : GaloisInsertion l u
s : Set β
⊢ l (sInf (u '' s)) = sInf s
Theorem: Matrix.J_transpose
File: Mathlib/LinearAlgebra/SymplecticGroup.lean

tactic: rw [J, fromBlocks_transpose, ← neg_one_smul R (fromBlocks _ _ _ _ : Matrix (l ⊕ l) (l ⊕ l) R),
  fromBlocks_smul, Matrix.transpose_zero, Matrix.transpose_one, transpose_neg]
state_before: l : Type u_1
R : Type u_2
inst✝¹ : DecidableEq l
inst✝ : CommRing R
⊢ (J l R)ᵀ = -J l R

tactic: simp [fromBlocks]
state_before: l : Type u_1
R : Type u_2
inst✝¹ : DecidableEq l
inst✝ : CommRing R
⊢ fromBlocks 0 1 (-1ᵀ) 0 = fromBlocks (-1 • 0) (-1 • -1) (-1 • 1) (-1 • 0)
Theorem: Valuation.supp_quot_supp
File: Mathlib/RingTheory/Valuation/Quotient.lean

tactic: rw [supp_quot]
state_before: R : Type u_1
Γ₀ : Type u_2
inst✝¹ : CommRing R
inst✝ : LinearOrderedCommMonoidWithZero Γ₀
v : Valuation R Γ₀
⊢ supp (onQuot v (_ : supp v ≤ supp v)) = 0

tactic: exact Ideal.map_quotient_self _
state_before: R : Type u_1
Γ₀ : Type u_2
inst✝¹ : CommRing R
inst✝ : LinearOrderedCommMonoidWithZero Γ₀
v : Valuation R Γ₀
⊢ Ideal.map (Ideal.Quotient.mk (supp v)) (supp v) = 0
Theorem: Real.exp_half
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

tactic: rw [eq_comm, sqrt_eq_iff_sq_eq, sq, ← exp_add, add_halves] <;> exact (exp_pos _).le
state_before: α : Type ?u.20583
x✝ y z : ℝ
l : Filter α
x : ℝ
⊢ exp (x / 2) = sqrt (exp x)
Theorem: List.nodup_range
File: Mathlib/Data/List/Range.lean

tactic: simp only [range_eq_range', nodup_range']
state_before: α : Type u
n : ℕ
⊢ Nodup (range n)
Theorem: Int.div_dvd_div
File: Std/Data/Int/DivMod.lean

tactic: simp [az]
state_before: a b c : Int
az : a = 0
⊢ div (a * b) a ∣ div (a * b * c) a

tactic: rw [Int.mul_div_cancel_left _ az, Int.mul_assoc, Int.mul_div_cancel_left _ az]
state_before: a b c : Int
az : ¬a = 0
⊢ div (a * b) a ∣ div (a * b * c) a

tactic: apply Int.dvd_mul_right
state_before: a b c : Int
az : ¬a = 0
⊢ b ∣ b * c
Theorem: CategoryTheory.Limits.Cotrident.app_one
File: Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean

tactic: rw [← s.w (line j), parallelFamily_map_left]
state_before: J : Type w
C : Type u
inst✝ : Category C
X Y : C
f : J → (X ⟶ Y)
s : Cotrident f
j : J
⊢ f j ≫ s.ι.app one = s.ι.app zero
Theorem: ENNReal.mul_le_iff_le_inv
File: Mathlib/Data/Real/ENNReal.lean

tactic: rw [← @ENNReal.mul_le_mul_left _ a _ hr₀ hr₁, ← mul_assoc, ENNReal.mul_inv_cancel hr₀ hr₁,
  one_mul]
state_before: α : Type ?u.298762
β : Type ?u.298765
a✝ b✝ c d : ℝ≥0∞
r✝ p q : ℝ≥0
a b r : ℝ≥0∞
hr₀ : r ≠ 0
hr₁ : r ≠ ⊤
⊢ r * a ≤ b ↔ a ≤ r⁻¹ * b
Theorem: Set.relatively_discrete_of_finite
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: rw [← einfsep_pos]
state_before: α : Type u_1
β : Type ?u.52764
inst✝¹ : EMetricSpace α
x y z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
⊢ ∃ C _hC, ∀ (x : α), x ∈ s → ∀ (y : α), y ∈ s → x ≠ y → C ≤ edist x y

tactic: exact einfsep_pos_of_finite
state_before: α : Type u_1
β : Type ?u.52764
inst✝¹ : EMetricSpace α
x y z : α
s t : Set α
C : ℝ≥0∞
sC : Set ℝ≥0∞
inst✝ : Finite ↑s
⊢ 0 < einfsep s
Theorem: Finset.pimage_union
File: Mathlib/Data/Finset/PImage.lean

tactic: simp only [coe_pimage, coe_union, ← PFun.image_union]
state_before: α : Type u_1
β : Type u_2
inst✝³ : DecidableEq β
f g : α →. β
inst✝² : (x : α) → Decidable (f x).Dom
inst✝¹ : (x : α) → Decidable (g x).Dom
s t : Finset α
b : β
inst✝ : DecidableEq α
⊢ ↑(pimage f (s ∪ t)) = ↑(pimage f s ∪ pimage f t)
Theorem: Complex.cos_int_mul_two_pi_sub_pi
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: simpa only [cos_zero] using (cos_periodic.int_mul n).sub_antiperiod_eq cos_antiperiodic
state_before: n : ℤ
⊢ cos (↑n * (2 * ↑π) - ↑π) = -1