tasksource/leandojo huggingface dataset:
Theorem: nhdsWithin_extChartAt_target_eq'
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rwa [← extChartAt_source I]
state_before: 𝕜 : Type u_3
E : Type u_2
M : Type u_1
H : Type u_4
E' : Type ?u.200682
M' : Type ?u.200685
H' : Type ?u.200688
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x : M
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
y : M
hy : y ∈ (extChartAt I x).source
⊢ y ∈ (chartAt H x).toLocalEquiv.source
Theorem: MeasureTheory.StronglyMeasurable.prod_mk
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: refine' ⟨fun n => SimpleFunc.pair (hf.approx n) (hg.approx n), fun x => _⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type ?u.69940
inst✝² : Countable ι
f✝ g✝ : α → β
m : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
f : α → β
g : α → γ
hf : StronglyMeasurable f
hg : StronglyMeasurable g
⊢ StronglyMeasurable fun x => (f x, g x)

tactic: rw [nhds_prod_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type ?u.69940
inst✝² : Countable ι
f✝ g✝ : α → β
m : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
f : α → β
g : α → γ
hf : StronglyMeasurable f
hg : StronglyMeasurable g
x : α
⊢ Tendsto (fun n => ↑((fun n => SimpleFunc.pair (StronglyMeasurable.approx hf n) (StronglyMeasurable.approx hg n)) n) x)
    atTop (𝓝 ((fun x => (f x, g x)) x))

tactic: exact Tendsto.prod_mk (hf.tendsto_approx x) (hg.tendsto_approx x)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type ?u.69940
inst✝² : Countable ι
f✝ g✝ : α → β
m : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
f : α → β
g : α → γ
hf : StronglyMeasurable f
hg : StronglyMeasurable g
x : α
⊢ Tendsto (fun n => ↑((fun n => SimpleFunc.pair (StronglyMeasurable.approx hf n) (StronglyMeasurable.approx hg n)) n) x)
    atTop (𝓝 (f x) ×ˢ 𝓝 (g x))
Theorem: Set.ncard_singleton_inter
File: Mathlib/Data/Set/Ncard.lean

tactic: rw [← inter_self {a}, inter_assoc, ncard_eq_toFinset_card _, Finite.toFinset_inter,
  Finite.toFinset_singleton]
state_before: α : Type u_1
β : Type ?u.7918
s t : Set α
a b x y : α
f : α → β
⊢ ncard ({a} ∩ s) ≤ 1

tactic: all_goals toFinite_tac
state_before: case ht
α : Type u_1
β : Type ?u.7918
s t : Set α
a b x y : α
f : α → β
⊢ Set.Finite ({a} ∩ s)

case ht
α : Type u_1
β : Type ?u.7918
s t : Set α
a b x y : α
f : α → β
⊢ Set.Finite ({a} ∩ s)

tactic: apply Finset.card_singleton_inter
state_before: α : Type u_1
β : Type ?u.7918
s t : Set α
a b x y : α
f : α → β
⊢ Finset.card ({a} ∩ Finite.toFinset ?ht) ≤ 1

tactic: toFinite_tac
state_before: case ht
α : Type u_1
β : Type ?u.7918
s t : Set α
a b x y : α
f : α → β
⊢ Set.Finite ({a} ∩ s)
Theorem: circleIntegrable_sub_inv_iff
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: simp only [← zpow_neg_one, circleIntegrable_sub_zpow_iff]
state_before: E : Type ?u.440103
inst✝ : NormedAddCommGroup E
c w : ℂ
R : ℝ
⊢ CircleIntegrable (fun z => (z - w)⁻¹) c R ↔ R = 0 ∨ ¬w ∈ sphere c (Abs.abs R)

tactic: norm_num
state_before: E : Type ?u.440103
inst✝ : NormedAddCommGroup E
c w : ℂ
R : ℝ
⊢ R = 0 ∨ False ∨ ¬w ∈ sphere c (Abs.abs R) ↔ R = 0 ∨ ¬w ∈ sphere c (Abs.abs R)
Theorem: Stream'.WSeq.dropn_think
File: Mathlib/Data/Seq/WSeq.lean

tactic: induction n <;> simp [*, drop]
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
n : ℕ
⊢ drop (think s) n = think (drop s n)
Theorem: Option.map_bind'
File: Mathlib/Data/Option/Basic.lean

tactic: cases x <;> simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type ?u.5541
p : α → Prop
f✝ : (a : α) → p a → β
x✝ : Option α
f : β → γ
x : Option α
g : α → Option β
⊢ Option.map f (Option.bind x g) = Option.bind x fun a => Option.map f (g a)
Theorem: Finset.sum_powerset_apply_card
File: Mathlib/Data/Nat/Choose/Sum.lean

tactic: trans ∑ m in range (x.card + 1), ∑ j in x.powerset.filter fun z ↦ z.card = m, f j.card
state_before: R : Type ?u.207470
α : Type u_1
β : Type u_2
inst✝ : AddCommMonoid α
f : ℕ → α
x : Finset β
⊢ ∑ m in powerset x, f (card m) = ∑ m in range (card x + 1), Nat.choose (card x) m • f m

tactic: refine' (sum_fiberwise_of_maps_to _ _).symm
state_before: R : Type ?u.207470
α : Type u_1
β : Type u_2
inst✝ : AddCommMonoid α
f : ℕ → α
x : Finset β
⊢ ∑ m in powerset x, f (card m) =
    ∑ m in range (card x + 1), ∑ j in filter (fun z => card z = m) (powerset x), f (card j)

tactic: intro y hy
state_before: R : Type ?u.207470
α : Type u_1
β : Type u_2
inst✝ : AddCommMonoid α
f : ℕ → α
x : Finset β
⊢ ∀ (x_1 : Finset β), x_1 ∈ powerset x → card x_1 ∈ range (card x + 1)

tactic: rw [mem_range, Nat.lt_succ_iff]
state_before: R : Type ?u.207470
α : Type u_1
β : Type u_2
inst✝ : AddCommMonoid α
f : ℕ → α
x y : Finset β
hy : y ∈ powerset x
⊢ card y ∈ range (card x + 1)

tactic: rw [mem_powerset] at hy
state_before: R : Type ?u.207470
α : Type u_1
β : Type u_2
inst✝ : AddCommMonoid α
f : ℕ → α
x y : Finset β
hy : y ∈ powerset x
⊢ card y ≤ card x

tactic: exact card_le_of_subset hy
state_before: R : Type ?u.207470
α : Type u_1
β : Type u_2
inst✝ : AddCommMonoid α
f : ℕ → α
x y : Finset β
hy : y ⊆ x
⊢ card y ≤ card x

tactic: refine' sum_congr rfl fun y _ ↦ _
state_before: R : Type ?u.207470
α : Type u_1
β : Type u_2
inst✝ : AddCommMonoid α
f : ℕ → α
x : Finset β
⊢ ∑ m in range (card x + 1), ∑ j in filter (fun z => card z = m) (powerset x), f (card j) =
    ∑ m in range (card x + 1), Nat.choose (card x) m • f m

tactic: rw [← card_powersetLen, ← sum_const]
state_before: R : Type ?u.207470
α : Type u_1
β : Type u_2
inst✝ : AddCommMonoid α
f : ℕ → α
x : Finset β
y : ℕ
x✝ : y ∈ range (card x + 1)
⊢ ∑ j in filter (fun z => card z = y) (powerset x), f (card j) = Nat.choose (card x) y • f y

tactic: refine' sum_congr powersetLen_eq_filter.symm fun z hz ↦ _
state_before: R : Type ?u.207470
α : Type u_1
β : Type u_2
inst✝ : AddCommMonoid α
f : ℕ → α
x : Finset β
y : ℕ
x✝ : y ∈ range (card x + 1)
⊢ ∑ j in filter (fun z => card z = y) (powerset x), f (card j) = ∑ _x in powersetLen y x, f y

tactic: rw [(mem_powersetLen.1 hz).2]
state_before: R : Type ?u.207470
α : Type u_1
β : Type u_2
inst✝ : AddCommMonoid α
f : ℕ → α
x : Finset β
y : ℕ
x✝ : y ∈ range (card x + 1)
z : Finset β
hz : z ∈ powersetLen y x
⊢ f (card z) = f y
Theorem: Matrix.trace_col_mul_row
File: Mathlib/LinearAlgebra/Matrix/Trace.lean

tactic: apply Finset.sum_congr rfl
state_before: ι : Type ?u.34793
m : Type ?u.34796
n : Type u_2
p : Type ?u.34802
α : Type ?u.34805
R : Type u_1
S : Type ?u.34811
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : Fintype p
inst✝ : NonUnitalNonAssocSemiring R
a b : n → R
⊢ trace (col a ⬝ row b) = a ⬝ᵥ b

tactic: simp [mul_apply]
state_before: ι : Type ?u.34793
m : Type ?u.34796
n : Type u_2
p : Type ?u.34802
α : Type ?u.34805
R : Type u_1
S : Type ?u.34811
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : Fintype p
inst✝ : NonUnitalNonAssocSemiring R
a b : n → R
⊢ ∀ (x : n), x ∈ Finset.univ → diag (col a ⬝ row b) x = a x * b x
Theorem: Hyperreal.IsSt.infinitesimal_sub
File: Mathlib/Data/Real/Hyperreal.lean

tactic: simpa only [sub_self] using hxr.sub (isSt_refl_real r)
state_before: x : ℝ*
r : ℝ
hxr : IsSt x r
⊢ Infinitesimal (x - ↑r)
Theorem: PNat.Coprime.factor_eq_gcd_right_right
File: Mathlib/Data/PNat/Prime.lean

tactic: rw [gcd_comm]
state_before: a b m n : ℕ+
cop : Coprime m n
am : a ∣ m
bn : b ∣ n
⊢ a = gcd m (b * a)

tactic: apply Coprime.factor_eq_gcd_right cop am bn
state_before: a b m n : ℕ+
cop : Coprime m n
am : a ∣ m
bn : b ∣ n
⊢ a = gcd (b * a) m
Theorem: Std.RBNode.lowerBound?_of_some
File: Std/Data/RBMap/Lemmas.lean

tactic: simp
state_before: α : Type u_1
cut : α → Ordering
y : α
t : RBNode α
⊢ ∃ x, x ∈ lowerBound? cut t (some y)

tactic: induction t generalizing y <;> simp [lowerBound?]
state_before: α : Type u_1
cut : α → Ordering
y : α
t : RBNode α
⊢ ∃ x, lowerBound? cut t (some y) = some x

tactic: split <;> simp [*]
state_before: case node
α : Type u_1
cut : α → Ordering
c✝ : RBColor
l✝ : RBNode α
v✝ : α
r✝ : RBNode α
l_ih✝ : ∀ {y : α}, ∃ x, lowerBound? cut l✝ (some y) = some x
r_ih✝ : ∀ {y : α}, ∃ x, lowerBound? cut r✝ (some y) = some x
y : α
⊢ ∃ x,
    (match cut v✝ with
      | Ordering.lt => lowerBound? cut l✝ (some y)
      | Ordering.gt => lowerBound? cut r✝ (some v✝)
      | Ordering.eq => some v✝) =
      some x
Theorem: Algebra.coe_bot
File: Mathlib/Algebra/Algebra/Subalgebra/Basic.lean

tactic: simp [Set.ext_iff, Algebra.mem_bot]
state_before: R : Type u
A : Type v
B : Type w
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : Semiring B
inst✝ : Algebra R B
⊢ ↑⊥ = Set.range ↑(algebraMap R A)
Theorem: gramSchmidt_def'
File: Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean

tactic: rw [gramSchmidt_def, sub_add_cancel]
state_before: 𝕜 : Type u_2
E : Type u_1
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
ι : Type u_3
inst✝² : LinearOrder ι
inst✝¹ : LocallyFiniteOrderBot ι
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
f : ι → E
n : ι
⊢ f n = gramSchmidt 𝕜 f n + ∑ i in Iio n, ↑(↑(orthogonalProjection (span 𝕜 {gramSchmidt 𝕜 f i})) (f n))
Theorem: PEquiv.single_trans_of_mem
File: Mathlib/Data/PEquiv.lean

tactic: ext
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
a : α
b : β
c : γ
f : β ≃. γ
h : c ∈ ↑f b
⊢ PEquiv.trans (single a b) f = single a c

tactic: dsimp [single, PEquiv.trans]
state_before: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
a : α
b : β
c : γ
f : β ≃. γ
h : c ∈ ↑f b
x✝ : α
a✝ : γ
⊢ a✝ ∈ ↑(PEquiv.trans (single a b) f) x✝ ↔ a✝ ∈ ↑(single a c) x✝

tactic: split_ifs <;> simp_all
state_before: case h.a
α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
a : α
b : β
c : γ
f : β ≃. γ
h : c ∈ ↑f b
x✝ : α
a✝ : γ
⊢ a✝ ∈ Option.bind (if x✝ = a then some b else none) ↑f ↔ a✝ ∈ if x✝ = a then some c else none
Theorem: Finsupp.lcongr_symm
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: ext
state_before: α : Type ?u.567819
M : Type u_4
N : Type u_5
P : Type ?u.567828
R : Type u_3
S : Type ?u.567834
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
⊢ LinearEquiv.symm (lcongr e₁ e₂) = lcongr e₁.symm (LinearEquiv.symm e₂)

tactic: rfl
state_before: case h.h
α : Type ?u.567819
M : Type u_4
N : Type u_5
P : Type ?u.567828
R : Type u_3
S : Type ?u.567834
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
x✝ : κ →₀ N
a✝ : ι
⊢ ↑(↑(LinearEquiv.symm (lcongr e₁ e₂)) x✝) a✝ = ↑(↑(lcongr e₁.symm (LinearEquiv.symm e₂)) x✝) a✝
Theorem: Mathlib.Tactic.Ring.one_pow
File: Mathlib/Tactic/Ring/Basic.lean

tactic: simp
state_before: u : Lean.Level
R : Type u_1
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
b : ℕ
⊢ Nat.rawCast 1 ^ b = Nat.rawCast 1
Theorem: NNRat.toNNRat_prod_of_nonneg
File: Mathlib/Data/Rat/NNRat.lean

tactic: rw [← coe_inj, coe_prod, Rat.coe_toNNRat _ (Finset.prod_nonneg hf)]
state_before: α : Type u_1
p q : ℚ≥0
s : Finset α
f : α → ℚ
hf : ∀ (a : α), a ∈ s → 0 ≤ f a
⊢ toNNRat (∏ a in s, f a) = ∏ a in s, toNNRat (f a)

tactic: exact Finset.prod_congr rfl fun x hxs ↦ by rw [Rat.coe_toNNRat _ (hf x hxs)]
state_before: α : Type u_1
p q : ℚ≥0
s : Finset α
f : α → ℚ
hf : ∀ (a : α), a ∈ s → 0 ≤ f a
⊢ ∏ i in s, f i = ∏ a in s, ↑(toNNRat (f a))

tactic: rw [Rat.coe_toNNRat _ (hf x hxs)]
state_before: α : Type u_1
p q : ℚ≥0
s : Finset α
f : α → ℚ
hf : ∀ (a : α), a ∈ s → 0 ≤ f a
x : α
hxs : x ∈ s
⊢ f x = ↑(toNNRat (f x))
Theorem: PadicInt.norm_eq_of_norm_add_lt_left
File: Mathlib/NumberTheory/Padics/PadicIntegers.lean

tactic: rw [norm_add_eq_max_of_ne hne]
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
z1 z2 : ℤ_[p]
h : ‖z1 + z2‖ < ‖z1‖
hne : ¬‖z1‖ = ‖z2‖
⊢ ‖z1 + z2‖ ≥ ‖z1‖

tactic: apply le_max_left
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
z1 z2 : ℤ_[p]
h : ‖z1 + z2‖ < ‖z1‖
hne : ¬‖z1‖ = ‖z2‖
⊢ max ‖z1‖ ‖z2‖ ≥ ‖z1‖
Theorem: forall₃_true_iff
File: Mathlib/Logic/Basic.lean

tactic: simp
state_before: ι : Sort ?u.14732
α : Sort ?u.14737
κ : ι → Sort ?u.14734
p q : α → Prop
β : α → Sort u_1
γ : (a : α) → β a → Sort u_2
⊢ (∀ (a : α) (b : β a), γ a b → True) ↔ True
Theorem: Sbtw.mem_image_Ioo
File: Mathlib/Analysis/Convex/Between.lean

tactic: rcases h with ⟨⟨t, ht, rfl⟩, hyx, hyz⟩
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.138137
P : Type u_3
P' : Type ?u.138143
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y z : P
h : Sbtw R x y z
⊢ y ∈ ↑(lineMap x z) '' Set.Ioo 0 1

tactic: rcases Set.eq_endpoints_or_mem_Ioo_of_mem_Icc ht with (rfl | rfl | ho)
state_before: case intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.138137
P : Type u_3
P' : Type ?u.138143
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x z : P
t : R
ht : t ∈ Set.Icc 0 1
hyx : ↑(lineMap x z) t ≠ x
hyz : ↑(lineMap x z) t ≠ z
⊢ ↑(lineMap x z) t ∈ ↑(lineMap x z) '' Set.Ioo 0 1

tactic: exfalso
state_before: case intro.intro.intro.intro.inl
R : Type u_1
V : Type u_2
V' : Type ?u.138137
P : Type u_3
P' : Type ?u.138143
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x z : P
ht : 0 ∈ Set.Icc 0 1
hyx : ↑(lineMap x z) 0 ≠ x
hyz : ↑(lineMap x z) 0 ≠ z
⊢ ↑(lineMap x z) 0 ∈ ↑(lineMap x z) '' Set.Ioo 0 1

tactic: exact hyx (lineMap_apply_zero _ _)
state_before: case intro.intro.intro.intro.inl.h
R : Type u_1
V : Type u_2
V' : Type ?u.138137
P : Type u_3
P' : Type ?u.138143
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x z : P
ht : 0 ∈ Set.Icc 0 1
hyx : ↑(lineMap x z) 0 ≠ x
hyz : ↑(lineMap x z) 0 ≠ z
⊢ False

tactic: exfalso
state_before: case intro.intro.intro.intro.inr.inl
R : Type u_1
V : Type u_2
V' : Type ?u.138137
P : Type u_3
P' : Type ?u.138143
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x z : P
ht : 1 ∈ Set.Icc 0 1
hyx : ↑(lineMap x z) 1 ≠ x
hyz : ↑(lineMap x z) 1 ≠ z
⊢ ↑(lineMap x z) 1 ∈ ↑(lineMap x z) '' Set.Ioo 0 1

tactic: exact hyz (lineMap_apply_one _ _)
state_before: case intro.intro.intro.intro.inr.inl.h
R : Type u_1
V : Type u_2
V' : Type ?u.138137
P : Type u_3
P' : Type ?u.138143
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x z : P
ht : 1 ∈ Set.Icc 0 1
hyx : ↑(lineMap x z) 1 ≠ x
hyz : ↑(lineMap x z) 1 ≠ z
⊢ False

tactic: exact ⟨t, ho, rfl⟩
state_before: case intro.intro.intro.intro.inr.inr
R : Type u_1
V : Type u_2
V' : Type ?u.138137
P : Type u_3
P' : Type ?u.138143
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x z : P
t : R
ht : t ∈ Set.Icc 0 1
hyx : ↑(lineMap x z) t ≠ x
hyz : ↑(lineMap x z) t ≠ z
ho : t ∈ Set.Ioo 0 1
⊢ ↑(lineMap x z) t ∈ ↑(lineMap x z) '' Set.Ioo 0 1
Theorem: QuaternionAlgebra.star_mul_eq_coe
File: Mathlib/Algebra/Quaternion.lean

tactic: ext <;> simp <;> ring
state_before: S : Type ?u.324460
T : Type ?u.324463
R : Type u_1
inst✝ : CommRing R
c₁ c₂ r x y z : R
a b c : ℍ[R,c₁,c₂]
⊢ star a * a = ↑(star a * a).re
Theorem: AffineBasis.linear_combination_coord_eq_self
File: Mathlib/LinearAlgebra/AffineSpace/Basis.lean

tactic: have hb := b.affineCombination_coord_eq_self v
state_before: ι : Type u_1
ι' : Type ?u.122547
k : Type u_2
V : Type u_3
P : Type ?u.122556
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b✝ : AffineBasis ι k P
s : Finset ι
i j : ι
e : ι ≃ ι'
inst✝ : Fintype ι
b : AffineBasis ι k V
v : V
⊢ ∑ i : ι, ↑(coord b i) v • ↑b i = v

tactic: rwa [Finset.univ.affineCombination_eq_linear_combination _ _ (b.sum_coord_apply_eq_one v)] at hb
state_before: ι : Type u_1
ι' : Type ?u.122547
k : Type u_2
V : Type u_3
P : Type ?u.122556
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b✝ : AffineBasis ι k P
s : Finset ι
i j : ι
e : ι ≃ ι'
inst✝ : Fintype ι
b : AffineBasis ι k V
v : V
hb : (↑(Finset.affineCombination k Finset.univ ↑b) fun i => ↑(coord b i) v) = v
⊢ ∑ i : ι, ↑(coord b i) v • ↑b i = v
Theorem: MulAction.stabilizer_smul_eq_stabilizer_map_conj
File: Mathlib/GroupTheory/GroupAction/Basic.lean

tactic: ext h
state_before: α : Type u
β : Type v
γ : Type w
inst✝¹ : Group α
inst✝ : MulAction α β
g : α
x : β
⊢ stabilizer α (g • x) = Subgroup.map (MulEquiv.toMonoidHom (↑MulAut.conj g)) (stabilizer α x)

tactic: rw [mem_stabilizer_iff, ← smul_left_cancel_iff g⁻¹, smul_smul, smul_smul, smul_smul, mul_left_inv,
  one_smul, ← mem_stabilizer_iff, Subgroup.mem_map_equiv, MulAut.conj_symm_apply]
state_before: case h
α : Type u
β : Type v
γ : Type w
inst✝¹ : Group α
inst✝ : MulAction α β
g : α
x : β
h : α
⊢ h ∈ stabilizer α (g • x) ↔ h ∈ Subgroup.map (MulEquiv.toMonoidHom (↑MulAut.conj g)) (stabilizer α x)
Theorem: RingEquiv.symm_toRingHom_comp_toRingHom
File: Mathlib/Algebra/Ring/Equiv.lean

tactic: ext
state_before: F : Type ?u.101245
α : Type ?u.101248
β : Type ?u.101251
R : Type u_1
S : Type u_2
S' : Type ?u.101260
inst✝² : NonAssocSemiring R
inst✝¹ : NonAssocSemiring S
inst✝ : NonAssocSemiring S'
e : R ≃+* S
⊢ RingHom.comp (toRingHom (RingEquiv.symm e)) (toRingHom e) = RingHom.id R

tactic: simp
state_before: case a
F : Type ?u.101245
α : Type ?u.101248
β : Type ?u.101251
R : Type u_1
S : Type u_2
S' : Type ?u.101260
inst✝² : NonAssocSemiring R
inst✝¹ : NonAssocSemiring S
inst✝ : NonAssocSemiring S'
e : R ≃+* S
x✝ : R
⊢ ↑(RingHom.comp (toRingHom (RingEquiv.symm e)) (toRingHom e)) x✝ = ↑(RingHom.id R) x✝
Theorem: List.length_eq_lengthTR
File: src/lean/Init/Data/List/Basic.lean

tactic: apply funext
state_before: α : Type u
β : Type v
γ : Type w
⊢ @length = @lengthTR

tactic: intro α
state_before: case h
α : Type u
β : Type v
γ : Type w
⊢ ∀ (x : Type u_1), length = lengthTR

tactic: apply funext
state_before: case h
α✝ : Type u
β : Type v
γ : Type w
α : Type u_1
⊢ length = lengthTR

tactic: intro as
state_before: case h.h
α✝ : Type u
β : Type v
γ : Type w
α : Type u_1
⊢ ∀ (x : List α), length x = lengthTR x

tactic: simp [lengthTR, ← length_add_eq_lengthTRAux]
state_before: case h.h
α✝ : Type u
β : Type v
γ : Type w
α : Type u_1
as : List α
⊢ length as = lengthTR as
Theorem: MeasureTheory.average_eq
File: Mathlib/MeasureTheory/Integral/Average.lean

tactic: rw [average_eq', integral_smul_measure, ENNReal.toReal_inv]
state_before: α : Type u_2
E : Type u_1
F : Type ?u.185342
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ : Measure α
s : Set E
f : α → E
⊢ (⨍ (x : α), f x ∂μ) = (ENNReal.toReal (↑↑μ univ))⁻¹ • ∫ (x : α), f x ∂μ
Theorem: Multiset.mem_Iic
File: Mathlib/Order/LocallyFinite.lean

tactic: rw [Iic, ← Finset.mem_def, Finset.mem_Iic]
state_before: α : Type u_1
β : Type ?u.34263
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrderBot α
b x : α
⊢ x ∈ Iic b ↔ x ≤ b
Theorem: MeasureTheory.Measure.restrict_apply_eq_zero
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [restrict_apply ht]
state_before: α : Type u_1
β : Type ?u.291299
γ : Type ?u.291302
δ : Type ?u.291305
ι : Type ?u.291308
R : Type ?u.291311
R' : Type ?u.291314
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ s) t = 0 ↔ ↑↑μ (t ∩ s) = 0
Theorem: Nat.choose_middle_le_pow
File: Mathlib/Data/Nat/Choose/Sum.lean

tactic: have t : choose (2 * n + 1) n ≤ ∑ i in range (n + 1), choose (2 * n + 1) i :=
  single_le_sum (fun x _ ↦ by linarith) (self_mem_range_succ n)
state_before: R : Type ?u.162350
n : ℕ
⊢ choose (2 * n + 1) n ≤ 4 ^ n

tactic: simpa [sum_range_choose_halfway n] using t
state_before: R : Type ?u.162350
n : ℕ
t : choose (2 * n + 1) n ≤ ∑ i in range (n + 1), choose (2 * n + 1) i
⊢ choose (2 * n + 1) n ≤ 4 ^ n

tactic: linarith
state_before: R : Type ?u.162350
n x : ℕ
x✝ : x ∈ range (n + 1)
⊢ 0 ≤ choose (2 * n + 1) x
Theorem: Set.eq_of_mem_ordConnectedSection_of_uIcc_subset
File: Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean

tactic: rcases hx with ⟨x, rfl⟩
state_before: α : Type u_1
inst✝ : LinearOrder α
s t : Set α
x y z : α
hx : x ∈ ordConnectedSection s
hy : y ∈ ordConnectedSection s
h : [[x, y]] ⊆ s
⊢ x = y

tactic: rcases hy with ⟨y, rfl⟩
state_before: case intro
α : Type u_1
inst✝ : LinearOrder α
s t : Set α
y z : α
hy : y ∈ ordConnectedSection s
x : ↑s
h : [[ordConnectedProj s x, y]] ⊆ s
⊢ ordConnectedProj s x = y

tactic: exact
  ordConnectedProj_eq.2
    (mem_ordConnectedComponent_trans
      (mem_ordConnectedComponent_trans (ordConnectedProj_mem_ordConnectedComponent _ _) h)
      (mem_ordConnectedComponent_ordConnectedProj _ _))
state_before: case intro.intro
α : Type u_1
inst✝ : LinearOrder α
s t : Set α
z : α
x y : ↑s
h : [[ordConnectedProj s x, ordConnectedProj s y]] ⊆ s
⊢ ordConnectedProj s x = ordConnectedProj s y
Theorem: Polynomial.map_mod
File: Mathlib/Data/Polynomial/FieldDivision.lean

tactic: simp [hq0]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
inst✝ : Field k
f : R →+* k
hq0 : q = 0
⊢ map f (p % q) = map f p % map f q

tactic: rw [mod_def, mod_def, leadingCoeff_map f, ← map_inv₀ f, ← map_C f, ← Polynomial.map_mul f,
  map_modByMonic f (monic_mul_leadingCoeff_inv hq0)]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
inst✝ : Field k
f : R →+* k
hq0 : ¬q = 0
⊢ map f (p % q) = map f p % map f q
Theorem: Rat.coe_int_div_self
File: Mathlib/Data/Rat/Lemmas.lean

tactic: by_cases hn : n = 0
state_before: n : ℤ
⊢ ↑(n / n) = ↑n / ↑n

tactic: subst hn
state_before: case pos
n : ℤ
hn : n = 0
⊢ ↑(n / n) = ↑n / ↑n

tactic: simp only [Int.cast_zero, Int.zero_div, zero_div]
state_before: case pos

⊢ ↑(0 / 0) = ↑0 / ↑0

tactic: have : (n : ℚ) ≠ 0 := by rwa [← coe_int_inj] at hn
state_before: case neg
n : ℤ
hn : ¬n = 0
⊢ ↑(n / n) = ↑n / ↑n

tactic: simp only [Int.ediv_self hn, Int.cast_one, Ne.def, not_false_iff, div_self this]
state_before: case neg
n : ℤ
hn : ¬n = 0
this : ↑n ≠ 0
⊢ ↑(n / n) = ↑n / ↑n

tactic: rwa [← coe_int_inj] at hn
state_before: n : ℤ
hn : ¬n = 0
⊢ ↑n ≠ 0
Theorem: TopCat.Presheaf.map_restrict
File: Mathlib/Topology/Sheaves/Presheaf.lean

tactic: delta restrictOpen restrict
state_before: C✝ : Type u
inst✝² : Category C✝
X : TopCat
C : Type u_2
inst✝¹ : Category C
inst✝ : ConcreteCategory C
F G : Presheaf C X
e : F ⟶ G
U V : Opens ↑X
h : U ≤ V
x : (forget C).obj (F.obj V.op)
⊢ (forget C).map (e.app U.op) (x |_ U) = (forget C).map (e.app V.op) x |_ U

tactic: rw [← comp_apply, NatTrans.naturality, comp_apply]
state_before: C✝ : Type u
inst✝² : Category C✝
X : TopCat
C : Type u_2
inst✝¹ : Category C
inst✝ : ConcreteCategory C
F G : Presheaf C X
e : F ⟶ G
U V : Opens ↑X
h : U ≤ V
x : (forget C).obj (F.obj V.op)
⊢ (forget C).map (e.app U.op) ((forget C).map (F.map (homOfLE (_ : ∀ ⦃a : ↑X⦄, a ∈ ↑U → a ∈ ↑V)).op) x) =
    (forget C).map (G.map (homOfLE (_ : ∀ ⦃a : ↑X⦄, a ∈ ↑U → a ∈ ↑V)).op) ((forget C).map (e.app V.op) x)