tasksource/leandojo huggingface dataset:
Theorem: Dfinsupp.mapRange.addMonoidHom_comp
File: Mathlib/Data/Dfinsupp/Basic.lean

tactic: refine' AddMonoidHom.ext <| mapRange_comp (fun i x => f i x) (fun i x => f₂ i x) _ _ _
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝² : (i : ι) → AddZeroClass (β i)
inst✝¹ : (i : ι) → AddZeroClass (β₁ i)
inst✝ : (i : ι) → AddZeroClass (β₂ i)
f : (i : ι) → β₁ i →+ β₂ i
f₂ : (i : ι) → β i →+ β₁ i
⊢ (addMonoidHom fun i => AddMonoidHom.comp (f i) (f₂ i)) = AddMonoidHom.comp (addMonoidHom f) (addMonoidHom f₂)

tactic: intros
state_before: case refine'_1
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝² : (i : ι) → AddZeroClass (β i)
inst✝¹ : (i : ι) → AddZeroClass (β₁ i)
inst✝ : (i : ι) → AddZeroClass (β₂ i)
f : (i : ι) → β₁ i →+ β₂ i
f₂ : (i : ι) → β i →+ β₁ i
⊢ ∀ (i : ι), (fun i x => ↑(f i) x) i 0 = 0

tactic: apply map_zero
state_before: case refine'_1
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝² : (i : ι) → AddZeroClass (β i)
inst✝¹ : (i : ι) → AddZeroClass (β₁ i)
inst✝ : (i : ι) → AddZeroClass (β₂ i)
f : (i : ι) → β₁ i →+ β₂ i
f₂ : (i : ι) → β i →+ β₁ i
i✝ : ι
⊢ (fun i x => ↑(f i) x) i✝ 0 = 0

tactic: intros
state_before: case refine'_2
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝² : (i : ι) → AddZeroClass (β i)
inst✝¹ : (i : ι) → AddZeroClass (β₁ i)
inst✝ : (i : ι) → AddZeroClass (β₂ i)
f : (i : ι) → β₁ i →+ β₂ i
f₂ : (i : ι) → β i →+ β₁ i
⊢ ∀ (i : ι), (fun i x => ↑(f₂ i) x) i 0 = 0

tactic: apply map_zero
state_before: case refine'_2
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝² : (i : ι) → AddZeroClass (β i)
inst✝¹ : (i : ι) → AddZeroClass (β₁ i)
inst✝ : (i : ι) → AddZeroClass (β₂ i)
f : (i : ι) → β₁ i →+ β₂ i
f₂ : (i : ι) → β i →+ β₁ i
i✝ : ι
⊢ (fun i x => ↑(f₂ i) x) i✝ 0 = 0

tactic: intros
state_before: case refine'_3
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝² : (i : ι) → AddZeroClass (β i)
inst✝¹ : (i : ι) → AddZeroClass (β₁ i)
inst✝ : (i : ι) → AddZeroClass (β₂ i)
f : (i : ι) → β₁ i →+ β₂ i
f₂ : (i : ι) → β i →+ β₁ i
⊢ ∀ (i : ι), ((fun i x => ↑(f i) x) i ∘ (fun i x => ↑(f₂ i) x) i) 0 = 0

tactic: dsimp
state_before: case refine'_3
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝² : (i : ι) → AddZeroClass (β i)
inst✝¹ : (i : ι) → AddZeroClass (β₁ i)
inst✝ : (i : ι) → AddZeroClass (β₂ i)
f : (i : ι) → β₁ i →+ β₂ i
f₂ : (i : ι) → β i →+ β₁ i
i✝ : ι
⊢ ((fun i x => ↑(f i) x) i✝ ∘ (fun i x => ↑(f₂ i) x) i✝) 0 = 0

