tasksource/leandojo huggingface dataset:
Theorem: MvPFunctor.wDest'_wMk
File: Mathlib/Data/PFunctor/Multivariate/W.lean

tactic: rw [wDest', wRec_eq]
state_before: n : ℕ
P : MvPFunctor (n + 1)
α : TypeVec n
a : P.A
f' : B (drop P) a ⟹ α
f : PFunctor.B (last P) a → W P α
⊢ wDest' P (wMk P a f' f) = { fst := a, snd := splitFun f' f }
Theorem: bihimp_top
File: Mathlib/Order/SymmDiff.lean

tactic: rw [bihimp, himp_top, top_himp, inf_top_eq]
state_before: ι : Type ?u.37057
α : Type u_1
β : Type ?u.37063
π : ι → Type ?u.37068
inst✝ : GeneralizedHeytingAlgebra α
a b c d : α
⊢ a ⇔ ⊤ = a
Theorem: MvPolynomial.pderiv_X_of_ne
File: Mathlib/Data/MvPolynomial/PDeriv.lean

tactic: classical simp [h]
state_before: R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝ : CommSemiring R
i j : σ
h : j ≠ i
⊢ ↑(pderiv i) (X j) = 0

tactic: simp [h]
state_before: R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝ : CommSemiring R
i j : σ
h : j ≠ i
⊢ ↑(pderiv i) (X j) = 0
Theorem: QuaternionAlgebra.Basis.lift_zero
File: Mathlib/Algebra/QuaternionBasis.lean

tactic: simp [lift]
state_before: R : Type u_2
A : Type u_1
B : Type ?u.66514
inst✝⁴ : CommRing R
inst✝³ : Ring A
inst✝² : Ring B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
c₁ c₂ : R
q : Basis A c₁ c₂
⊢ lift q 0 = 0
Theorem: Finset.prod_partition
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: refine' (Finset.prod_image' f fun x _hx => _).symm
state_before: ι : Type ?u.787616
β : Type u
α : Type v
γ : Type w
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝¹ : CommMonoid β
R : Setoid α
inst✝ : DecidableRel Setoid.r
⊢ ∏ x in s, f x = ∏ xbar in image Quotient.mk'' s, ∏ y in filter (fun x => Quotient.mk R x = xbar) s, f y

tactic: rfl
state_before: ι : Type ?u.787616
β : Type u
α : Type v
γ : Type w
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝¹ : CommMonoid β
R : Setoid α
inst✝ : DecidableRel Setoid.r
x : α
_hx : x ∈ s
⊢ ∏ y in filter (fun x_1 => Quotient.mk R x_1 = Quotient.mk'' x) s, f y =
    ∏ x in filter (fun c' => Quotient.mk'' c' = Quotient.mk'' x) s, f x
Theorem: NormedRing.inverse_one_sub_nth_order'
File: Mathlib/Analysis/NormedSpace/Units.lean

