tasksource/leandojo huggingface dataset:
Theorem: Doset.rel_bot_eq_right_group_rel
File: Mathlib/GroupTheory/DoubleCoset.lean

tactic: ext (a b)
state_before: G : Type u_1
inst✝¹ : Group G
α : Type ?u.19878
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
⊢ Setoid.Rel (setoid ↑H ↑⊥) = Setoid.Rel (QuotientGroup.rightRel H)

tactic: rw [rel_iff, Setoid.Rel, QuotientGroup.rightRel_apply]
state_before: case h.h.a
G : Type u_1
inst✝¹ : Group G
α : Type ?u.19878
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ Setoid.Rel (setoid ↑H ↑⊥) a b ↔ Setoid.Rel (QuotientGroup.rightRel H) a b

tactic: constructor
state_before: case h.h.a
G : Type u_1
inst✝¹ : Group G
α : Type ?u.19878
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ (∃ a_1, a_1 ∈ H ∧ ∃ b_1, b_1 ∈ ⊥ ∧ b = a_1 * a * b_1) ↔ b * a⁻¹ ∈ H

tactic: rintro ⟨b, hb, a, rfl : a = 1, rfl⟩
state_before: case h.h.a.mp
G : Type u_1
inst✝¹ : Group G
α : Type ?u.19878
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ (∃ a_1, a_1 ∈ H ∧ ∃ b_1, b_1 ∈ ⊥ ∧ b = a_1 * a * b_1) → b * a⁻¹ ∈ H

tactic: change b * a * 1 * a⁻¹ ∈ H
state_before: case h.h.a.mp.intro.intro.intro.intro
G : Type u_1
inst✝¹ : Group G
α : Type ?u.19878
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
hb : b ∈ H
⊢ b * a * 1 * a⁻¹ ∈ H

tactic: rwa [mul_one, mul_inv_cancel_right]
state_before: case h.h.a.mp.intro.intro.intro.intro
G : Type u_1
inst✝¹ : Group G
α : Type ?u.19878
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
hb : b ∈ H
⊢ b * a * 1 * a⁻¹ ∈ H

tactic: rintro (h : b * a⁻¹ ∈ H)
state_before: case h.h.a.mpr
G : Type u_1
inst✝¹ : Group G
α : Type ?u.19878
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
⊢ b * a⁻¹ ∈ H → ∃ a_2, a_2 ∈ H ∧ ∃ b_1, b_1 ∈ ⊥ ∧ b = a_2 * a * b_1

tactic: exact ⟨b * a⁻¹, h, 1, rfl, by rw [mul_one, inv_mul_cancel_right]⟩
state_before: case h.h.a.mpr
G : Type u_1
inst✝¹ : Group G
α : Type ?u.19878
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
h : b * a⁻¹ ∈ H
⊢ ∃ a_1, a_1 ∈ H ∧ ∃ b_1, b_1 ∈ ⊥ ∧ b = a_1 * a * b_1

tactic: rw [mul_one, inv_mul_cancel_right]
state_before: G : Type u_1
inst✝¹ : Group G
α : Type ?u.19878
inst✝ : Mul α
J : Subgroup G
g : G
H : Subgroup G
a b : G
h : b * a⁻¹ ∈ H
⊢ b = b * a⁻¹ * a * 1
Theorem: CategoryTheory.Adjunction.right_triangle
File: Mathlib/CategoryTheory/Adjunction/Basic.lean

tactic: ext
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X' X : C
Y Y' : D
⊢ whiskerLeft G adj.unit ≫ whiskerRight adj.counit G = 𝟙 (G ⋙ 𝟭 C)

tactic: dsimp
state_before: case w.h
C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X' X : C
Y Y' x✝ : D
⊢ (whiskerLeft G adj.unit ≫ whiskerRight adj.counit G).app x✝ = (𝟙 (G ⋙ 𝟭 C)).app x✝