tactic: simp only [map_zero]
state_before: case refine'_3
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝² : (i : ι) → AddZeroClass (β i)
inst✝¹ : (i : ι) → AddZeroClass (β₁ i)
inst✝ : (i : ι) → AddZeroClass (β₂ i)
f : (i : ι) → β₁ i →+ β₂ i
f₂ : (i : ι) → β i →+ β₁ i
i✝ : ι
⊢ ↑(f i✝) (↑(f₂ i✝) 0) = 0
Theorem: AffineMap.vectorSpan_image_eq_submodule_map
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [vectorSpan_def, vectorSpan_def, f.image_vsub_image, Submodule.span_image]
state_before: k : Type u_3
V₁ : Type u_4
P₁ : Type u_1
V₂ : Type u_2
P₂ : Type u_5
V₃ : Type ?u.522649
P₃ : Type ?u.522652
inst✝⁹ : Ring k
inst✝⁸ : AddCommGroup V₁
inst✝⁷ : Module k V₁
inst✝⁶ : AffineSpace V₁ P₁
inst✝⁵ : AddCommGroup V₂
inst✝⁴ : Module k V₂
inst✝³ : AffineSpace V₂ P₂
inst✝² : AddCommGroup V₃
inst✝¹ : Module k V₃
inst✝ : AffineSpace V₃ P₃
f : P₁ →ᵃ[k] P₂
s : Set P₁
⊢ Submodule.map f.linear (vectorSpan k s) = vectorSpan k (↑f '' s)
Theorem: Valuation.toFun_eq_coe
File: Mathlib/RingTheory/Valuation/Basic.lean

tactic: rfl
state_before: K : Type ?u.30649
F : Type ?u.30652
R : Type u_1
inst✝⁴ : DivisionRing K
Γ₀ : Type u_2
Γ'₀ : Type ?u.30664
Γ''₀ : Type ?u.30667
inst✝³ : LinearOrderedCommMonoidWithZero Γ''₀
inst✝² : Ring R
inst✝¹ : LinearOrderedCommMonoidWithZero Γ₀
inst✝ : LinearOrderedCommMonoidWithZero Γ'₀
v : Valuation R Γ₀
⊢ v.toFun = ↑v
Theorem: IsLocalization.coeSubmodule_span_singleton
File: Mathlib/RingTheory/Localization/Submodule.lean

tactic: rw [coeSubmodule_span, Set.image_singleton]
state_before: R : Type u_2
inst✝³ : CommRing R
M : Submonoid R
S : Type u_1
inst✝² : CommRing S
inst✝¹ : Algebra R S
P : Type ?u.88589
inst✝ : CommRing P
x : R
⊢ coeSubmodule S (Ideal.span {x}) = Submodule.span R {↑(algebraMap R S) x}
Theorem: Polynomial.IsPrimitive.ne_zero
File: Mathlib/RingTheory/Polynomial/Content.lean

tactic: rintro rfl
state_before: R : Type u_1
inst✝¹ : CommSemiring R
inst✝ : Nontrivial R
p : R[X]
hp : IsPrimitive p
⊢ p ≠ 0

tactic: exact (hp 0 (dvd_zero (C 0))).ne_zero rfl
state_before: R : Type u_1
inst✝¹ : CommSemiring R
inst✝ : Nontrivial R
hp : IsPrimitive 0
⊢ False
Theorem: Nat.four_pow_le_two_mul_add_one_mul_central_binom
File: Mathlib/Data/Nat/Choose/Sum.lean

tactic: simp only [pow_mul, one_add_one_eq_two]
state_before: R : Type ?u.164552
n : ℕ
⊢ 4 ^ n = (1 + 1) ^ (2 * n)

tactic: rfl
state_before: R : Type ?u.164552
n : ℕ
⊢ 4 ^ n = (2 ^ 2) ^ n

tactic: simp [add_pow]
state_before: R : Type ?u.164552
n : ℕ
⊢ (1 + 1) ^ (2 * n) = ∑ m in range (2 * n + 1), choose (2 * n) m

tactic: gcongr
state_before: R : Type ?u.164552
n : ℕ
⊢ ∑ m in range (2 * n + 1), choose (2 * n) m ≤ ∑ m in range (2 * n + 1), choose (2 * n) (2 * n / 2)

