tasksource/leandojo huggingface dataset:
Theorem: CategoryTheory.Limits.biproduct.map_matrix
File: Mathlib/CategoryTheory/Preadditive/Biproducts.lean

tactic: ext
state_before: C : Type u
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
J : Type
inst✝³ : Fintype J
f✝ : J → C
inst✝² : HasBiproduct f✝
K : Type
inst✝¹ : Fintype K
inst✝ : HasFiniteBiproducts C
f g : J → C
h : K → C
m : (k : J) → f k ⟶ g k
n : (j : J) → (k : K) → g j ⟶ h k
⊢ map m ≫ matrix n = matrix fun j k => m j ≫ n j k

tactic: simp
state_before: case w.w
C : Type u
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
J : Type
inst✝³ : Fintype J
f✝ : J → C
inst✝² : HasBiproduct f✝
K : Type
inst✝¹ : Fintype K
inst✝ : HasFiniteBiproducts C
f g : J → C
h : K → C
m : (k : J) → f k ⟶ g k
n : (j : J) → (k : K) → g j ⟶ h k
j✝¹ : J
j✝ : K
⊢ (ι (fun b => f b) j✝¹ ≫ map m ≫ matrix n) ≫ π (fun k => h k) j✝ =
    (ι (fun b => f b) j✝¹ ≫ matrix fun j k => m j ≫ n j k) ≫ π (fun k => h k) j✝
Theorem: PowerSeries.rescale_rescale
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: ext n
state_before: R : Type u_1
inst✝ : CommSemiring R
f : PowerSeries R
a b : R
⊢ ↑(rescale b) (↑(rescale a) f) = ↑(rescale (a * b)) f

tactic: simp_rw [coeff_rescale]
state_before: case h
R : Type u_1
inst✝ : CommSemiring R
f : PowerSeries R
a b : R
n : ℕ
⊢ ↑(coeff R n) (↑(rescale b) (↑(rescale a) f)) = ↑(coeff R n) (↑(rescale (a * b)) f)

tactic: rw [mul_pow, mul_comm _ (b ^ n), mul_assoc]
state_before: case h
R : Type u_1
inst✝ : CommSemiring R
f : PowerSeries R
a b : R
n : ℕ
⊢ b ^ n * (a ^ n * ↑(coeff R n) f) = (a * b) ^ n * ↑(coeff R n) f
Theorem: Int.modEq_and_modEq_iff_modEq_mul
File: Mathlib/Data/Int/ModEq.lean

tactic: rw [modEq_iff_dvd, modEq_iff_dvd] at h
state_before: m✝ n✝ a✝ b✝ c d a b m n : ℤ
hmn : Nat.coprime (natAbs m) (natAbs n)
h : a ≡ b [ZMOD m] ∧ a ≡ b [ZMOD n]
⊢ a ≡ b [ZMOD m * n]

tactic: rw [modEq_iff_dvd, ← natAbs_dvd, ← dvd_natAbs, coe_nat_dvd, natAbs_mul]
state_before: m✝ n✝ a✝ b✝ c d a b m n : ℤ
hmn : Nat.coprime (natAbs m) (natAbs n)
h : m ∣ b - a ∧ n ∣ b - a
⊢ a ≡ b [ZMOD m * n]

tactic: refine' hmn.mul_dvd_of_dvd_of_dvd _ _ <;> rw [← coe_nat_dvd, natAbs_dvd, dvd_natAbs] <;>
  tauto
state_before: m✝ n✝ a✝ b✝ c d a b m n : ℤ
hmn : Nat.coprime (natAbs m) (natAbs n)
h : m ∣ b - a ∧ n ∣ b - a
⊢ natAbs m * natAbs n ∣ natAbs (b - a)
Theorem: Finset.prod_finset_product
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: refine' Eq.trans _ (prod_sigma s t fun p => f (p.1, p.2))
state_before: ι : Type ?u.317398
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝ : CommMonoid β
r : Finset (γ × α)
s : Finset γ
t : γ → Finset α
h : ∀ (p : γ × α), p ∈ r ↔ p.fst ∈ s ∧ p.snd ∈ t p.fst
f : γ × α → β
⊢ ∏ p in r, f p = ∏ c in s, ∏ a in t c, f (c, a)