tactic: erw [← adj.homEquiv_unit, ← Equiv.eq_symm_apply, adj.homEquiv_counit]
state_before: case w.h
C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X' X : C
Y Y' x✝ : D
⊢ adj.unit.app (G.obj x✝) ≫ G.map (adj.counit.app x✝) = 𝟙 (G.obj x✝)

tactic: simp
state_before: case w.h
C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X' X : C
Y Y' x✝ : D
⊢ adj.counit.app x✝ = F.map (𝟙 (G.obj x✝)) ≫ adj.counit.app x✝
Theorem: AddCircle.coe_add_period
File: Mathlib/Topology/Instances/AddCircle.lean

tactic: rw [coe_add, ← eq_sub_iff_add_eq', sub_self, coe_period]
state_before: 𝕜 : Type u_1
B : Type ?u.42067
inst✝² : LinearOrderedAddCommGroup 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p x : 𝕜
⊢ ↑(x + p) = ↑x
Theorem: Finset.filter_card_eq
File: Mathlib/Data/Finset/Card.lean

tactic: rw [← eq_of_subset_of_card_le (s.filter_subset p) h.ge, mem_filter] at hx
state_before: α : Type u_1
β : Type ?u.19465
s t : Finset α
f : α → β
n : ℕ
p : α → Prop
inst✝ : DecidablePred p
h : card (filter p s) = card s
x : α
hx : x ∈ s
⊢ p x

tactic: exact hx.2
state_before: α : Type u_1
β : Type ?u.19465
s t : Finset α
f : α → β
n : ℕ
p : α → Prop
inst✝ : DecidablePred p
h : card (filter p s) = card s
x : α
hx : x ∈ s ∧ p x
⊢ p x
Theorem: Bool.coe_sort_false
File: Mathlib/Init/Data/Bool/Lemmas.lean

tactic: simp
state_before: ⊢ (false = true) = False
Theorem: PowerSeries.constantCoeff_invUnitsSub
File: Mathlib/RingTheory/PowerSeries/WellKnown.lean

tactic: rw [← coeff_zero_eq_constantCoeff_apply, coeff_invUnitsSub, zero_add, pow_one]
state_before: R : Type u_1
S : Type ?u.77445
inst✝¹ : Ring R
inst✝ : Ring S
u : Rˣ
⊢ ↑(constantCoeff R) (invUnitsSub u) = 1 /ₚ u
Theorem: Polynomial.scaleRoots_eval₂_eq_zero
File: Mathlib/RingTheory/Polynomial/ScaleRoots.lean

tactic: rw [scaleRoots_eval₂_mul, hr, mul_zero]
state_before: A : Type ?u.279774
K : Type ?u.279777
R : Type u_2
S : Type u_1
inst✝⁴ : CommRing A
inst✝³ : IsDomain A
inst✝² : Field K
inst✝¹ : CommRing R
inst✝ : CommRing S
M : Submonoid A
p : S[X]
f : S →+* R
r : R
s : S
hr : eval₂ f r p = 0
⊢ eval₂ f (↑f s * r) (scaleRoots p s) = 0
Theorem: UniformFun.uniformContinuous_eval
File: Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean

tactic: change _ ≤ _
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.27728
ι : Type ?u.27731
s s' : Set α
x✝ : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
x : α
⊢ UniformContinuous (Function.eval x ∘ ↑toFun)

tactic: rw [map_le_iff_le_comap,
  (UniformFun.hasBasis_uniformity α β).le_basis_iff ((𝓤 _).basis_sets.comap _)]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.27728
ι : Type ?u.27731
s s' : Set α
x✝ : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
x : α
⊢ map (fun x_1 => ((Function.eval x ∘ ↑toFun) x_1.fst, (Function.eval x ∘ ↑toFun) x_1.snd)) (𝓤 (α →ᵤ β)) ≤ 𝓤 β

tactic: exact fun U hU => ⟨U, hU, fun uv huv => huv x⟩
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.27728
ι : Type ?u.27731
s s' : Set α
x✝ : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
x : α
⊢ ∀ (i' : Set (β × β)),
    i' ∈ 𝓤 β →
      ∃ i,
        i ∈ 𝓤 β ∧
          UniformFun.gen α β i ⊆
            (fun x_1 => ((Function.eval x ∘ ↑toFun) x_1.fst, (Function.eval x ∘ ↑toFun) x_1.snd)) ⁻¹' id i'
Theorem: contDiffOn_iff_continuousOn_differentiableOn_deriv
File: Mathlib/Analysis/Calculus/IteratedDeriv.lean

tactic: simp only [contDiffOn_iff_continuousOn_differentiableOn hs, iteratedFDerivWithin_eq_equiv_comp,
  LinearIsometryEquiv.comp_continuousOn_iff, LinearIsometryEquiv.comp_differentiableOn_iff]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type ?u.59866
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n✝ : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
n : ℕ∞
hs : UniqueDiffOn 𝕜 s
⊢ ContDiffOn 𝕜 n f s ↔
    (∀ (m : ℕ), ↑m ≤ n → ContinuousOn (iteratedDerivWithin m f s) s) ∧
      ∀ (m : ℕ), ↑m < n → DifferentiableOn 𝕜 (iteratedDerivWithin m f s) s
Theorem: Nat.mod_mul_right_div_self
File: Mathlib/Data/Nat/Order/Basic.lean

tactic: rcases Nat.eq_zero_or_pos n with (rfl | hn)
state_before: m✝ n✝ k✝ l m n k : ℕ
⊢ m % (n * k) / n = m / n % k

tactic: simp [mod_zero]
state_before: case inl
m✝ n k✝ l m k : ℕ
⊢ m % (0 * k) / 0 = m / 0 % k

case inr
m✝ n✝ k✝ l m n k : ℕ
hn : n > 0
⊢ m % (n * k) / n = m / n % k

tactic: rcases Nat.eq_zero_or_pos k with (rfl | hk)
state_before: case inr
m✝ n✝ k✝ l m n k : ℕ
hn : n > 0
⊢ m % (n * k) / n = m / n % k

tactic: simp [mod_zero]
state_before: case inr.inl
m✝ n✝ k l m n : ℕ
hn : n > 0
⊢ m % (n * 0) / n = m / n % 0

case inr.inr
m✝ n✝ k✝ l m n k : ℕ
hn : n > 0
hk : k > 0
⊢ m % (n * k) / n = m / n % k

tactic: conv_rhs => rw [← mod_add_div m (n * k)]
state_before: case inr.inr
m✝ n✝ k✝ l m n k : ℕ
hn : n > 0
hk : k > 0
⊢ m % (n * k) / n = m / n % k

tactic: rw [mul_assoc, add_mul_div_left _ _ hn, add_mul_mod_self_left,
  mod_eq_of_lt (Nat.div_lt_of_lt_mul (mod_lt _ (mul_pos hn hk)))]
state_before: case inr.inr
m✝ n✝ k✝ l m n k : ℕ
hn : n > 0
hk : k > 0
⊢ m % (n * k) / n = (m % (n * k) + n * k * (m / (n * k))) / n % k
Theorem: Matrix.rank_mul_le_left
File: Mathlib/Data/Matrix/Rank.lean

tactic: rw [rank, rank, mulVecLin_mul]
state_before: l : Type ?u.26872
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_1
m_fin : Fintype m
inst✝³ : Fintype n
inst✝² : Fintype o
inst✝¹ : CommRing R
inst✝ : StrongRankCondition R
A : Matrix m n R
B : Matrix n o R
⊢ rank (A ⬝ B) ≤ rank A

tactic: exact Cardinal.toNat_le_of_le_of_lt_aleph0 (rank_lt_aleph0 _ _) (LinearMap.rank_comp_le_left _ _)
state_before: l : Type ?u.26872
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_1
m_fin : Fintype m
inst✝³ : Fintype n
inst✝² : Fintype o
inst✝¹ : CommRing R
inst✝ : StrongRankCondition R
A : Matrix m n R
B : Matrix n o R
⊢ finrank R { x // x ∈ LinearMap.range (LinearMap.comp (mulVecLin A) (mulVecLin B)) } ≤
    finrank R { x // x ∈ LinearMap.range (mulVecLin A) }
Theorem: IsOfFinOrder.apply
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: rcases(isOfFinOrder_iff_pow_eq_one _).mp h with ⟨n, npos, hn⟩
state_before: G : Type u
A : Type v
x✝ y : G
a b : A
n m : ℕ
inst✝² : Monoid G
inst✝¹ : AddMonoid A
η : Type u_1
Gs : η → Type u_2
inst✝ : (i : η) → Monoid (Gs i)
x : (i : η) → Gs i
h : IsOfFinOrder x
⊢ ∀ (i : η), IsOfFinOrder (x i)

tactic: exact fun _ => (isOfFinOrder_iff_pow_eq_one _).mpr ⟨n, npos, (congr_fun hn.symm _).symm⟩
state_before: case intro.intro
G : Type u
A : Type v
x✝ y : G
a b : A
n✝ m : ℕ
inst✝² : Monoid G
inst✝¹ : AddMonoid A
η : Type u_1
Gs : η → Type u_2
inst✝ : (i : η) → Monoid (Gs i)
x : (i : η) → Gs i
h : IsOfFinOrder x
n : ℕ
npos : 0 < n
hn : x ^ n = 1
⊢ ∀ (i : η), IsOfFinOrder (x i)
Theorem: Real.volume_closedBall
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

tactic: rw [closedBall_eq_Icc, volume_Icc, ← sub_add, add_sub_cancel', two_mul]
state_before: ι : Type ?u.130649
inst✝ : Fintype ι
a r : ℝ
⊢ ↑↑volume (Metric.closedBall a r) = ofReal (2 * r)
Theorem: ExceptT.run_map
File: src/lean/Init/Control/Lawful.lean

tactic: simp [Functor.map, ExceptT.map, map_eq_pure_bind]
state_before: m : Type u_1 → Type u_2
α β ε : Type u_1
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f : α → β
x : ExceptT ε m α
⊢ run (f <$> x) = Except.map f <$> run x

tactic: apply bind_congr
state_before: m : Type u_1 → Type u_2
α β ε : Type u_1
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f : α → β
x : ExceptT ε m α
⊢ run
      (mk do
        let a ← x
        match a with
          | Except.ok a => pure (Except.ok (f a))
          | Except.error e => pure (Except.error e)) =
    do
    let a ← run x
    pure (Except.map f a)

tactic: intro a
state_before: case h
m : Type u_1 → Type u_2
α β ε : Type u_1
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f : α → β
x : ExceptT ε m α
⊢ ∀ (a : Except ε α),
    (match a with
      | Except.ok a => pure (Except.ok (f a))
      | Except.error e => pure (Except.error e)) =
      pure (Except.map f a)

tactic: cases a <;> simp [Except.map]
state_before: case h
m : Type u_1 → Type u_2
α β ε : Type u_1
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f : α → β
x : ExceptT ε m α
a : Except ε α
⊢ (match a with
    | Except.ok a => pure (Except.ok (f a))
    | Except.error e => pure (Except.error e)) =
    pure (Except.map f a)
Theorem: List.alternatingProd_eq_finset_prod
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: rw [alternatingProd, Finset.prod_eq_one]
state_before: α : Type ?u.237503
β : Type ?u.237506
G : Type u_1
inst✝ : CommGroup G
⊢ alternatingProd [] = ∏ i : Fin (length []), get [] i ^ (-1) ^ ↑i

tactic: rintro ⟨i, ⟨⟩⟩
state_before: α : Type ?u.237503
β : Type ?u.237506
G : Type u_1
inst✝ : CommGroup G
⊢ ∀ (x : Fin (length [])), x ∈ univ → get [] x ^ (-1) ^ ↑x = 1

tactic: show g = ∏ i : Fin 1, [g].get i ^ (-1 : ℤ) ^ (i : ℕ)
state_before: α : Type ?u.237503
β : Type ?u.237506
G : Type u_1
inst✝ : CommGroup G
g : G
⊢ alternatingProd [g] = ∏ i : Fin (length [g]), get [g] i ^ (-1) ^ ↑i

tactic: rw [Fin.prod_univ_succ]
state_before: α : Type ?u.237503
β : Type ?u.237506
G : Type u_1
inst✝ : CommGroup G
g : G
⊢ g = ∏ i : Fin 1, get [g] i ^ (-1) ^ ↑i

tactic: simp
state_before: α : Type ?u.237503
β : Type ?u.237506
G : Type u_1
inst✝ : CommGroup G
g : G
⊢ g = get [g] 0 ^ (-1) ^ ↑0 * ∏ i : Fin 0, get [g] (Fin.succ i) ^ (-1) ^ ↑(Fin.succ i)
Theorem: Set.mulIndicator_eq_one
File: Mathlib/Algebra/IndicatorFunction.lean

tactic: simp only [funext_iff, mulIndicator_apply_eq_one, Set.disjoint_left, mem_mulSupport,
  not_imp_not]
state_before: α : Type u_1
β : Type ?u.4770
ι : Type ?u.4773
M : Type u_2
N : Type ?u.4779
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
⊢ (mulIndicator s f = fun x => 1) ↔ Disjoint (mulSupport f) s
Theorem: Submodule.map_smul
File: Mathlib/LinearAlgebra/Basic.lean

tactic: rw [map_le_iff_le_comap, comap_smul f _ a h, ← map_le_iff_le_comap]
state_before: R : Type ?u.960022
R₁ : Type ?u.960025
R₂ : Type ?u.960028
R₃ : Type ?u.960031
R₄ : Type ?u.960034
S : Type ?u.960037
K : Type u_1
K₂ : Type ?u.960043
M : Type ?u.960046
M' : Type ?u.960049
M₁ : Type ?u.960052
M₂ : Type ?u.960055
M₃ : Type ?u.960058
M₄ : Type ?u.960061
N : Type ?u.960064
N₂ : Type ?u.960067
ι : Type ?u.960070
V : Type u_2
V₂ : Type u_3
inst✝⁴ : Semifield K
inst✝³ : AddCommMonoid V
inst✝² : Module K V
inst✝¹ : AddCommMonoid V₂
inst✝ : Module K V₂
f : V →ₗ[K] V₂
p : Submodule K V
a : K
h : a ≠ 0
⊢ map (a • f) p ≤ map f p

tactic: rw [map_le_iff_le_comap, ← comap_smul f _ a h, ← map_le_iff_le_comap]
state_before: R : Type ?u.960022
R₁ : Type ?u.960025
R₂ : Type ?u.960028
R₃ : Type ?u.960031
R₄ : Type ?u.960034
S : Type ?u.960037
K : Type u_1
K₂ : Type ?u.960043
M : Type ?u.960046
M' : Type ?u.960049
M₁ : Type ?u.960052
M₂ : Type ?u.960055
M₃ : Type ?u.960058
M₄ : Type ?u.960061
N : Type ?u.960064
N₂ : Type ?u.960067
ι : Type ?u.960070
V : Type u_2
V₂ : Type u_3
inst✝⁴ : Semifield K
inst✝³ : AddCommMonoid V
inst✝² : Module K V
inst✝¹ : AddCommMonoid V₂
inst✝ : Module K V₂
f : V →ₗ[K] V₂
p : Submodule K V
a : K
h : a ≠ 0
⊢ map f p ≤ map (a • f) p
Theorem: Orthonormal.inner_left_right_finset
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: classical!
state_before: 𝕜 : Type u_2
E : Type u_3
F : Type ?u.2128451
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
ι : Type u_1
dec_ι : DecidableEq ι
s : Finset ι
v : ι → E
hv : Orthonormal 𝕜 v
a : ι → ι → 𝕜
⊢ ∑ i in s, ∑ j in s, a i j • inner (v j) (v i) = ∑ k in s, a k k

tactic: simp [orthonormal_iff_ite.mp hv, Finset.sum_ite_of_true]
state_before: 𝕜 : Type u_2
E : Type u_3
F : Type ?u.2128451
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
ι : Type u_1
dec_ι : DecidableEq ι
s : Finset ι
v : ι → E
hv : Orthonormal 𝕜 v
a : ι → ι → 𝕜
em✝ : (a : Prop) → Decidable a
⊢ ∑ i in s, ∑ j in s, a i j • inner (v j) (v i) = ∑ k in s, a k k
Theorem: toBilin'Aux_toMatrixAux
File: Mathlib/LinearAlgebra/Matrix/BilinearForm.lean

tactic: refine' ext_basis (Pi.basisFun R₂ n) fun i j => _
state_before: R : Type ?u.43148
M : Type ?u.43151
inst✝¹⁷ : Semiring R
inst✝¹⁶ : AddCommMonoid M
inst✝¹⁵ : Module R M
R₁ : Type ?u.43187
M₁ : Type ?u.43190
inst✝¹⁴ : Ring R₁
inst✝¹³ : AddCommGroup M₁
inst✝¹² : Module R₁ M₁
R₂ : Type u_2
M₂ : Type ?u.43802
inst✝¹¹ : CommSemiring R₂
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : Module R₂ M₂
R₃ : Type ?u.43989
M₃ : Type ?u.43992
inst✝⁸ : CommRing R₃
inst✝⁷ : AddCommGroup M₃
inst✝⁶ : Module R₃ M₃
V : Type ?u.44580
K : Type ?u.44583
inst✝⁵ : Field K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
B : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂✝ : BilinForm R₂ M₂
n : Type u_1
o : Type ?u.45800
inst✝² : Fintype n
inst✝¹ : Fintype o
inst✝ : DecidableEq n
B₂ : BilinForm R₂ (n → R₂)
⊢ toBilin'Aux (↑(toMatrixAux fun j => ↑(LinearMap.stdBasis R₂ (fun x => R₂) j) 1) B₂) = B₂

tactic: rw [Pi.basisFun_apply, Pi.basisFun_apply, Matrix.toBilin'Aux_stdBasis,
  BilinForm.toMatrixAux_apply]
state_before: R : Type ?u.43148
M : Type ?u.43151
inst✝¹⁷ : Semiring R
inst✝¹⁶ : AddCommMonoid M
inst✝¹⁵ : Module R M
R₁ : Type ?u.43187
M₁ : Type ?u.43190
inst✝¹⁴ : Ring R₁
inst✝¹³ : AddCommGroup M₁
inst✝¹² : Module R₁ M₁
R₂ : Type u_2
M₂ : Type ?u.43802
inst✝¹¹ : CommSemiring R₂
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : Module R₂ M₂
R₃ : Type ?u.43989
M₃ : Type ?u.43992
inst✝⁸ : CommRing R₃
inst✝⁷ : AddCommGroup M₃
inst✝⁶ : Module R₃ M₃
V : Type ?u.44580
K : Type ?u.44583
inst✝⁵ : Field K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
B : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂✝ : BilinForm R₂ M₂
n : Type u_1
o : Type ?u.45800
inst✝² : Fintype n
inst✝¹ : Fintype o
inst✝ : DecidableEq n
B₂ : BilinForm R₂ (n → R₂)
i j : n
⊢ bilin (toBilin'Aux (↑(toMatrixAux fun j => ↑(LinearMap.stdBasis R₂ (fun x => R₂) j) 1) B₂)) (↑(Pi.basisFun R₂ n) i)
      (↑(Pi.basisFun R₂ n) j) =
    bilin B₂ (↑(Pi.basisFun R₂ n) i) (↑(Pi.basisFun R₂ n) j)
Theorem: Function.star_sum_elim
File: Mathlib/Algebra/Star/Pi.lean

tactic: ext x
state_before: I✝ : Type u
f : I✝ → Type v
I : Type u_1
J : Type u_2
α : Type u_3
x : I → α
y : J → α
inst✝ : Star α
⊢ star (Sum.elim x y) = Sum.elim (star x) (star y)

tactic: cases x <;> simp only [Pi.star_apply, Sum.elim_inl, Sum.elim_inr]
state_before: case h
I✝ : Type u
f : I✝ → Type v
I : Type u_1
J : Type u_2
α : Type u_3
x✝ : I → α
y : J → α
inst✝ : Star α
x : I ⊕ J
⊢ star (Sum.elim x✝ y) x = Sum.elim (star x✝) (star y) x
Theorem: EuclideanDomain.gcd_zero_right
File: Mathlib/Algebra/EuclideanDomain/Basic.lean

tactic: rw [gcd]
state_before: R : Type u
inst✝¹ : EuclideanDomain R
inst✝ : DecidableEq R
a : R
⊢ gcd a 0 = a

tactic: split_ifs with h <;> simp only [h, zero_mod, gcd_zero_left]
state_before: R : Type u
inst✝¹ : EuclideanDomain R
inst✝ : DecidableEq R
a : R
⊢ (fun b =>
        if a0 : a = 0 then b
        else
          let_fun x := (_ : EuclideanDomain.r (b % a) a);
          gcd (b % a) a)
      0 =
    a
Theorem: tendsto_rat_cast_atTop_iff
File: Mathlib/Order/Filter/Archimedean.lean

tactic: rw [← @Rat.comap_cast_atTop R, tendsto_comap_iff]
state_before: α : Type u_2
R : Type u_1
inst✝¹ : LinearOrderedField R
inst✝ : Archimedean R
f : α → ℚ
l : Filter α
⊢ Tendsto (fun n => ↑(f n)) l atTop ↔ Tendsto f l atTop

tactic: rfl
state_before: α : Type u_2
R : Type u_1
inst✝¹ : LinearOrderedField R
inst✝ : Archimedean R
f : α → ℚ
l : Filter α
⊢ Tendsto (fun n => ↑(f n)) l atTop ↔ Tendsto (Rat.cast ∘ f) l atTop
Theorem: AntilipschitzWith.injective
File: Mathlib/Topology/MetricSpace/Antilipschitz.lean

tactic: simpa only [h, edist_self, mul_zero, edist_le_zero] using hf x y
state_before: α✝ : Type ?u.4019
β✝ : Type ?u.4022
γ : Type ?u.4025
inst✝⁴ : PseudoEMetricSpace α✝
inst✝³ : PseudoEMetricSpace β✝
inst✝² : PseudoEMetricSpace γ
K✝ : ℝ≥0
f✝ : α✝ → β✝
α : Type u_1
β : Type u_2
inst✝¹ : EMetricSpace α
inst✝ : PseudoEMetricSpace β
K : ℝ≥0
f : α → β
hf : AntilipschitzWith K f
x y : α
h : f x = f y
⊢ x = y
Theorem: CategoryTheory.Abelian.tfae_epi
File: Mathlib/CategoryTheory/Abelian/Exact.lean

tactic: tfae_have 3 → 2
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
⊢ TFAE [Epi f, cokernel.π f = 0, Exact f 0]

tactic: tfae_have 1 → 3
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
tfae_3_to_2 : Exact f 0 → cokernel.π f = 0
⊢ TFAE [Epi f, cokernel.π f = 0, Exact f 0]

tactic: tfae_have 2 → 1
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
tfae_3_to_2 : Exact f 0 → cokernel.π f = 0
tfae_1_to_3 : Epi f → Exact f 0
⊢ TFAE [Epi f, cokernel.π f = 0, Exact f 0]

tactic: tfae_finish
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
tfae_3_to_2 : Exact f 0 → cokernel.π f = 0
tfae_1_to_3 : Epi f → Exact f 0
tfae_2_to_1 : cokernel.π f = 0 → Epi f
⊢ TFAE [Epi f, cokernel.π f = 0, Exact f 0]

tactic: rw [exact_iff]
state_before: case tfae_3_to_2
C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
⊢ Exact f 0 → cokernel.π f = 0

tactic: rintro ⟨-, h⟩
state_before: case tfae_3_to_2
C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
⊢ f ≫ 0 = 0 ∧ kernel.ι 0 ≫ cokernel.π f = 0 → cokernel.π f = 0

tactic: exact zero_of_epi_comp _ h
state_before: case tfae_3_to_2.intro
C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
h : kernel.ι 0 ≫ cokernel.π f = 0
⊢ cokernel.π f = 0

tactic: rw [exact_iff]
state_before: case tfae_1_to_3
C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
tfae_3_to_2 : Exact f 0 → cokernel.π f = 0
⊢ Epi f → Exact f 0

tactic: intro
state_before: case tfae_1_to_3
C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
tfae_3_to_2 : Exact f 0 → cokernel.π f = 0
⊢ Epi f → f ≫ 0 = 0 ∧ kernel.ι 0 ≫ cokernel.π f = 0

tactic: exact ⟨by simp, by simp [cokernel.π_of_epi]⟩
state_before: case tfae_1_to_3
C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
tfae_3_to_2 : Exact f 0 → cokernel.π f = 0
✝ : Epi f
⊢ f ≫ 0 = 0 ∧ kernel.ι 0 ≫ cokernel.π f = 0

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
tfae_3_to_2 : Exact f 0 → cokernel.π f = 0
✝ : Epi f
⊢ f ≫ 0 = 0

tactic: simp [cokernel.π_of_epi]
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
tfae_3_to_2 : Exact f 0 → cokernel.π f = 0
✝ : Epi f
⊢ kernel.ι 0 ≫ cokernel.π f = 0

tactic: exact epi_of_cokernel_π_eq_zero _
state_before: case tfae_2_to_1
C : Type u₁
inst✝¹ : Category C
inst✝ : Abelian C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
tfae_3_to_2 : Exact f 0 → cokernel.π f = 0
tfae_1_to_3 : Epi f → Exact f 0
⊢ cokernel.π f = 0 → Epi f
Theorem: Polynomial.Chebyshev.T_add_two
File: Mathlib/RingTheory/Polynomial/Chebyshev.lean

tactic: rw [T]
state_before: R : Type u_1
S : Type ?u.1770
inst✝¹ : CommRing R
inst✝ : CommRing S
n : ℕ
⊢ T R (n + 2) = 2 * X * T R (n + 1) - T R n
Theorem: tendsto_floor_left_pure_sub_one
File: Mathlib/Topology/Algebra/Order/Floor.lean

tactic: simpa only [ceil_intCast] using tendsto_floor_left_pure_ceil_sub_one (n : α)
state_before: α : Type u_1
β : Type ?u.10243
γ : Type ?u.10246
inst✝³ : LinearOrderedRing α
inst✝² : FloorRing α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
n : ℤ
⊢ Tendsto floor (𝓝[Iio ↑n] ↑n) (pure (n - 1))
Theorem: Submodule.coe_sup
File: Mathlib/LinearAlgebra/Span.lean

tactic: ext
state_before: R : Type u_2
R₂ : Type ?u.103212
K : Type ?u.103215
M : Type u_1
M₂ : Type ?u.103221
V : Type ?u.103224
S : Type ?u.103227
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
⊢ ↑(p ⊔ p') = ↑p + ↑p'

tactic: rw [SetLike.mem_coe, mem_sup, Set.mem_add]
state_before: case h
R : Type u_2
R₂ : Type ?u.103212
K : Type ?u.103215
M : Type u_1
M₂ : Type ?u.103221
V : Type ?u.103224
S : Type ?u.103227
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
x✝ : M
⊢ x✝ ∈ ↑(p ⊔ p') ↔ x✝ ∈ ↑p + ↑p'

tactic: simp
state_before: case h
R : Type u_2
R₂ : Type ?u.103212
K : Type ?u.103215
M : Type u_1
M₂ : Type ?u.103221
V : Type ?u.103224
S : Type ?u.103227
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
x✝ : M
⊢ (∃ y, y ∈ p ∧ ∃ z, z ∈ p' ∧ y + z = x✝) ↔ ∃ x y, x ∈ ↑p ∧ y ∈ ↑p' ∧ x + y = x✝