tactic: apply choose_le_middle
state_before: case h
R : Type ?u.164552
n i✝ : ℕ
a✝ : i✝ ∈ range (2 * n + 1)
⊢ choose (2 * n) i✝ ≤ choose (2 * n) (2 * n / 2)

tactic: simp
state_before: R : Type ?u.164552
n : ℕ
⊢ ∑ m in range (2 * n + 1), choose (2 * n) (2 * n / 2) = (2 * n + 1) * choose (2 * n) n
Theorem: SimpleGraph.incMatrix_mul_transpose_diag
File: Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean

tactic: rw [← sum_incMatrix_apply]
state_before: R : Type u_2
α : Type u_1
G : SimpleGraph α
inst✝³ : Fintype α
inst✝² : NonAssocSemiring R
a b : α
e : Sym2 α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
⊢ (incMatrix R G ⬝ (incMatrix R G)ᵀ) a a = ↑(degree G a)

tactic: simp only [mul_apply, incMatrix_apply', transpose_apply, mul_ite, mul_one, mul_zero]
state_before: R : Type u_2
α : Type u_1
G : SimpleGraph α
inst✝³ : Fintype α
inst✝² : NonAssocSemiring R
a b : α
e : Sym2 α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
⊢ (incMatrix R G ⬝ (incMatrix R G)ᵀ) a a = ∑ e : Sym2 α, incMatrix R G a e

tactic: simp_all only [ite_true, sum_boole]
state_before: R : Type u_2
α : Type u_1
G : SimpleGraph α
inst✝³ : Fintype α
inst✝² : NonAssocSemiring R
a b : α
e : Sym2 α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
⊢ (∑ x : Sym2 α, if x ∈ incidenceSet G a then if x ∈ incidenceSet G a then 1 else 0 else 0) =
    ∑ x : Sym2 α, if x ∈ incidenceSet G a then 1 else 0
Theorem: ContinuousAt.comp_lowerSemicontinuousAt
File: Mathlib/Topology/Semicontinuous.lean

tactic: simp only [← lowerSemicontinuousWithinAt_univ_iff] at hf⊢
state_before: α : Type u_3
inst✝⁷ : TopologicalSpace α
β : Type ?u.42638
inst✝⁶ : Preorder β
f✝ g✝ : α → β
x : α
s t : Set α
y z : β
γ : Type u_1
inst✝⁵ : LinearOrder γ
inst✝⁴ : TopologicalSpace γ
inst✝³ : OrderTopology γ
δ : Type u_2
inst✝² : LinearOrder δ
inst✝¹ : TopologicalSpace δ
inst✝ : OrderTopology δ
g : γ → δ
f : α → γ
hg : ContinuousAt g (f x)
hf : LowerSemicontinuousAt f x
gmon : Monotone g
⊢ LowerSemicontinuousAt (g ∘ f) x

tactic: exact hg.comp_lowerSemicontinuousWithinAt hf gmon
state_before: α : Type u_3
inst✝⁷ : TopologicalSpace α
β : Type ?u.42638
inst✝⁶ : Preorder β
f✝ g✝ : α → β
x : α
s t : Set α
y z : β
γ : Type u_1
inst✝⁵ : LinearOrder γ
inst✝⁴ : TopologicalSpace γ
inst✝³ : OrderTopology γ
δ : Type u_2
inst✝² : LinearOrder δ
inst✝¹ : TopologicalSpace δ
inst✝ : OrderTopology δ
g : γ → δ
f : α → γ
hg : ContinuousAt g (f x)
gmon : Monotone g
hf : LowerSemicontinuousWithinAt f univ x
⊢ LowerSemicontinuousWithinAt (g ∘ f) univ x
Theorem: PartENat.add_eq_top_iff
File: Mathlib/Data/Nat/PartENat.lean

tactic: refine PartENat.casesOn a ?_ ?_
<;> refine PartENat.casesOn b ?_ ?_
<;> simp
state_before: a b : PartENat
⊢ a + b = ⊤ ↔ a = ⊤ ∨ b = ⊤

tactic: simp only [←Nat.cast_add, PartENat.natCast_ne_top, forall_const]
state_before: case refine_2.refine_2
a b : PartENat
⊢ ∀ (n n_1 : ℕ), ¬↑n_1 + ↑n = ⊤
Theorem: Finsupp.disjoint_iff
File: Mathlib/Data/Finsupp/Order.lean

tactic: classical
  rw [disjoint_iff, disjoint_iff, Finsupp.bot_eq_zero, ← Finsupp.support_eq_empty,
    Finsupp.support_inf]
  rfl
state_before: ι : Type u_1
α : Type u_2
inst✝ : CanonicallyLinearOrderedAddMonoid α
f g : ι →₀ α
⊢ Disjoint f g ↔ Disjoint f.support g.support

tactic: rw [disjoint_iff, disjoint_iff, Finsupp.bot_eq_zero, ← Finsupp.support_eq_empty,
  Finsupp.support_inf]
state_before: ι : Type u_1
α : Type u_2
inst✝ : CanonicallyLinearOrderedAddMonoid α
f g : ι →₀ α
⊢ Disjoint f g ↔ Disjoint f.support g.support

tactic: rfl
state_before: ι : Type u_1
α : Type u_2
inst✝ : CanonicallyLinearOrderedAddMonoid α
f g : ι →₀ α
⊢ f.support ∩ g.support = ∅ ↔ f.support ⊓ g.support = ⊥
Theorem: FirstOrder.Language.Substructure.fg_bot
File: Mathlib/ModelTheory/FinitelyGenerated.lean

tactic: rw [Finset.coe_empty, closure_empty]
state_before: L : Language
M : Type u_3
inst✝ : Structure L M
⊢ LowerAdjoint.toFun (closure L) ↑∅ = ⊥
Theorem: Nat.Prime.dvd_choose_pow_iff
File: Mathlib/Data/Nat/Multiplicity.lean

tactic: refine' ⟨fun h => ⟨_, _⟩, fun h => dvd_choose_pow hp h.1 h.2⟩ <;> rintro rfl <;>
  simp [hp.ne_one] at h
state_before: p n k : ℕ
hp : Prime p
⊢ p ∣ choose (p ^ n) k ↔ k ≠ 0 ∧ k ≠ p ^ n
Theorem: Set.image_neg_Icc
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ Neg.neg '' Icc a b = Icc (-b) (-a)
Theorem: IsHilbertSum.mkInternal
File: Mathlib/Analysis/InnerProductSpace/l2Space.lean

tactic: simpa [subtypeₗᵢ_toLinearMap, range_subtype] using hFtotal
state_before: ι : Type u_3
𝕜 : Type u_2
inst✝⁵ : IsROrC 𝕜
E : Type u_1
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type ?u.514897
inst✝² : (i : ι) → NormedAddCommGroup (G i)
inst✝¹ : (i : ι) → InnerProductSpace 𝕜 (G i)
V : (i : ι) → G i →ₗᵢ[𝕜] E
F : ι → Submodule 𝕜 E
inst✝ : ∀ (i : ι), CompleteSpace { x // x ∈ F i }
hFortho : OrthogonalFamily 𝕜 (fun i => { x // x ∈ F i }) fun i => subtypeₗᵢ (F i)
hFtotal : ⊤ ≤ topologicalClosure (⨆ (i : ι), F i)
⊢ ⊤ ≤ topologicalClosure (⨆ (i : ι), LinearMap.range (subtypeₗᵢ (F i)).toLinearMap)
Theorem: Function.IsPeriodicPt.minimalPeriod_le
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: rw [minimalPeriod, dif_pos (mk_mem_periodicPts hn hx)]
state_before: α : Type u_1
β : Type ?u.22741
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hn : 0 < n
hx : IsPeriodicPt f n x
⊢ minimalPeriod f x ≤ n

tactic: exact Nat.find_min' (mk_mem_periodicPts hn hx) ⟨hn, hx⟩
state_before: α : Type u_1
β : Type ?u.22741
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hn : 0 < n
hx : IsPeriodicPt f n x
⊢ Nat.find (_ : x ∈ periodicPts f) ≤ n
Theorem: Nat.ArithmeticFunction.coe_mul_zeta_apply
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: rw [mul_apply]
state_before: R : Type u_1
inst✝ : Semiring R
f : ArithmeticFunction R
x : ℕ
⊢ ↑(f * ↑ζ) x = ∑ i in divisors x, ↑f i

tactic: trans ∑ i in divisorsAntidiagonal x, f i.1
state_before: R : Type u_1
inst✝ : Semiring R
f : ArithmeticFunction R
x : ℕ
⊢ ∑ x in divisorsAntidiagonal x, ↑f x.fst * ↑↑ζ x.snd = ∑ i in divisors x, ↑f i

tactic: refine' sum_congr rfl fun i hi => _
state_before: R : Type u_1
inst✝ : Semiring R
f : ArithmeticFunction R
x : ℕ
⊢ ∑ x in divisorsAntidiagonal x, ↑f x.fst * ↑↑ζ x.snd = ∑ i in divisorsAntidiagonal x, ↑f i.fst

tactic: rcases mem_divisorsAntidiagonal.1 hi with ⟨rfl, h⟩
state_before: R : Type u_1
inst✝ : Semiring R
f : ArithmeticFunction R
x : ℕ
i : ℕ × ℕ
hi : i ∈ divisorsAntidiagonal x
⊢ ↑f i.fst * ↑↑ζ i.snd = ↑f i.fst

tactic: rw [natCoe_apply, zeta_apply_ne (right_ne_zero_of_mul h), cast_one, mul_one]
state_before: case intro
R : Type u_1
inst✝ : Semiring R
f : ArithmeticFunction R
i : ℕ × ℕ
hi : i ∈ divisorsAntidiagonal (i.fst * i.snd)
h : i.fst * i.snd ≠ 0
⊢ ↑f i.fst * ↑↑ζ i.snd = ↑f i.fst

tactic: rw [← map_div_right_divisors, sum_map, Function.Embedding.coeFn_mk]
state_before: R : Type u_1
inst✝ : Semiring R
f : ArithmeticFunction R
x : ℕ
⊢ ∑ i in divisorsAntidiagonal x, ↑f i.fst = ∑ i in divisors x, ↑f i
Theorem: primorial_add
File: Mathlib/NumberTheory/Primorial.lean

tactic: rw [primorial, primorial, ← Ico_zero_eq_range, ← prod_union, ← filter_union, Ico_union_Ico_eq_Ico]
state_before: m n : ℕ
⊢ (m + n)# = m# * ∏ p in filter Nat.Prime (Ico (m + 1) (m + n + 1)), p

tactic: exacts [Nat.zero_le _, add_le_add_right (Nat.le_add_right _ _) _,
  disjoint_filter_filter <| Ico_disjoint_Ico_consecutive _ _ _]
state_before: case hab
m n : ℕ
⊢ 0 ≤ m + 1

case hbc
m n : ℕ
⊢ m + 1 ≤ m + n + 1

m n : ℕ
⊢ Disjoint (filter Nat.Prime (Ico 0 (m + 1))) (filter Nat.Prime (Ico (m + 1) (m + n + 1)))
Theorem: sup_inf_inf_compl
File: Mathlib/Order/BooleanAlgebra.lean

tactic: rw [← sdiff_eq, sup_inf_sdiff _ _]
state_before: α : Type u
β : Type ?u.58905
w x y z : α
inst✝ : BooleanAlgebra α
⊢ x ⊓ y ⊔ x ⊓ yᶜ = x
Theorem: MonoidHom.coprod_comp_inr
File: Mathlib/Algebra/Group/Prod.lean

tactic: simp [coprod_apply]
state_before: A : Type ?u.66901
B : Type ?u.66904
G : Type ?u.66907
H : Type ?u.66910
M : Type u_3
N : Type u_1
P : Type u_2
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : CommMonoid P
f : M →* P
g : N →* P
x : N
⊢ ↑(comp (coprod f g) (inr M N)) x = ↑g x
Theorem: Algebraic.cardinal_mk_le_max
File: Mathlib/Algebra/AlgebraicCard.lean

tactic: rw [← lift_id (#_), ← lift_id (#R)]
state_before: R A : Type u
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : IsDomain A
inst✝¹ : Algebra R A
inst✝ : NoZeroSMulDivisors R A
⊢ (#{ x // IsAlgebraic R x }) ≤ max (#R) ℵ₀

tactic: exact cardinal_mk_lift_le_max R A
state_before: R A : Type u
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : IsDomain A
inst✝¹ : Algebra R A
inst✝ : NoZeroSMulDivisors R A
⊢ lift (#{ x // IsAlgebraic R x }) ≤ max (lift (#R)) ℵ₀
Theorem: CategoryTheory.InjectiveResolution.ι_f_succ
File: Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean

tactic: apply zero_of_source_iso_zero
state_before: C : Type u
inst✝⁴ : Category C
inst✝³ : HasZeroObject C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasEqualizers C
inst✝ : HasImages C
Z : C
I : InjectiveResolution Z
n : ℕ
⊢ HomologicalComplex.Hom.f I.ι (n + 1) = 0

tactic: rfl
state_before: case i
C : Type u
inst✝⁴ : Category C
inst✝³ : HasZeroObject C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasEqualizers C
inst✝ : HasImages C
Z : C
I : InjectiveResolution Z
n : ℕ
⊢ HomologicalComplex.X ((CochainComplex.single₀ C).obj Z) (n + 1) ≅ 0
Theorem: vectorSpan_range_eq_span_range_vsub_left_ne
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [← Set.image_univ, vectorSpan_image_eq_span_vsub_set_left_ne k _ (Set.mem_univ i₀)]
state_before: k : Type u_2
V : Type u_1
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
i₀ : ι
⊢ vectorSpan k (range p) = Submodule.span k (range fun i => p i₀ -ᵥ p ↑i)

tactic: congr with v
state_before: k : Type u_2
V : Type u_1
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
i₀ : ι
⊢ Submodule.span k ((fun x x_1 => x -ᵥ x_1) (p i₀) '' (p '' (univ \ {i₀}))) =
    Submodule.span k (range fun i => p i₀ -ᵥ p ↑i)

tactic: simp only [Set.mem_range, Set.mem_image, Set.mem_diff, Set.mem_singleton_iff, Subtype.exists,
  Subtype.coe_mk]
state_before: case e_s.h
k : Type u_2
V : Type u_1
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
i₀ : ι
v : V
⊢ v ∈ (fun x x_1 => x -ᵥ x_1) (p i₀) '' (p '' (univ \ {i₀})) ↔ v ∈ range fun i => p i₀ -ᵥ p ↑i

tactic: constructor
state_before: case e_s.h
k : Type u_2
V : Type u_1
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
i₀ : ι
v : V
⊢ (∃ x, (∃ x_1, (x_1 ∈ univ ∧ ¬x_1 = i₀) ∧ p x_1 = x) ∧ p i₀ -ᵥ x = v) ↔ ∃ a h, p i₀ -ᵥ p a = v

tactic: rintro ⟨x, ⟨i₁, ⟨⟨_, hi₁⟩, rfl⟩⟩, hv⟩
state_before: case e_s.h.mp
k : Type u_2
V : Type u_1
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
i₀ : ι
v : V
⊢ (∃ x, (∃ x_1, (x_1 ∈ univ ∧ ¬x_1 = i₀) ∧ p x_1 = x) ∧ p i₀ -ᵥ x = v) → ∃ a h, p i₀ -ᵥ p a = v

tactic: exact ⟨i₁, hi₁, hv⟩
state_before: case e_s.h.mp.intro.intro.intro.intro.intro
k : Type u_2
V : Type u_1
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
i₀ : ι
v : V
i₁ : ι
left✝ : i₁ ∈ univ
hi₁ : ¬i₁ = i₀
hv : p i₀ -ᵥ p i₁ = v
⊢ ∃ a h, p i₀ -ᵥ p a = v

tactic: exact fun ⟨i₁, hi₁, hv⟩ => ⟨p i₁, ⟨i₁, ⟨Set.mem_univ _, hi₁⟩, rfl⟩, hv⟩
state_before: case e_s.h.mpr
k : Type u_2
V : Type u_1
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
i₀ : ι
v : V
⊢ (∃ a h, p i₀ -ᵥ p a = v) → ∃ x, (∃ x_1, (x_1 ∈ univ ∧ ¬x_1 = i₀) ∧ p x_1 = x) ∧ p i₀ -ᵥ x = v
Theorem: MeasureTheory.OuterMeasure.measure_inter_union
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: rw [h₁, Set.inter_assoc, Set.union_inter_cancel_left, inter_diff_assoc, union_diff_cancel_left h]
state_before: α : Type u
m : OuterMeasure α
s s₁ s₂ : Set α
h : s₁ ∩ s₂ ⊆ ∅
h₁ : IsCaratheodory m s₁
t : Set α
⊢ ↑m (t ∩ (s₁ ∪ s₂)) = ↑m (t ∩ s₁) + ↑m (t ∩ s₂)
Theorem: Set.subset_range_enumerate
File: Mathlib/Data/Set/Countable.lean

tactic: letI := h.toEncodable
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
s : Set α
h : Set.Countable s
default x : α
hx : x ∈ s
⊢ enumerateCountable h default (encode { val := x, property := hx }) = x

tactic: simp [enumerateCountable, Encodable.encodek]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
s : Set α
h : Set.Countable s
default x : α
hx : x ∈ s
this : Encodable ↑s := Countable.toEncodable h
⊢ enumerateCountable h default (encode { val := x, property := hx }) = x
Theorem: MeasureTheory.LocallyIntegrable.indicator
File: Mathlib/MeasureTheory/Function/LocallyIntegrable.lean

tactic: intro x
state_before: X : Type u_1
Y : Type ?u.129447
E : Type u_2
R : Type ?u.129453
inst✝⁴ : MeasurableSpace X
inst✝³ : TopologicalSpace X
inst✝² : MeasurableSpace Y
inst✝¹ : TopologicalSpace Y
inst✝ : NormedAddCommGroup E
f : X → E
μ : Measure X
s✝ : Set X
hf : LocallyIntegrable f
s : Set X
hs : MeasurableSet s
⊢ LocallyIntegrable (Set.indicator s f)

tactic: rcases hf x with ⟨U, hU, h'U⟩
state_before: X : Type u_1
Y : Type ?u.129447
E : Type u_2
R : Type ?u.129453
inst✝⁴ : MeasurableSpace X
inst✝³ : TopologicalSpace X
inst✝² : MeasurableSpace Y
inst✝¹ : TopologicalSpace Y
inst✝ : NormedAddCommGroup E
f : X → E
μ : Measure X
s✝ : Set X
hf : LocallyIntegrable f
s : Set X
hs : MeasurableSet s
x : X
⊢ IntegrableAtFilter (Set.indicator s f) (𝓝 x)

tactic: exact ⟨U, hU, h'U.indicator hs⟩
state_before: case intro.intro
X : Type u_1
Y : Type ?u.129447
E : Type u_2
R : Type ?u.129453
inst✝⁴ : MeasurableSpace X
inst✝³ : TopologicalSpace X
inst✝² : MeasurableSpace Y
inst✝¹ : TopologicalSpace Y
inst✝ : NormedAddCommGroup E
f : X → E
μ : Measure X
s✝ : Set X
hf : LocallyIntegrable f
s : Set X
hs : MeasurableSet s
x : X
U : Set X
hU : U ∈ 𝓝 x
h'U : IntegrableOn f U
⊢ IntegrableAtFilter (Set.indicator s f) (𝓝 x)
Theorem: Order.sequenceOfCofinals.encode_mem
File: Mathlib/Order/Ideal.lean

tactic: dsimp only [sequenceOfCofinals, Nat.add]
state_before: P : Type u_1
inst✝¹ : Preorder P
p : P
ι : Type u_2
inst✝ : Encodable ι
𝒟 : ι → Cofinal P
i : ι
⊢ sequenceOfCofinals p 𝒟 (Encodable.encode i + 1) ∈ 𝒟 i

tactic: rw [Encodable.encodek]
state_before: P : Type u_1
inst✝¹ : Preorder P
p : P
ι : Type u_2
inst✝ : Encodable ι
𝒟 : ι → Cofinal P
i : ι
⊢ (match Encodable.decode (Encodable.encode i) with
    | none => sequenceOfCofinals p 𝒟 (Encodable.encode i)
    | some i_1 => Cofinal.above (𝒟 i_1) (sequenceOfCofinals p 𝒟 (Encodable.encode i))) ∈
    𝒟 i

tactic: apply Cofinal.above_mem
state_before: P : Type u_1
inst✝¹ : Preorder P
p : P
ι : Type u_2
inst✝ : Encodable ι
𝒟 : ι → Cofinal P
i : ι
⊢ (match some i with
    | none => sequenceOfCofinals p 𝒟 (Encodable.encode i)
    | some i_1 => Cofinal.above (𝒟 i_1) (sequenceOfCofinals p 𝒟 (Encodable.encode i))) ∈
    𝒟 i
Theorem: Set.add_smul_subset
File: Mathlib/Data/Set/Pointwise/SMul.lean

tactic: rintro _ ⟨x, hx, rfl⟩
state_before: F : Type ?u.213140
α : Type u_2
β : Type u_1
γ : Type ?u.213149
inst✝² : Semiring α
inst✝¹ : AddCommMonoid β
inst✝ : Module α β
a b : α
s : Set β
⊢ (a + b) • s ⊆ a • s + b • s

tactic: simpa only [add_smul] using add_mem_add (smul_mem_smul_set hx) (smul_mem_smul_set hx)
state_before: case intro.intro
F : Type ?u.213140
α : Type u_2
β : Type u_1
γ : Type ?u.213149
inst✝² : Semiring α
inst✝¹ : AddCommMonoid β
inst✝ : Module α β
a b : α
s : Set β
x : β
hx : x ∈ s
⊢ (fun x => (a + b) • x) x ∈ a • s + b • s
Theorem: Matrix.det_apply'
File: Mathlib/LinearAlgebra/Matrix/Determinant.lean

tactic: simp [det_apply, Units.smul_def]
state_before: m : Type ?u.55351
n : Type u_1
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
M : Matrix n n R
⊢ det M = ∑ σ : Perm n, ↑↑(↑sign σ) * ∏ i : n, M (↑σ i) i
Theorem: Wcovby.image
File: Mathlib/Order/Cover.lean

tactic: refine' ⟨f.monotone hab.le, fun c ha hb => _⟩
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c : α
f : α ↪o β
hab : a ⩿ b
h : OrdConnected (range ↑f)
⊢ ↑f a ⩿ ↑f b

tactic: obtain ⟨c, rfl⟩ := h.out (mem_range_self _) (mem_range_self _) ⟨ha.le, hb.le⟩
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c✝ : α
f : α ↪o β
hab : a ⩿ b
h : OrdConnected (range ↑f)
c : (fun x => β) a
ha : ↑f a < c
hb : c < ↑f b
⊢ False

tactic: rw [f.lt_iff_lt] at ha hb
state_before: case intro
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c✝ : α
f : α ↪o β
hab : a ⩿ b
h : OrdConnected (range ↑f)
c : α
ha : ↑f a < ↑f c
hb : ↑f c < ↑f b
⊢ False

tactic: exact hab.2 ha hb
state_before: case intro
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c✝ : α
f : α ↪o β
hab : a ⩿ b
h : OrdConnected (range ↑f)
c : α
ha : a < c
hb : c < b
⊢ False