tactic: exact
  prod_bij' (fun p _hp => ⟨p.1, p.2⟩) (fun p => mem_sigma.mpr ∘ (h p).mp)
    (fun p hp => congr_arg f Prod.mk.eta.symm) (fun p _hp => (p.1, p.2))
    (fun p => (h (p.1, p.2)).mpr ∘ mem_sigma.mp) (fun p _hp => Prod.mk.eta) fun p _hp => p.eta
state_before: ι : Type ?u.317398
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝ : CommMonoid β
r : Finset (γ × α)
s : Finset γ
t : γ → Finset α
h : ∀ (p : γ × α), p ∈ r ↔ p.fst ∈ s ∧ p.snd ∈ t p.fst
f : γ × α → β
⊢ ∏ p in r, f p = ∏ x in Finset.sigma s t, f (x.fst, x.snd)
Theorem: lcm_mul_right
File: Mathlib/Algebra/GCDMonoid/Basic.lean

tactic: simp only [mul_comm, lcm_mul_left]
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NormalizedGCDMonoid α
a b c : α
⊢ lcm (b * a) (c * a) = lcm b c * ↑normalize a
Theorem: Convex.average_mem
File: Mathlib/Analysis/Convex/Integral.lean

tactic: have : IsProbabilityMeasure ((μ univ)⁻¹ • μ) := isProbabilityMeasureSmul hμ
state_before: α : Type u_1
E : Type u_2
F : Type ?u.245931
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ : MeasureTheory.Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
inst✝ : IsFiniteMeasure μ
hs : Convex ℝ s
hsc : IsClosed s
hμ : μ ≠ 0
hfs : ∀ᵐ (x : α) ∂μ, f x ∈ s
hfi : Integrable f
⊢ (⨍ (x : α), f x ∂μ) ∈ s

tactic: refine' hs.integral_mem hsc (ae_mono' _ hfs) hfi.to_average
state_before: α : Type u_1
E : Type u_2
F : Type ?u.245931
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ : MeasureTheory.Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
inst✝ : IsFiniteMeasure μ
hs : Convex ℝ s
hsc : IsClosed s
hμ : μ ≠ 0
hfs : ∀ᵐ (x : α) ∂μ, f x ∈ s
hfi : Integrable f
this : IsProbabilityMeasure ((↑↑μ univ)⁻¹ • μ)
⊢ (⨍ (x : α), f x ∂μ) ∈ s

tactic: exact AbsolutelyContinuous.smul (refl _) _
state_before: α : Type u_1
E : Type u_2
F : Type ?u.245931
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ : MeasureTheory.Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
inst✝ : IsFiniteMeasure μ
hs : Convex ℝ s
hsc : IsClosed s
hμ : μ ≠ 0
hfs : ∀ᵐ (x : α) ∂μ, f x ∈ s
hfi : Integrable f
this : IsProbabilityMeasure ((↑↑μ univ)⁻¹ • μ)
⊢ (↑↑μ univ)⁻¹ • μ ≪ μ
Theorem: List.forall₂_cons
File: Mathlib/Data/List/Forall2.lean

tactic: cases' h with h₁ h₂
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.620
δ : Type ?u.623
R S : α → β → Prop
P : γ → δ → Prop
Rₐ : α → α → Prop
a : α
b : β
l₁ : List α
l₂ : List β
h : Forall₂ R (a :: l₁) (b :: l₂)
⊢ R a b ∧ Forall₂ R l₁ l₂

tactic: constructor <;> assumption
state_before: case cons
α : Type u_1
β : Type u_2
γ : Type ?u.620
δ : Type ?u.623
R S : α → β → Prop
P : γ → δ → Prop
Rₐ : α → α → Prop
a : α
b : β
l₁ : List α
l₂ : List β
a✝¹ : R a b
a✝ : Forall₂ R l₁ l₂
⊢ R a b ∧ Forall₂ R l₁ l₂
Theorem: Turing.Tape.mk'_nth_nat
File: Mathlib/Computability/TuringMachine.lean