tactic: simp only [inverse_one_sub t ht, add_comm _ n, pow_add, this.tsum_mul_left]
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
n : ℕ
t : R
ht : ‖t‖ < 1
this : Summable fun n => t ^ n
⊢ (∑ i in range n, t ^ i + ∑' (i : ℕ), t ^ (i + n)) = ∑ i in range n, t ^ i + t ^ n * inverse (1 - t)

tactic: rfl
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
n : ℕ
t : R
ht : ‖t‖ < 1
this : Summable fun n => t ^ n
⊢ (∑ i in range n, t ^ i + t ^ n * ∑' (i : ℕ), t ^ i) = ∑ i in range n, t ^ i + t ^ n * ↑(Units.oneSub t ht)⁻¹
Theorem: Nat.gcd_mul_left
File: Std/Data/Nat/Gcd.lean

tactic: induction n, k using gcd.induction with
| H0 k => simp
| H1 n k _ IH => rwa [← mul_mod_mul_left, ← gcd_rec, ← gcd_rec] at IH
state_before: m n k : Nat
⊢ gcd (m * n) (m * k) = m * gcd n k

tactic: simp
state_before: case H0
m k : Nat
⊢ gcd (m * 0) (m * k) = m * gcd 0 k

tactic: rwa [← mul_mod_mul_left, ← gcd_rec, ← gcd_rec] at IH
state_before: case H1
m n k : Nat
a✝ : 0 < n
IH : gcd (m * (k % n)) (m * n) = m * gcd (k % n) n
⊢ gcd (m * n) (m * k) = m * gcd n k
Theorem: Finsupp.lcongr_single
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: simp [lcongr]
state_before: α : Type ?u.541821
M : Type u_4
N : Type u_5
P : Type ?u.541830
R : Type u_3
S : Type ?u.541836
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
ι : Type u_1
κ : Type u_2
e₁ : ι ≃ κ
e₂ : M ≃ₗ[R] N
i : ι
m : M
⊢ ↑(lcongr e₁ e₂) (single i m) = single (↑e₁ i) (↑e₂ m)
Theorem: Nat.one_le_two_pow
File: Mathlib/Data/Nat/Pow.lean

tactic: decide
state_before: n : ℕ
⊢ 0 < 2
Theorem: CategoryTheory.Limits.PullbackCone.op_inl
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.inl (op c) = (fst c).op
Theorem: Part.map_bind
File: Mathlib/Data/Part.lean

tactic: rw [← bind_some_eq_map, bind_assoc]
state_before: α : Type u_3
β : Type u_2
γ✝ : Type ?u.32518
γ : Type u_1
f : α → Part β
x : Part α
g : β → γ
⊢ map g (Part.bind x f) = Part.bind x fun y => map g (f y)

tactic: simp [bind_some_eq_map]
state_before: α : Type u_3
β : Type u_2
γ✝ : Type ?u.32518
γ : Type u_1
f : α → Part β
x : Part α
g : β → γ
⊢ (Part.bind x fun x => Part.bind (f x) (some ∘ g)) = Part.bind x fun y => map g (f y)
Theorem: Filter.eventually_atTop_curry
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: rw [← prod_atTop_atTop_eq] at hp
state_before: ι : Type ?u.304213
ι' : Type ?u.304216
α : Type u_1
β : Type u_2
γ : Type ?u.304225
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
p : α × β → Prop
hp : ∀ᶠ (x : α × β) in atTop, p x
⊢ ∀ᶠ (k : α) in atTop, ∀ᶠ (l : β) in atTop, p (k, l)

tactic: exact hp.curry
state_before: ι : Type ?u.304213
ι' : Type ?u.304216
α : Type u_1
β : Type u_2
γ : Type ?u.304225
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
p : α × β → Prop
hp : ∀ᶠ (x : α × β) in atTop ×ˢ atTop, p x
⊢ ∀ᶠ (k : α) in atTop, ∀ᶠ (l : β) in atTop, p (k, l)
Theorem: Filter.sup_principal
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [union_subset_iff, mem_sup, mem_principal]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.116167
ι : Sort x
f g : Filter α
s✝ t✝ s t u : Set α
⊢ u ∈ 𝓟 s ⊔ 𝓟 t ↔ u ∈ 𝓟 (s ∪ t)
Theorem: Holor.slice_eq
File: Mathlib/Data/Holor.lean

tactic: rw [← hiis]
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
x y : Holor α (d :: ds)
h : slice x = slice y
t : HolorIndex (d :: ds)
i : ℕ
is : List ℕ
hiis : ↑t = i :: is
⊢ Forall₂ (fun x x_1 => x < x_1) (i :: is) (d :: ds)

tactic: exact t.2
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
x y : Holor α (d :: ds)
h : slice x = slice y
t : HolorIndex (d :: ds)
i : ℕ
is : List ℕ
hiis : ↑t = i :: is
⊢ Forall₂ (fun x x_1 => x < x_1) (↑t) (d :: ds)

tactic: rw [h]
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
x y : Holor α (d :: ds)
h : slice x = slice y
t : HolorIndex (d :: ds)
i : ℕ
is : List ℕ
hiis : ↑t = i :: is
hiisdds : Forall₂ (fun x x_1 => x < x_1) (i :: is) (d :: ds)
hid : i < d
hisds : Forall₂ (fun x x_1 => x < x_1) is ds
⊢ slice x i hid { val := is, property := hisds } = slice y i hid { val := is, property := hisds }
Theorem: Pmf.support_ofFinset
File: Mathlib/Probability/ProbabilityMassFunction/Constructions.lean

tactic: simpa [mem_support_iff] using mt (h' a)
state_before: α : Type u_1
β : Type ?u.124309
γ : Type ?u.124312
f : α → ℝ≥0∞
s : Finset α
h : ∑ a in s, f a = 1
h' : ∀ (a : α), ¬a ∈ s → f a = 0
a : α
⊢ a ∈ support (ofFinset f s h h') ↔ a ∈ ↑s ∩ Function.support f
Theorem: Polynomial.degree_C_le
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: by_cases h : a = 0
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
⊢ degree (↑C a) ≤ 0

tactic: rw [h, C_0]
state_before: case pos
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
h : a = 0
⊢ degree (↑C a) ≤ 0

tactic: exact bot_le
state_before: case pos
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
h : a = 0
⊢ degree 0 ≤ 0

tactic: rw [degree_C h]
state_before: case neg
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
h : ¬a = 0
⊢ degree (↑C a) ≤ 0
Theorem: QuotientGroup.continuous_smul₁
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: induction x using QuotientGroup.induction_on
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : ContinuousMul G
Γ : Subgroup G
x : G ⧸ Γ
⊢ Continuous fun g => g • x

tactic: exact continuous_quotient_mk'.comp (continuous_mul_right _)
state_before: case H
α : Type u
β : Type v
G : Type w
H : Type x
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : ContinuousMul G
Γ : Subgroup G
z✝ : G
⊢ Continuous fun g => g • ↑z✝
Theorem: Multiset.countp_add
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp [countp_eq_card_filter]
state_before: α : Type u_1
β : Type ?u.299485
γ : Type ?u.299488
p : α → Prop
inst✝ : DecidablePred p
s t : Multiset α
⊢ countp p (s + t) = countp p s + countp p t
Theorem: Int.two_pow_two_pow_sub_pow_two_pow
File: Mathlib/NumberTheory/Multiplicity.lean

tactic: simp only [pow_two_pow_sub_pow_two_pow n, multiplicity.mul Int.prime_two,
  multiplicity.Finset.prod Int.prime_two, add_comm, Nat.cast_one, Finset.sum_const,
  Finset.card_range, nsmul_one, Int.two_pow_two_pow_add_two_pow_two_pow hx hxy]
state_before: R : Type ?u.857609
n✝ : ℕ
x y : ℤ
n : ℕ
hxy : 4 ∣ x - y
hx : ¬2 ∣ x
⊢ multiplicity 2 (x ^ 2 ^ n - y ^ 2 ^ n) = multiplicity 2 (x - y) + ↑n
Theorem: IsCompactOperator.continuous_comp
File: Mathlib/Analysis/NormedSpace/CompactOperator.lean

tactic: rcases hf with ⟨K, hK, hKf⟩
state_before: R₁ : Type ?u.179451
R₂ : Type ?u.179454
R₃ : Type ?u.179457
inst✝⁷ : Semiring R₁
inst✝⁶ : Semiring R₂
inst✝⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
M₁ : Type u_1
M₂ : Type u_2
M₃ : Type u_3
inst✝⁴ : TopologicalSpace M₁
inst✝³ : TopologicalSpace M₂
inst✝² : TopologicalSpace M₃
inst✝¹ : AddCommMonoid M₁
inst✝ : Module R₁ M₁
f : M₁ → M₂
hf : IsCompactOperator f
g : M₂ → M₃
hg : Continuous g
⊢ IsCompactOperator (g ∘ f)

tactic: refine' ⟨g '' K, hK.image hg, mem_of_superset hKf _⟩
state_before: case intro.intro
R₁ : Type ?u.179451
R₂ : Type ?u.179454
R₃ : Type ?u.179457
inst✝⁷ : Semiring R₁
inst✝⁶ : Semiring R₂
inst✝⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
M₁ : Type u_1
M₂ : Type u_2
M₃ : Type u_3
inst✝⁴ : TopologicalSpace M₁
inst✝³ : TopologicalSpace M₂
inst✝² : TopologicalSpace M₃
inst✝¹ : AddCommMonoid M₁
inst✝ : Module R₁ M₁
f : M₁ → M₂
g : M₂ → M₃
hg : Continuous g
K : Set M₂
hK : IsCompact K
hKf : f ⁻¹' K ∈ 𝓝 0
⊢ IsCompactOperator (g ∘ f)

tactic: rw [preimage_comp]
state_before: case intro.intro
R₁ : Type ?u.179451
R₂ : Type ?u.179454
R₃ : Type ?u.179457
inst✝⁷ : Semiring R₁
inst✝⁶ : Semiring R₂
inst✝⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
M₁ : Type u_1
M₂ : Type u_2
M₃ : Type u_3
inst✝⁴ : TopologicalSpace M₁
inst✝³ : TopologicalSpace M₂
inst✝² : TopologicalSpace M₃
inst✝¹ : AddCommMonoid M₁
inst✝ : Module R₁ M₁
f : M₁ → M₂
g : M₂ → M₃
hg : Continuous g
K : Set M₂
hK : IsCompact K
hKf : f ⁻¹' K ∈ 𝓝 0
⊢ f ⁻¹' K ⊆ g ∘ f ⁻¹' (g '' K)

tactic: exact preimage_mono (subset_preimage_image _ _)
state_before: case intro.intro
R₁ : Type ?u.179451
R₂ : Type ?u.179454
R₃ : Type ?u.179457
inst✝⁷ : Semiring R₁
inst✝⁶ : Semiring R₂
inst✝⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
M₁ : Type u_1
M₂ : Type u_2
M₃ : Type u_3
inst✝⁴ : TopologicalSpace M₁
inst✝³ : TopologicalSpace M₂
inst✝² : TopologicalSpace M₃
inst✝¹ : AddCommMonoid M₁
inst✝ : Module R₁ M₁
f : M₁ → M₂
g : M₂ → M₃
hg : Continuous g
K : Set M₂
hK : IsCompact K
hKf : f ⁻¹' K ∈ 𝓝 0
⊢ f ⁻¹' K ⊆ f ⁻¹' (g ⁻¹' (g '' K))
Theorem: Complex.continuousAt_tan
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/ComplexDeriv.lean

tactic: refine' ⟨fun hc h₀ => _, fun h => (hasDerivAt_tan h).continuousAt⟩
state_before: x : ℂ
⊢ ContinuousAt tan x ↔ cos x ≠ 0

tactic: exact not_tendsto_nhds_of_tendsto_atTop (tendsto_abs_tan_of_cos_eq_zero h₀) _
  (hc.norm.tendsto.mono_left inf_le_left)
state_before: x : ℂ
hc : ContinuousAt tan x
h₀ : cos x = 0
⊢ False
Theorem: Set.prod_diff_prod
File: Mathlib/Data/Set/Prod.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.85553
δ : Type ?u.85556
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
⊢ s ×ˢ t \ s₁ ×ˢ t₁ = s ×ˢ (t \ t₁) ∪ (s \ s₁) ×ˢ t

tactic: by_cases h₁ : x.1 ∈ s₁ <;> by_cases h₂ : x.2 ∈ t₁ <;> simp [*]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.85553
δ : Type ?u.85556
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
x : α × β
⊢ x ∈ s ×ˢ t \ s₁ ×ˢ t₁ ↔ x ∈ s ×ˢ (t \ t₁) ∪ (s \ s₁) ×ˢ t
Theorem: Valuation.comap_supp
File: Mathlib/RingTheory/Valuation/Basic.lean

tactic: rw [mem_supp_iff, Ideal.mem_comap, mem_supp_iff, comap_apply]
state_before: K : Type ?u.4018726
F : Type ?u.4018729
R : Type u_2
inst✝⁵ : DivisionRing K
Γ₀ : Type u_3
Γ'₀ : Type ?u.4018741
Γ''₀ : Type ?u.4018744
inst✝⁴ : LinearOrderedCommMonoidWithZero Γ''₀
inst✝³ : CommRing R
inst✝² : LinearOrderedCommMonoidWithZero Γ₀
inst✝¹ : LinearOrderedCommMonoidWithZero Γ'₀
v : Valuation R Γ₀
S : Type u_1
inst✝ : CommRing S
f : S →+* R
x : S
⊢ x ∈ supp (comap f v) ↔ x ∈ Ideal.comap f (supp v)
Theorem: MeasureTheory.Measure.haar.prehaar_sup_eq
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

tactic: simp only [prehaar]
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
K₁ K₂ : Compacts G
hU : Set.Nonempty (interior U)
h : Disjoint (K₁.carrier * U⁻¹) (K₂.carrier * U⁻¹)
⊢ prehaar (↑K₀) U (K₁ ⊔ K₂) = prehaar (↑K₀) U K₁ + prehaar (↑K₀) U K₂

tactic: rw [div_add_div_same]
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
K₁ K₂ : Compacts G
hU : Set.Nonempty (interior U)
h : Disjoint (K₁.carrier * U⁻¹) (K₂.carrier * U⁻¹)
⊢ ↑(index (↑(K₁ ⊔ K₂)) U) / ↑(index (↑K₀) U) = ↑(index (↑K₁) U) / ↑(index (↑K₀) U) + ↑(index (↑K₂) U) / ↑(index (↑K₀) U)

tactic: refine congr_arg (fun x : ℝ => x / index K₀ U) ?_
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
K₁ K₂ : Compacts G
hU : Set.Nonempty (interior U)
h : Disjoint (K₁.carrier * U⁻¹) (K₂.carrier * U⁻¹)
⊢ ↑(index (↑(K₁ ⊔ K₂)) U) / ↑(index (↑K₀) U) = (↑(index (↑K₁) U) + ↑(index (↑K₂) U)) / ↑(index (↑K₀) U)

tactic: exact_mod_cast index_union_eq K₁ K₂ hU h
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
K₁ K₂ : Compacts G
hU : Set.Nonempty (interior U)
h : Disjoint (K₁.carrier * U⁻¹) (K₂.carrier * U⁻¹)
⊢ ↑(index (↑(K₁ ⊔ K₂)) U) = ↑(index (↑K₁) U) + ↑(index (↑K₂) U)
Theorem: Submodule.finrank_add_finrank_orthogonal'
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: rw [← add_right_inj (finrank 𝕜 K)]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.1011570
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K✝ : Submodule 𝕜 E
inst✝ : FiniteDimensional 𝕜 E
K : Submodule 𝕜 E
n : ℕ
h_dim : finrank 𝕜 { x // x ∈ K } + n = finrank 𝕜 E
⊢ finrank 𝕜 { x // x ∈ Kᗮ } = n

tactic: simp [Submodule.finrank_add_finrank_orthogonal, h_dim]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.1011570
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K✝ : Submodule 𝕜 E
inst✝ : FiniteDimensional 𝕜 E
K : Submodule 𝕜 E
n : ℕ
h_dim : finrank 𝕜 { x // x ∈ K } + n = finrank 𝕜 E
⊢ finrank 𝕜 { x // x ∈ K } + finrank 𝕜 { x // x ∈ Kᗮ } = finrank 𝕜 { x // x ∈ K } + n
Theorem: vsub_right_cancel
File: Mathlib/Algebra/AddTorsor.lean

tactic: refine' vadd_left_cancel (p -ᵥ p2) _
state_before: G : Type u_1
P : Type u_2
inst✝ : AddGroup G
T : AddTorsor G P
p1 p2 p : P
h : p -ᵥ p1 = p -ᵥ p2
⊢ p1 = p2

tactic: rw [vsub_vadd, ← h, vsub_vadd]
state_before: G : Type u_1
P : Type u_2
inst✝ : AddGroup G
T : AddTorsor G P
p1 p2 p : P
h : p -ᵥ p1 = p -ᵥ p2
⊢ p -ᵥ p2 +ᵥ p1 = p -ᵥ p2 +ᵥ p2
Theorem: Set.Icc_inter_Icc_eq_singleton
File: Mathlib/Data/Set/Intervals/Basic.lean

tactic: rw [Icc_inter_Icc, sup_of_le_right hab, inf_of_le_left hbc, Icc_self]
state_before: α : Type u_1
β : Type ?u.183836
inst✝ : Lattice α
a b c a₁ a₂ b₁ b₂ : α
hab : a ≤ b
hbc : b ≤ c
⊢ Icc a b ∩ Icc b c = {b}
Theorem: List.mem_inter_of_mem_of_mem
File: Mathlib/Data/List/Lattice.lean

tactic: simpa using h₂
state_before: α : Type u_1
l l₁ l₂ : List α
p : α → Prop
a : α
inst✝ : DecidableEq α
h₁ : a ∈ l₁
h₂ : a ∈ l₂
⊢ decide (a ∈ l₂) = true
Theorem: Finset.sup'_map
File: Mathlib/Data/Finset/Lattice.lean

tactic: rw [← WithBot.coe_eq_coe, coe_sup', sup_map, coe_sup']
state_before: F : Type ?u.263099
α : Type u_3
β : Type u_2
γ : Type u_1
ι : Type ?u.263111
κ : Type ?u.263114
inst✝ : SemilatticeSup α
s✝ : Finset β
H : Finset.Nonempty s✝
f✝ : β → α
s : Finset γ
f : γ ↪ β
g : β → α
hs : Finset.Nonempty (map f s)
hs' : optParam (Finset.Nonempty s) (_ : Finset.Nonempty s)
⊢ sup' (map f s) hs g = sup' s hs' (g ∘ ↑f)

tactic: rfl
state_before: F : Type ?u.263099
α : Type u_3
β : Type u_2
γ : Type u_1
ι : Type ?u.263111
κ : Type ?u.263114
inst✝ : SemilatticeSup α
s✝ : Finset β
H : Finset.Nonempty s✝
f✝ : β → α
s : Finset γ
f : γ ↪ β
g : β → α
hs : Finset.Nonempty (map f s)
hs' : optParam (Finset.Nonempty s) (_ : Finset.Nonempty s)
⊢ sup s ((WithBot.some ∘ g) ∘ ↑f) = sup s (WithBot.some ∘ g ∘ ↑f)
Theorem: Real.cos_pi_div_thirty_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: trans cos (π / 2 ^ 5)
state_before: x : ℝ
⊢ cos (π / 32) = sqrt (2 + sqrt (2 + sqrt (2 + sqrt 2))) / 2

tactic: congr
state_before: x : ℝ
⊢ cos (π / 32) = cos (π / 2 ^ 5)

x : ℝ
⊢ cos (π / 2 ^ 5) = sqrt (2 + sqrt (2 + sqrt (2 + sqrt 2))) / 2

tactic: norm_num
state_before: case e_x.e_a
x : ℝ
⊢ 32 = 2 ^ 5

x : ℝ
⊢ cos (π / 2 ^ 5) = sqrt (2 + sqrt (2 + sqrt (2 + sqrt 2))) / 2

tactic: simp
state_before: x : ℝ
⊢ cos (π / 2 ^ 5) = sqrt (2 + sqrt (2 + sqrt (2 + sqrt 2))) / 2
Theorem: homology.π'_eq_π
File: Mathlib/CategoryTheory/Abelian/Homology.lean

tactic: dsimp [π', homologyIsoCokernelLift]
state_before: A : Type u
inst✝¹ : Category A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
⊢ (kernelSubobjectIso g).hom ≫ π' f g w = π f g w

tactic: simp only [← Category.assoc]
state_before: A : Type u
inst✝¹ : Category A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
⊢ (kernelSubobjectIso g).hom ≫
      cokernel.π (kernel.lift g f w) ≫
        ((cokernelIsoOfEq (_ : factorThruImage f ≫ imageToKernel' f g w = kernel.lift g f w)).inv ≫
            cokernel.desc (factorThruImage f ≫ imageToKernel' f g w) (cokernel.π (imageToKernel' f g w))
              (_ : (factorThruImage f ≫ imageToKernel' f g w) ≫ cokernel.π (imageToKernel' f g w) = 0)) ≫
          (homologyIsoCokernelImageToKernel' f g w).inv =
    π f g w

tactic: rw [Iso.comp_inv_eq]
state_before: A : Type u
inst✝¹ : Category A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
⊢ ((((kernelSubobjectIso g).hom ≫ cokernel.π (kernel.lift g f w)) ≫
          (cokernelIsoOfEq (_ : factorThruImage f ≫ imageToKernel' f g w = kernel.lift g f w)).inv) ≫
        cokernel.desc (factorThruImage f ≫ imageToKernel' f g w) (cokernel.π (imageToKernel' f g w))
          (_ : (factorThruImage f ≫ imageToKernel' f g w) ≫ cokernel.π (imageToKernel' f g w) = 0)) ≫
      (homologyIsoCokernelImageToKernel' f g w).inv =
    π f g w

tactic: dsimp [π, homologyIsoCokernelImageToKernel']
state_before: A : Type u
inst✝¹ : Category A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
⊢ (((kernelSubobjectIso g).hom ≫ cokernel.π (kernel.lift g f w)) ≫
        (cokernelIsoOfEq (_ : factorThruImage f ≫ imageToKernel' f g w = kernel.lift g f w)).inv) ≫
      cokernel.desc (factorThruImage f ≫ imageToKernel' f g w) (cokernel.π (imageToKernel' f g w))
        (_ : (factorThruImage f ≫ imageToKernel' f g w) ≫ cokernel.π (imageToKernel' f g w) = 0) =
    π f g w ≫ (homologyIsoCokernelImageToKernel' f g w).hom

tactic: simp
state_before: A : Type u
inst✝¹ : Category A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
⊢ (((kernelSubobjectIso g).hom ≫ cokernel.π (kernel.lift g f w)) ≫
        (cokernelIsoOfEq (_ : factorThruImage f ≫ imageToKernel' f g w = kernel.lift g f w)).inv) ≫
      cokernel.desc (factorThruImage f ≫ imageToKernel' f g w) (cokernel.π (imageToKernel' f g w))
        (_ : (factorThruImage f ≫ imageToKernel' f g w) ≫ cokernel.π (imageToKernel' f g w) = 0) =
    cokernel.π (imageToKernel f g w) ≫
      cokernel.map (imageToKernel f g w) (imageToKernel' f g w) (imageSubobjectIso f).hom (kernelSubobjectIso g).hom
        (_ : imageToKernel f g w ≫ (kernelSubobjectIso g).hom = (imageSubobjectIso f).hom ≫ imageToKernel' f g w)
Theorem: Cycle.toFinset_eq_nil
File: Mathlib/Data/List/Cycle.lean

tactic: simp
state_before: α : Type u_1
inst✝ : DecidableEq α
s : Cycle α
⊢ ∀ (a : List α), toFinset (Quotient.mk'' a) = ∅ ↔ Quotient.mk'' a = nil
Theorem: ENNReal.zero_rpow_mul_self
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: rw [zero_rpow_def]
state_before: y : ℝ
⊢ 0 ^ y * 0 ^ y = 0 ^ y

tactic: split_ifs
state_before: y : ℝ
⊢ ((if 0 < y then 0 else if y = 0 then 1 else ⊤) * if 0 < y then 0 else if y = 0 then 1 else ⊤) =
    if 0 < y then 0 else if y = 0 then 1 else ⊤

tactic: exacts [MulZeroClass.zero_mul _, one_mul _, top_mul_top]
state_before: case inl
y : ℝ
h✝ : 0 < y
⊢ 0 * 0 = 0

case inr.inl
y : ℝ
h✝¹ : ¬0 < y
h✝ : y = 0
⊢ 1 * 1 = 1

case inr.inr
y : ℝ
h✝¹ : ¬0 < y
h✝ : ¬y = 0
⊢ ⊤ * ⊤ = ⊤
Theorem: Finset.centerMass_le_sup
File: Mathlib/Analysis/Convex/Combination.lean

tactic: rintro rfl
state_before: R : Type ?u.72208
E : Type ?u.72211
F : Type ?u.72214
ι : Type ?u.72217
ι' : Type ?u.72220
α : Type ?u.72223
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι
c : R
t : Finset ι
w✝ : ι → R
z : ι → E
s : Finset ι
f : ι → α
w : ι → R
hw₀ : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw₁ : 0 < ∑ i in s, w i
⊢ s ≠ ∅

tactic: simp at hw₁
state_before: R : Type ?u.72208
E : Type ?u.72211
F : Type ?u.72214
ι : Type ?u.72217
ι' : Type ?u.72220
α : Type ?u.72223
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s : Set E
i j : ι
c : R
t : Finset ι
w✝ : ι → R
z : ι → E
f : ι → α
w : ι → R
hw₀ : ∀ (i : ι), i ∈ ∅ → 0 ≤ w i
hw₁ : 0 < ∑ i in ∅, w i
⊢ False

tactic: rw [centerMass, inv_smul_le_iff hw₁, sum_smul]
state_before: R : Type u_2
E : Type ?u.72211
F : Type ?u.72214
ι : Type u_1
ι' : Type ?u.72220
α : Type u_3
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι
c : R
t : Finset ι
w✝ : ι → R
z : ι → E
s : Finset ι
f : ι → α
w : ι → R
hw₀ : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw₁ : 0 < ∑ i in s, w i
⊢ centerMass s w f ≤ sup' s (_ : Finset.Nonempty s) f

tactic: exact sum_le_sum fun i hi => smul_le_smul_of_nonneg (le_sup' _ hi) <| hw₀ i hi
state_before: R : Type u_2
E : Type ?u.72211
F : Type ?u.72214
ι : Type u_1
ι' : Type ?u.72220
α : Type u_3
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι
c : R
t : Finset ι
w✝ : ι → R
z : ι → E
s : Finset ι
f : ι → α
w : ι → R
hw₀ : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw₁ : 0 < ∑ i in s, w i
⊢ ∑ i in s, w i • f i ≤ ∑ i in s, w i • sup' s (_ : Finset.Nonempty s) f
Theorem: RatFunc.div_smul
File: Mathlib/FieldTheory/RatFunc.lean

tactic: rw [← mk_eq_div, mk_smul, mk_eq_div]
state_before: K : Type u
inst✝⁴ : CommRing K
inst✝³ : IsDomain K
R : Type u_1
inst✝² : Monoid R
inst✝¹ : DistribMulAction R K[X]
inst✝ : IsScalarTower R K[X] K[X]
c : R
p q : K[X]
⊢ ↑(algebraMap K[X] (RatFunc K)) (c • p) / ↑(algebraMap K[X] (RatFunc K)) q =
    c • (↑(algebraMap K[X] (RatFunc K)) p / ↑(algebraMap K[X] (RatFunc K)) q)