tactic: rw [← Tape.right₀_nth, Tape.mk'_right₀]
state_before: Γ : Type u_1
inst✝ : Inhabited Γ
L R : ListBlank Γ
n : ℕ
⊢ nth (mk' L R) ↑n = ListBlank.nth R n
Theorem: eq_bot_of_generator_maximal_map_eq_zero
File: Mathlib/LinearAlgebra/FreeModule/PID.lean

tactic: rw [Submodule.eq_bot_iff]
state_before: R : Type u
M : Type v
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_1
b✝ b : Basis ι R M
N : Submodule R M
ϕ : M →ₗ[R] R
hϕ : ∀ (ψ : M →ₗ[R] R), ¬map ϕ N < map ψ N
inst✝ : IsPrincipal (map ϕ N)
hgen : generator (map ϕ N) = 0
⊢ N = ⊥

tactic: intro x hx
state_before: R : Type u
M : Type v
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_1
b✝ b : Basis ι R M
N : Submodule R M
ϕ : M →ₗ[R] R
hϕ : ∀ (ψ : M →ₗ[R] R), ¬map ϕ N < map ψ N
inst✝ : IsPrincipal (map ϕ N)
hgen : generator (map ϕ N) = 0
⊢ ∀ (x : M), x ∈ N → x = 0

tactic: refine' b.ext_elem fun i ↦ _
state_before: R : Type u
M : Type v
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_1
b✝ b : Basis ι R M
N : Submodule R M
ϕ : M →ₗ[R] R
hϕ : ∀ (ψ : M →ₗ[R] R), ¬map ϕ N < map ψ N
inst✝ : IsPrincipal (map ϕ N)
hgen : generator (map ϕ N) = 0
x : M
hx : x ∈ N
⊢ x = 0

tactic: rw [(eq_bot_iff_generator_eq_zero _).mpr hgen] at hϕ
state_before: R : Type u
M : Type v
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_1
b✝ b : Basis ι R M
N : Submodule R M
ϕ : M →ₗ[R] R
hϕ : ∀ (ψ : M →ₗ[R] R), ¬map ϕ N < map ψ N
inst✝ : IsPrincipal (map ϕ N)
hgen : generator (map ϕ N) = 0
x : M
hx : x ∈ N
i : ι
⊢ ↑(↑b.repr x) i = ↑(↑b.repr 0) i

tactic: rw [LinearEquiv.map_zero, Finsupp.zero_apply]
state_before: R : Type u
M : Type v
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_1
b✝ b : Basis ι R M
N : Submodule R M
ϕ : M →ₗ[R] R
hϕ : ∀ (ψ : M →ₗ[R] R), ¬⊥ < map ψ N
inst✝ : IsPrincipal (map ϕ N)
hgen : generator (map ϕ N) = 0
x : M
hx : x ∈ N
i : ι
⊢ ↑(↑b.repr x) i = ↑(↑b.repr 0) i

tactic: exact
  (Submodule.eq_bot_iff _).mp (not_bot_lt_iff.1 <| hϕ (Finsupp.lapply i ∘ₗ ↑b.repr)) _
    ⟨x, hx, rfl⟩
state_before: R : Type u
M : Type v
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type u_1
b✝ b : Basis ι R M
N : Submodule R M
ϕ : M →ₗ[R] R
hϕ : ∀ (ψ : M →ₗ[R] R), ¬⊥ < map ψ N
inst✝ : IsPrincipal (map ϕ N)
hgen : generator (map ϕ N) = 0
x : M
hx : x ∈ N
i : ι
⊢ ↑(↑b.repr x) i = 0
Theorem: Real.Angle.sign_pi_add
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [add_comm, sign_add_pi]
state_before: θ : Angle
⊢ sign (↑π + θ) = -sign θ
Theorem: Multiset.inf_ndinsert
File: Mathlib/Data/Multiset/Lattice.lean

tactic: rw [← inf_dedup, dedup_ext.2, inf_dedup, inf_cons]
state_before: α : Type u_1
inst✝² : SemilatticeInf α
inst✝¹ : OrderTop α
inst✝ : DecidableEq α
a : α
s : Multiset α
⊢ inf (ndinsert a s) = a ⊓ inf s

tactic: simp
state_before: α : Type u_1
inst✝² : SemilatticeInf α
inst✝¹ : OrderTop α
inst✝ : DecidableEq α
a : α
s : Multiset α
⊢ ∀ (a_1 : α), a_1 ∈ ndinsert a s ↔ a_1 ∈ a ::ₘ s
Theorem: SimpleGraph.farFromTriangleFree.mono
File: Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean

tactic: gcongr
state_before: α : Type u_1
𝕜 : Type u_2
inst✝¹ : Fintype α
inst✝ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
hε : FarFromTriangleFree G ε
h : δ ≤ ε
⊢ δ * ↑(Fintype.card α ^ 2) ≤ ε * ↑(Fintype.card α ^ 2)
Theorem: Units.neg_smul
File: Mathlib/Algebra/Module/Basic.lean

tactic: rw [Units.smul_def, Units.val_neg, _root_.neg_smul, Units.smul_def]
state_before: α : Type ?u.106759
R : Type u_1
k : Type ?u.106765
S : Type ?u.106768
M : Type u_2
M₂ : Type ?u.106774
M₃ : Type ?u.106777
ι : Type ?u.106780
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
r s : R
x✝ y : M
u : Rˣ
x : M
⊢ -u • x = -(u • x)
Theorem: LinearMap.commute_mulLeft_right
File: Mathlib/Algebra/Algebra/Bilinear.lean

tactic: ext c
state_before: R : Type u_2
A : Type u_1
inst✝⁴ : CommSemiring R
inst✝³ : NonUnitalSemiring A
inst✝² : Module R A
inst✝¹ : SMulCommClass R A A
inst✝ : IsScalarTower R A A
a b : A
⊢ Commute (mulLeft R a) (mulRight R b)

tactic: exact (mul_assoc a c b).symm
state_before: case h
R : Type u_2
A : Type u_1
inst✝⁴ : CommSemiring R
inst✝³ : NonUnitalSemiring A
inst✝² : Module R A
inst✝¹ : SMulCommClass R A A
inst✝ : IsScalarTower R A A
a b c : A
⊢ ↑(mulLeft R a * mulRight R b) c = ↑(mulRight R b * mulLeft R a) c
Theorem: Commute.mul_geom_sum₂
File: Mathlib/Algebra/GeomSum.lean

tactic: rw [← neg_sub (y ^ n), ← h.mul_neg_geom_sum₂, ← neg_mul, neg_sub]
state_before: α : Type u
inst✝ : Ring α
x y : α
h : Commute x y
n : ℕ
⊢ (x - y) * ∑ i in range n, x ^ i * y ^ (n - 1 - i) = x ^ n - y ^ n
Theorem: HasCompactMulSupport.comp₂_left
File: Mathlib/Topology/Support.lean

tactic: rw [hasCompactMulSupport_iff_eventuallyEq] at hf hf₂⊢
state_before: X : Type ?u.16388
α : Type u_1
α' : Type ?u.16394
β : Type u_2
γ : Type u_3
δ : Type u_4
M : Type ?u.16406
E : Type ?u.16409
R : Type ?u.16412
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace α'
inst✝² : One β
inst✝¹ : One γ
inst✝ : One δ
g : β → γ
f : α → β
f₂ : α → γ
m : β → γ → δ
x : α
hf : HasCompactMulSupport f
hf₂ : HasCompactMulSupport f₂
hm : m 1 1 = 1
⊢ HasCompactMulSupport fun x => m (f x) (f₂ x)

tactic: filter_upwards [hf, hf₂]using fun x hx hx₂ => by simp_rw [hx, hx₂, Pi.one_apply, hm]
state_before: X : Type ?u.16388
α : Type u_1
α' : Type ?u.16394
β : Type u_2
γ : Type u_3
δ : Type u_4
M : Type ?u.16406
E : Type ?u.16409
R : Type ?u.16412
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace α'
inst✝² : One β
inst✝¹ : One γ
inst✝ : One δ
g : β → γ
f : α → β
f₂ : α → γ
m : β → γ → δ
x : α
hf : f =ᶠ[coclosedCompact α] 1
hf₂ : f₂ =ᶠ[coclosedCompact α] 1
hm : m 1 1 = 1
⊢ (fun x => m (f x) (f₂ x)) =ᶠ[coclosedCompact α] 1

tactic: simp_rw [hx, hx₂, Pi.one_apply, hm]
state_before: X : Type ?u.16388
α : Type u_1
α' : Type ?u.16394
β : Type u_2
γ : Type u_3
δ : Type u_4
M : Type ?u.16406
E : Type ?u.16409
R : Type ?u.16412
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace α'
inst✝² : One β
inst✝¹ : One γ
inst✝ : One δ
g : β → γ
f : α → β
f₂ : α → γ
m : β → γ → δ
x✝ : α
hf : f =ᶠ[coclosedCompact α] 1
hf₂ : f₂ =ᶠ[coclosedCompact α] 1
hm : m 1 1 = 1
x : α
hx : f x = OfNat.ofNat 1 x
hx₂ : f₂ x = OfNat.ofNat 1 x
⊢ m (f x) (f₂ x) = OfNat.ofNat 1 x
Theorem: bernsteinPolynomial.map
File: Mathlib/RingTheory/Polynomial/Bernstein.lean

tactic: simp [bernsteinPolynomial]
state_before: R : Type u_1
inst✝¹ : CommRing R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
n ν : ℕ
⊢ Polynomial.map f (bernsteinPolynomial R n ν) = bernsteinPolynomial S n ν
Theorem: Nat.le_of_lt_add_of_dvd
File: Mathlib/Data/Nat/Order/Lemmas.lean

tactic: rintro ⟨a, rfl⟩ ⟨b, rfl⟩
state_before: a b m n k : ℕ
h : a < b + n
⊢ n ∣ a → n ∣ b → a ≤ b

tactic: rw [← mul_add_one n] at h
state_before: case intro.intro
m n k a b : ℕ
h : n * a < n * b + n
⊢ n * a ≤ n * b

tactic: exact mul_le_mul_left' (lt_succ_iff.1 <| lt_of_mul_lt_mul_left h bot_le) _
state_before: case intro.intro
m n k a b : ℕ
h : n * a < n * (b + 1)
⊢ n * a ≤ n * b
Theorem: MeasureTheory.FinStronglyMeasurable.const_smul
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: refine' ⟨fun n => c • hf.approx n, fun n => _, fun x => (hf.tendsto_approx x).const_smul c⟩
state_before: α : Type u_3
β : Type u_2
γ : Type ?u.268899
ι : Type ?u.268902
inst✝⁶ : Countable ι
m0 : MeasurableSpace α
μ : Measure α
f g : α → β
inst✝⁵ : TopologicalSpace β
𝕜 : Type u_1
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : AddMonoid β
inst✝² : Monoid 𝕜
inst✝¹ : DistribMulAction 𝕜 β
inst✝ : ContinuousSMul 𝕜 β
hf : FinStronglyMeasurable f μ
c : 𝕜
⊢ FinStronglyMeasurable (c • f) μ

tactic: rw [SimpleFunc.coe_smul]
state_before: α : Type u_3
β : Type u_2
γ : Type ?u.268899
ι : Type ?u.268902
inst✝⁶ : Countable ι
m0 : MeasurableSpace α
μ : Measure α
f g : α → β
inst✝⁵ : TopologicalSpace β
𝕜 : Type u_1
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : AddMonoid β
inst✝² : Monoid 𝕜
inst✝¹ : DistribMulAction 𝕜 β
inst✝ : ContinuousSMul 𝕜 β
hf : FinStronglyMeasurable f μ
c : 𝕜
n : ℕ
⊢ ↑↑μ (support ↑((fun n => c • FinStronglyMeasurable.approx hf n) n)) < ⊤

tactic: refine' (measure_mono (support_smul_subset_right c _)).trans_lt (hf.fin_support_approx n)
state_before: α : Type u_3
β : Type u_2
γ : Type ?u.268899
ι : Type ?u.268902
inst✝⁶ : Countable ι
m0 : MeasurableSpace α
μ : Measure α
f g : α → β
inst✝⁵ : TopologicalSpace β
𝕜 : Type u_1
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : AddMonoid β
inst✝² : Monoid 𝕜
inst✝¹ : DistribMulAction 𝕜 β
inst✝ : ContinuousSMul 𝕜 β
hf : FinStronglyMeasurable f μ
c : 𝕜
n : ℕ
⊢ ↑↑μ (support (c • ↑(FinStronglyMeasurable.approx hf n))) < ⊤
Theorem: convexHull_eq_union
File: Mathlib/Analysis/Convex/Caratheodory.lean

tactic: apply Set.Subset.antisymm
state_before: 𝕜 : Type u_1
E : Type u
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
⊢ ↑(convexHull 𝕜).toOrderHom s =
    ⋃ (t : Finset E) (_ : ↑t ⊆ s) (_ : AffineIndependent 𝕜 Subtype.val), ↑(convexHull 𝕜).toOrderHom ↑t

tactic: intro x hx
state_before: case h₁
𝕜 : Type u_1
E : Type u
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
⊢ ↑(convexHull 𝕜).toOrderHom s ⊆
    ⋃ (t : Finset E) (_ : ↑t ⊆ s) (_ : AffineIndependent 𝕜 Subtype.val), ↑(convexHull 𝕜).toOrderHom ↑t

tactic: simp only [exists_prop, Set.mem_iUnion]
state_before: case h₁
𝕜 : Type u_1
E : Type u
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
x : E
hx : x ∈ ↑(convexHull 𝕜).toOrderHom s
⊢ x ∈ ⋃ (t : Finset E) (_ : ↑t ⊆ s) (_ : AffineIndependent 𝕜 Subtype.val), ↑(convexHull 𝕜).toOrderHom ↑t

tactic: exact ⟨Caratheodory.minCardFinsetOfMemConvexHull hx,
  Caratheodory.minCardFinsetOfMemConvexHull_subseteq hx,
  Caratheodory.affineIndependent_minCardFinsetOfMemConvexHull hx,
  Caratheodory.mem_minCardFinsetOfMemConvexHull hx⟩
state_before: case h₁
𝕜 : Type u_1
E : Type u
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
x : E
hx : x ∈ ↑(convexHull 𝕜).toOrderHom s
⊢ ∃ i, ↑i ⊆ s ∧ AffineIndependent 𝕜 Subtype.val ∧ x ∈ ↑(convexHull 𝕜).toOrderHom ↑i

tactic: iterate 3 convert Set.iUnion_subset _; intro
state_before: case h₂
𝕜 : Type u_1
E : Type u
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
⊢ (⋃ (t : Finset E) (_ : ↑t ⊆ s) (_ : AffineIndependent 𝕜 Subtype.val), ↑(convexHull 𝕜).toOrderHom ↑t) ⊆
    ↑(convexHull 𝕜).toOrderHom s

tactic: exact convexHull_mono ‹_›
state_before: case h₂.convert_5.convert_5.convert_5
𝕜 : Type u_1
E : Type u
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
i✝² : Finset E
i✝¹ : ↑i✝² ⊆ s
i✝ : AffineIndependent 𝕜 Subtype.val
⊢ ↑(convexHull 𝕜).toOrderHom ↑i✝² ⊆ ↑(convexHull 𝕜).toOrderHom s

tactic: convert Set.iUnion_subset _
state_before: case h₂.convert_5.convert_5
𝕜 : Type u_1
E : Type u
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
i✝¹ : Finset E
i✝ : ↑i✝¹ ⊆ s
⊢ (⋃ (_ : AffineIndependent 𝕜 Subtype.val), ↑(convexHull 𝕜).toOrderHom ↑i✝¹) ⊆ ↑(convexHull 𝕜).toOrderHom s

tactic: intro
state_before: case h₂.convert_5.convert_5.convert_5
𝕜 : Type u_1
E : Type u
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
i✝¹ : Finset E
i✝ : ↑i✝¹ ⊆ s
⊢ AffineIndependent 𝕜 Subtype.val → ↑(convexHull 𝕜).toOrderHom ↑i✝¹ ⊆ ↑(convexHull 𝕜).toOrderHom s
Theorem: Sum.getLeft_swap
File: Mathlib/Data/Sum/Basic.lean

tactic: cases x <;> rfl
state_before: α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type ?u.23182
δ : Type ?u.23185
x : α ⊕ β
⊢ getLeft (swap x) = getRight x
Theorem: PythagoreanTriple.mul_iff
File: Mathlib/NumberTheory/PythagoreanTriples.lean

tactic: refine' ⟨_, fun h => h.mul k⟩
state_before: x y z : ℤ
h : PythagoreanTriple x y z
k : ℤ
hk : k ≠ 0
⊢ PythagoreanTriple (k * x) (k * y) (k * z) ↔ PythagoreanTriple x y z

tactic: simp only [PythagoreanTriple]
state_before: x y z : ℤ
h : PythagoreanTriple x y z
k : ℤ
hk : k ≠ 0
⊢ PythagoreanTriple (k * x) (k * y) (k * z) → PythagoreanTriple x y z

tactic: intro h
state_before: x y z : ℤ
h : PythagoreanTriple x y z
k : ℤ
hk : k ≠ 0
⊢ k * x * (k * x) + k * y * (k * y) = k * z * (k * z) → x * x + y * y = z * z

tactic: rw [← mul_left_inj' (mul_ne_zero hk hk)]
state_before: x y z : ℤ
h✝ : PythagoreanTriple x y z
k : ℤ
hk : k ≠ 0
h : k * x * (k * x) + k * y * (k * y) = k * z * (k * z)
⊢ x * x + y * y = z * z

tactic: convert h using 1 <;> ring
state_before: x y z : ℤ
h✝ : PythagoreanTriple x y z
k : ℤ
hk : k ≠ 0
h : k * x * (k * x) + k * y * (k * y) = k * z * (k * z)
⊢ (x * x + y * y) * (k * k) = z * z * (k * k)
Theorem: Set.ncard_pos
File: Mathlib/Data/Set/Ncard.lean

tactic: rw [pos_iff_ne_zero, Ne.def, ncard_eq_zero hs, nonempty_iff_ne_empty]
state_before: α : Type u_1
β : Type ?u.6628
s t : Set α
a b x y : α
f : α → β
hs : autoParam (Set.Finite s) _auto✝
⊢ 0 < ncard s ↔ Set.Nonempty s
Theorem: Cardinal.nsmul_lt_aleph0_iff
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: simpa using nat_lt_aleph0 0
state_before: case zero
α β : Type u
a : Cardinal
⊢ Nat.zero • a < ℵ₀ ↔ Nat.zero = 0 ∨ a < ℵ₀

tactic: simp only [Nat.succ_ne_zero, false_or_iff]
state_before: case succ
α β : Type u
a : Cardinal
n : ℕ
⊢ Nat.succ n • a < ℵ₀ ↔ Nat.succ n = 0 ∨ a < ℵ₀

tactic: induction' n with n ih
state_before: case succ
α β : Type u
a : Cardinal
n : ℕ
⊢ Nat.succ n • a < ℵ₀ ↔ a < ℵ₀

tactic: rw [succ_nsmul, add_lt_aleph0_iff, ih, and_self_iff]
state_before: case succ.succ
α β : Type u
a : Cardinal
n : ℕ
ih : Nat.succ n • a < ℵ₀ ↔ a < ℵ₀
⊢ Nat.succ (Nat.succ n) • a < ℵ₀ ↔ a < ℵ₀

tactic: simp
state_before: case succ.zero
α β : Type u
a : Cardinal
⊢ Nat.succ Nat.zero • a < ℵ₀ ↔ a < ℵ₀
Theorem: QuaternionAlgebra.finrank_eq_four
File: Mathlib/Algebra/Quaternion.lean

tactic: rw [FiniteDimensional.finrank, rank_eq_four, Cardinal.toNat_ofNat]
state_before: S : Type ?u.259837
T : Type ?u.259840
R : Type u_1
inst✝¹ : CommRing R
c₁ c₂ r x y z : R
a b c : ℍ[R,c₁,c₂]
inst✝ : StrongRankCondition R
⊢ FiniteDimensional.finrank R ℍ[R,c₁,c₂] = 4
Theorem: Finset.prod_subtype
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: subst p
state_before: ι : Type ?u.383791
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝ : CommMonoid β
p : α → Prop
F : Fintype (Subtype p)
s : Finset α
h : ∀ (x : α), x ∈ s ↔ p x
f : α → β
this : (fun x => x ∈ s) = p
⊢ ∏ a in s, f a = ∏ a : Subtype p, f ↑a

tactic: rw [← prod_coe_sort]
state_before: ι : Type ?u.383791
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝ : CommMonoid β
s : Finset α
f : α → β
F : Fintype { x // x ∈ s }
h : ∀ (x : α), x ∈ s ↔ (fun x => x ∈ s) x
⊢ ∏ a in s, f a = ∏ a : { x // x ∈ s }, f ↑a

tactic: congr!
state_before: ι : Type ?u.383791
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝ : CommMonoid β
s : Finset α
f : α → β
F : Fintype { x // x ∈ s }
h : ∀ (x : α), x ∈ s ↔ (fun x => x ∈ s) x
⊢ ∏ i : { x // x ∈ s }, f ↑i = ∏ a : { x // x ∈ s }, f ↑a
Theorem: continuousOn_iff_isClosed
File: Mathlib/Topology/ContinuousOn.lean

tactic: have : ∀ t, IsClosed (s.restrict f ⁻¹' t) ↔ ∃ u : Set α, IsClosed u ∧ f ⁻¹' t ∩ s = u ∩ s := by
  intro t
  rw [isClosed_induced_iff, Set.restrict_eq, Set.preimage_comp]
  simp only [Subtype.preimage_coe_eq_preimage_coe_iff, eq_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.315580
δ : Type ?u.315583
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
⊢ ContinuousOn f s ↔ ∀ (t : Set β), IsClosed t → ∃ u, IsClosed u ∧ f ⁻¹' t ∩ s = u ∩ s

tactic: rw [continuousOn_iff_continuous_restrict, continuous_iff_isClosed]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.315580
δ : Type ?u.315583
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
this : ∀ (t : Set β), IsClosed (restrict s f ⁻¹' t) ↔ ∃ u, IsClosed u ∧ f ⁻¹' t ∩ s = u ∩ s
⊢ ContinuousOn f s ↔ ∀ (t : Set β), IsClosed t → ∃ u, IsClosed u ∧ f ⁻¹' t ∩ s = u ∩ s

tactic: simp only [this]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.315580
δ : Type ?u.315583
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
this : ∀ (t : Set β), IsClosed (restrict s f ⁻¹' t) ↔ ∃ u, IsClosed u ∧ f ⁻¹' t ∩ s = u ∩ s
⊢ (∀ (s_1 : Set β), IsClosed s_1 → IsClosed (restrict s f ⁻¹' s_1)) ↔
    ∀ (t : Set β), IsClosed t → ∃ u, IsClosed u ∧ f ⁻¹' t ∩ s = u ∩ s

tactic: intro t
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.315580
δ : Type ?u.315583
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
⊢ ∀ (t : Set β), IsClosed (restrict s f ⁻¹' t) ↔ ∃ u, IsClosed u ∧ f ⁻¹' t ∩ s = u ∩ s

tactic: rw [isClosed_induced_iff, Set.restrict_eq, Set.preimage_comp]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.315580
δ : Type ?u.315583
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
t : Set β
⊢ IsClosed (restrict s f ⁻¹' t) ↔ ∃ u, IsClosed u ∧ f ⁻¹' t ∩ s = u ∩ s

tactic: simp only [Subtype.preimage_coe_eq_preimage_coe_iff, eq_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.315580
δ : Type ?u.315583
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
t : Set β
⊢ (∃ t_1, IsClosed t_1 ∧ Subtype.val ⁻¹' t_1 = Subtype.val ⁻¹' (f ⁻¹' t)) ↔ ∃ u, IsClosed u ∧ f ⁻¹' t ∩ s = u ∩ s
Theorem: Turing.ListBlank.tail_map
File: Mathlib/Computability/TuringMachine.lean

tactic: conv => lhs; rw [← ListBlank.cons_head_tail l]
state_before: Γ : Type u_1
Γ' : Type u_2
inst✝¹ : Inhabited Γ
inst✝ : Inhabited Γ'
f : PointedMap Γ Γ'
l : ListBlank Γ
⊢ tail (map f l) = map f (tail l)

tactic: exact Quotient.inductionOn' l fun a ↦ rfl
state_before: Γ : Type u_1
Γ' : Type u_2
inst✝¹ : Inhabited Γ
inst✝ : Inhabited Γ'
f : PointedMap Γ Γ'
l : ListBlank Γ
⊢ tail (map f (cons (head l) (tail l))) = map f (tail l)