1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ModularGroup.coe_T_zpow
File: Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean

tactic: induction' n using Int.induction_on with n h n h
state_before: n : ℤ
⊢ ↑(T ^ n) = of ![![1, n], ![0, 1]]
state_after: case hz

⊢ ↑(T ^ 0) = of ![![1, 0], ![0, 1]]

case hp
n : ℕ
h : ↑(T ^ ↑n) = of ![![1, ↑n], ![0, 1]]
⊢ ↑(T ^ (↑n + 1)) = of ![![1, ↑n + 1], ![0, 1]]

case hn
n : ℕ
h : ↑(T ^ (-↑n)) = of ![![1, -↑n], ![0, 1]]
⊢ ↑(T ^ (-↑n - 1)) = of ![![1, -↑n - 1], ![0, 1]]

tactic: rw [zpow_zero, coe_one, Matrix.one_fin_two]
state_before: case hz

⊢ ↑(T ^ 0) = of ![![1, 0], ![0, 1]]
state_after: no goals

tactic: simp_rw [zpow_add, zpow_one, coe_mul, h, coe_T, Matrix.mul_fin_two]
state_before: case hp
n : ℕ
h : ↑(T ^ ↑n) = of ![![1, ↑n], ![0, 1]]
⊢ ↑(T ^ (↑n + 1)) = of ![![1, ↑n + 1], ![0, 1]]
state_after: case hp
n : ℕ
h : ↑(T ^ ↑n) = of ![![1, ↑n], ![0, 1]]
⊢ of ![![1 * 1 + ↑n * 0, 1 * 1 + ↑n * 1], ![0 * 1 + 1 * 0, 0 * 1 + 1 * 1]] = of ![![1, ↑n + 1], ![0, 1]]

tactic: congrm !![_, ?_; _, _]
state_before: case hp
n : ℕ
h : ↑(T ^ ↑n) = of ![![1, ↑n], ![0, 1]]
⊢ of ![![1 * 1 + ↑n * 0, 1 * 1 + ↑n * 1], ![0 * 1 + 1 * 0, 0 * 1 + 1 * 1]] = of ![![1, ↑n + 1], ![0, 1]]
state_after: case hp
n : ℕ
h : ↑(T ^ ↑n) = of ![![1, ↑n], ![0, 1]]
⊢ 1 * 1 + ↑n * 1 = ↑n + 1

tactic: rw [mul_one, mul_one, add_comm]
state_before: case hp
n : ℕ
h : ↑(T ^ ↑n) = of ![![1, ↑n], ![0, 1]]
⊢ 1 * 1 + ↑n * 1 = ↑n + 1
state_after: no goals

tactic: simp_rw [zpow_sub, zpow_one, coe_mul, h, coe_T_inv, Matrix.mul_fin_two]
state_before: case hn
n : ℕ
h : ↑(T ^ (-↑n)) = of ![![1, -↑n], ![0, 1]]
⊢ ↑(T ^ (-↑n - 1)) = of ![![1, -↑n - 1], ![0, 1]]
state_after: case hn
n : ℕ
h : ↑(T ^ (-↑n)) = of ![![1, -↑n], ![0, 1]]
⊢ of ![![1 * 1 + -↑n * 0, 1 * -1 + -↑n * 1], ![0 * 1 + 1 * 0, 0 * -1 + 1 * 1]] = of ![![1, -↑n - 1], ![0, 1]]

tactic: congrm !![?_, ?_; _, _] <;> ring
state_before: case hn
n : ℕ
h : ↑(T ^ (-↑n)) = of ![![1, -↑n], ![0, 1]]
⊢ of ![![1 * 1 + -↑n * 0, 1 * -1 + -↑n * 1], ![0 * 1 + 1 * 0, 0 * -1 + 1 * 1]] = of ![![1, -↑n - 1], ![0, 1]]
state_after: no goals
Theorem: gaugeSeminormFamily_ball
File: Mathlib/Analysis/LocallyConvex/AbsConvex.lean

tactic: dsimp only [gaugeSeminormFamily]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
inst✝⁶ : RCLike 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalSpace E
inst✝³ : Module 𝕜 E
inst✝² : Module ℝ E
inst✝¹ : IsScalarTower ℝ 𝕜 E
inst✝ : ContinuousSMul ℝ E
s : AbsConvexOpenSets 𝕜 E
⊢ (gaugeSeminormFamily 𝕜 E s).ball 0 1 = ↑s
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
inst✝⁶ : RCLike 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalSpace E
inst✝³ : Module 𝕜 E
inst✝² : Module ℝ E
inst✝¹ : IsScalarTower ℝ 𝕜 E
inst✝ : ContinuousSMul ℝ E
s : AbsConvexOpenSets 𝕜 E
⊢ (gaugeSeminorm ⋯ ⋯ ⋯).ball 0 1 = ↑s

tactic: rw [Seminorm.ball_zero_eq]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
inst✝⁶ : RCLike 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalSpace E
inst✝³ : Module 𝕜 E
inst✝² : Module ℝ E
inst✝¹ : IsScalarTower ℝ 𝕜 E
inst✝ : ContinuousSMul ℝ E
s : AbsConvexOpenSets 𝕜 E
⊢ (gaugeSeminorm ⋯ ⋯ ⋯).ball 0 1 = ↑s
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
inst✝⁶ : RCLike 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalSpace E
inst✝³ : Module 𝕜 E
inst✝² : Module ℝ E
inst✝¹ : IsScalarTower ℝ 𝕜 E
inst✝ : ContinuousSMul ℝ E
s : AbsConvexOpenSets 𝕜 E
⊢ {y | (gaugeSeminorm ⋯ ⋯ ⋯) y < 1} = ↑s

tactic: simp_rw [gaugeSeminorm_toFun]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
inst✝⁶ : RCLike 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalSpace E
inst✝³ : Module 𝕜 E
inst✝² : Module ℝ E
inst✝¹ : IsScalarTower ℝ 𝕜 E
inst✝ : ContinuousSMul ℝ E
s : AbsConvexOpenSets 𝕜 E
⊢ {y | (gaugeSeminorm ⋯ ⋯ ⋯) y < 1} = ↑s
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
inst✝⁶ : RCLike 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalSpace E
inst✝³ : Module 𝕜 E
inst✝² : Module ℝ E
inst✝¹ : IsScalarTower ℝ 𝕜 E
inst✝ : ContinuousSMul ℝ E
s : AbsConvexOpenSets 𝕜 E
⊢ {y | gauge (↑s) y < 1} = ↑s

tactic: exact gauge_lt_one_eq_self_of_isOpen s.coe_convex s.coe_zero_mem s.coe_isOpen
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
inst✝⁶ : RCLike 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalSpace E
inst✝³ : Module 𝕜 E
inst✝² : Module ℝ E
inst✝¹ : IsScalarTower ℝ 𝕜 E
inst✝ : ContinuousSMul ℝ E
s : AbsConvexOpenSets 𝕜 E
⊢ {y | gauge (↑s) y < 1} = ↑s
state_after: no goals
Theorem: Finset.image₂_congr
File: Mathlib/Data/Finset/NAry.lean

tactic: push_cast
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
h : ∀ a ∈ s, ∀ b ∈ t, f a b = f' a b
⊢ ↑(image₂ f s t) = ↑(image₂ f' s t)
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
h : ∀ a ∈ s, ∀ b ∈ t, f a b = f' a b
⊢ image2 f ↑s ↑t = image2 f' ↑s ↑t

tactic: exact image2_congr h
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
h : ∀ a ∈ s, ∀ b ∈ t, f a b = f' a b
⊢ image2 f ↑s ↑t = image2 f' ↑s ↑t
state_after: no goals
Theorem: Num.ofNat'_zero
File: Mathlib/Data/Num/Lemmas.lean

tactic: simp [Num.ofNat']
state_before: α : Type u_1
⊢ ofNat' 0 = 0
state_after: no goals
Theorem: FirstOrder.Language.BoundedFormula.all_semanticallyEquivalent_not_ex_not
File: Mathlib/ModelTheory/Satisfiability.lean

tactic: simp
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
φ✝ ψ : L.BoundedFormula α n
φ : L.BoundedFormula α (n + 1)
M : T.ModelType
v : α → ↑M
xs : Fin n → ↑M
⊢ (∀'φ ⇔ ∼(∃'∼φ)).Realize v xs
state_after: no goals
Theorem: TopologicalSpace.IsSeparable.secondCountableTopology
File: Mathlib/Topology/Metrizable/Basic.lean

tactic: letI := pseudoMetrizableSpacePseudoMetric X
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
π : ι → Type u_4
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : Finite ι
inst✝¹ : (i : ι) → TopologicalSpace (π i)
inst✝ : PseudoMetrizableSpace X
s : Set X
hs : IsSeparable s
⊢ SecondCountableTopology ↑s
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
π : ι → Type u_4
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : Finite ι
inst✝¹ : (i : ι) → TopologicalSpace (π i)
inst✝ : PseudoMetrizableSpace X
s : Set X
hs : IsSeparable s
this : PseudoMetricSpace X := pseudoMetrizableSpacePseudoMetric X
⊢ SecondCountableTopology ↑s

tactic: have := hs.separableSpace
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
π : ι → Type u_4
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : Finite ι
inst✝¹ : (i : ι) → TopologicalSpace (π i)
inst✝ : PseudoMetrizableSpace X
s : Set X
hs : IsSeparable s
this : PseudoMetricSpace X := pseudoMetrizableSpacePseudoMetric X
⊢ SecondCountableTopology ↑s
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
π : ι → Type u_4
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : Finite ι
inst✝¹ : (i : ι) → TopologicalSpace (π i)
inst✝ : PseudoMetrizableSpace X
s : Set X
hs : IsSeparable s
this✝ : PseudoMetricSpace X := pseudoMetrizableSpacePseudoMetric X
this : SeparableSpace ↑s
⊢ SecondCountableTopology ↑s

tactic: exact UniformSpace.secondCountable_of_separable s
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
π : ι → Type u_4
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : Finite ι
inst✝¹ : (i : ι) → TopologicalSpace (π i)
inst✝ : PseudoMetrizableSpace X
s : Set X
hs : IsSeparable s
this✝ : PseudoMetricSpace X := pseudoMetrizableSpacePseudoMetric X
this : SeparableSpace ↑s
⊢ SecondCountableTopology ↑s
state_after: no goals
Theorem: Real.tan_lt_tan_of_nonneg_of_lt_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: linarith
state_before: x y : ℝ
hx₁ : 0 ≤ x
hy₂ : y < π / 2
hxy : x < y
⊢ -(π / 2) < x
state_after: no goals
Theorem: Ordinal.bfamilyOfFamily'_typein
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: simp only [bfamilyOfFamily', enum_typein]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u_4
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
f : ι → α
i : ι
⊢ bfamilyOfFamily' r f (typein r i) ⋯ = f i
state_after: no goals
Theorem: Sum.isRight_map
File: .lake/packages/batteries/Batteries/Data/Sum/Lemmas.lean

tactic: cases x <;> rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
f : α → β
g : γ → δ
x : α ⊕ γ
⊢ (Sum.map f g x).isRight = x.isRight
state_after: no goals
Theorem: Multiset.max_le_of_forall_le
File: Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean

tactic: induction l using Quotient.inductionOn
state_before: ι : Type u_1
α✝ : Type u_2
β : Type u_3
α : Type u_4
inst✝¹ : LinearOrder α
inst✝ : OrderBot α
l : Multiset α
n : α
h : ∀ x ∈ l, x ≤ n
⊢ fold max ⊥ l ≤ n
state_after: case h
ι : Type u_1
α✝ : Type u_2
β : Type u_3
α : Type u_4
inst✝¹ : LinearOrder α
inst✝ : OrderBot α
n : α
a✝ : List α
h : ∀ x ∈ ⟦a✝⟧, x ≤ n
⊢ fold max ⊥ ⟦a✝⟧ ≤ n

tactic: simpa using List.max_le_of_forall_le _ _ h
state_before: case h
ι : Type u_1
α✝ : Type u_2
β : Type u_3
α : Type u_4
inst✝¹ : LinearOrder α
inst✝ : OrderBot α
n : α
a✝ : List α
h : ∀ x ∈ ⟦a✝⟧, x ≤ n
⊢ fold max ⊥ ⟦a✝⟧ ≤ n
state_after: no goals
Theorem: MultilinearMap.map_add_eq_map_add_linearDeriv_add
File: Mathlib/LinearAlgebra/Multilinear/Basic.lean

tactic: simp_rw [not_le, Nat.lt_succ, le_iff_lt_or_eq (b := 1), Nat.lt_one_iff, filter_or,
  ← powersetCard_eq_filter, sum_union (univ.pairwise_disjoint_powersetCard zero_ne_one),
  powersetCard_zero, powersetCard_one, sum_singleton, Finset.piecewise_empty, sum_map,
  Function.Embedding.coeFn_mk, Finset.piecewise_singleton, linearDeriv_apply, add_comm]
state_before: R : Type uR
S : Type uS
ι : Type uι
n : ℕ
M : Fin n.succ → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝⁶ : Semiring R
inst✝⁵ : (i : ι) → AddCommGroup (M₁ i)
inst✝⁴ : AddCommGroup M₂
inst✝³ : (i : ι) → Module R (M₁ i)
inst✝² : Module R M₂
f : MultilinearMap R M₁ M₂
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
x h : (i : ι) → M₁ i
⊢ ∑ x_1 ∈ filter (fun x => 2 ≤ x.card) Finset.univ.powerset, f (x_1.piecewise h x) +
      ∑ x_1 ∈ filter (fun x => ¬2 ≤ x.card) Finset.univ.powerset, f (x_1.piecewise h x) =
    f x + (f.linearDeriv x) h + ∑ s ∈ filter (fun x => 2 ≤ x.card) Finset.univ.powerset, f (s.piecewise h x)
state_after: no goals
Theorem: Set.Countable.substructure_closure
File: Mathlib/ModelTheory/Substructures.lean

tactic: haveI : Countable s := h.to_subtype
state_before: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝³ : L.Structure M
inst✝² : L.Structure N
inst✝¹ : L.Structure P
S : L.Substructure M
s : Set M
inst✝ : Countable ((l : ℕ) × L.Functions l)
h : s.Countable
⊢ Countable ↥((closure L).toFun s)
state_after: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝³ : L.Structure M
inst✝² : L.Structure N
inst✝¹ : L.Structure P
S : L.Substructure M
s : Set M
inst✝ : Countable ((l : ℕ) × L.Functions l)
h : s.Countable
this : Countable ↑s
⊢ Countable ↥((closure L).toFun s)

tactic: rw [← mk_le_aleph0_iff, ← lift_le_aleph0]
state_before: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝³ : L.Structure M
inst✝² : L.Structure N
inst✝¹ : L.Structure P
S : L.Substructure M
s : Set M
inst✝ : Countable ((l : ℕ) × L.Functions l)
h : s.Countable
this : Countable ↑s
⊢ Countable ↥((closure L).toFun s)
state_after: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝³ : L.Structure M
inst✝² : L.Structure N
inst✝¹ : L.Structure P
S : L.Substructure M
s : Set M
inst✝ : Countable ((l : ℕ) × L.Functions l)
h : s.Countable
this : Countable ↑s
⊢ lift.{?u.25422, w} #↥((closure L).toFun s) ≤ ℵ₀

tactic: exact lift_card_closure_le_card_term.trans mk_le_aleph0
state_before: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝³ : L.Structure M
inst✝² : L.Structure N
inst✝¹ : L.Structure P
S : L.Substructure M
s : Set M
inst✝ : Countable ((l : ℕ) × L.Functions l)
h : s.Countable
this : Countable ↑s
⊢ lift.{?u.25422, w} #↥((closure L).toFun s) ≤ ℵ₀
state_after: no goals
Theorem: Module.End.pos_finrank_genEigenspace_of_hasEigenvalue
File: Mathlib/LinearAlgebra/Eigenspace/Basic.lean

tactic: rw [finrank_bot]
state_before: K R : Type v
V M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : Field K
inst✝² : AddCommGroup V
inst✝¹ : Module K V
inst✝ : FiniteDimensional K V
f : End K V
k : ℕ
μ : K
hx : f.HasEigenvalue μ
hk : 0 < k
⊢ 0 = finrank K ↥⊥
state_after: no goals
Theorem: ENNReal.tendsto_nhds_coe_iff
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: rw [nhds_coe, tendsto_map'_iff]
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x✝ y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
α : Type u_4
l : Filter α
x : ℝ≥0
f : ℝ≥0∞ → α
⊢ Tendsto f (𝓝 ↑x) l ↔ Tendsto (f ∘ ofNNReal) (𝓝 x) l
state_after: no goals
Theorem: LinearIndependent.fintype_card_le_finrank
File: Mathlib/LinearAlgebra/Dimension/Finite.lean

tactic: simpa using h.cardinal_mk_le_finrank
state_before: R : Type u
M M₁ : Type v
M' : Type v'
ι✝ : Type w
inst✝⁹ : Ring R
inst✝⁸ : AddCommGroup M
inst✝⁷ : AddCommGroup M'
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : Module R M
inst✝⁴ : Module R M'
inst✝³ : Module R M₁
inst✝² : StrongRankCondition R
inst✝¹ : Module.Finite R M
ι : Type u_1
inst✝ : Fintype ι
b : ι → M
h : LinearIndependent R b
⊢ Fintype.card ι ≤ finrank R M
state_after: no goals
Theorem: Polynomial.aroots_C_mul
File: Mathlib/Algebra/Polynomial/Roots.lean

tactic: rw [aroots_def, Polynomial.map_mul, map_C, roots_C_mul]
state_before: R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
inst✝⁶ : CommRing R
inst✝⁵ : IsDomain R
p✝ q : R[X]
inst✝⁴ : CommRing T
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : Algebra T S
inst✝ : NoZeroSMulDivisors T S
a : T
p : T[X]
ha : a ≠ 0
⊢ (C a * p).aroots S = p.aroots S
state_after: case ha
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
inst✝⁶ : CommRing R
inst✝⁵ : IsDomain R
p✝ q : R[X]
inst✝⁴ : CommRing T
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : Algebra T S
inst✝ : NoZeroSMulDivisors T S
a : T
p : T[X]
ha : a ≠ 0
⊢ (algebraMap T S) a ≠ 0

tactic: rwa [map_ne_zero_iff]
state_before: case ha
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
inst✝⁶ : CommRing R
inst✝⁵ : IsDomain R
p✝ q : R[X]
inst✝⁴ : CommRing T
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : Algebra T S
inst✝ : NoZeroSMulDivisors T S
a : T
p : T[X]
ha : a ≠ 0
⊢ (algebraMap T S) a ≠ 0
state_after: case ha.hf
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
inst✝⁶ : CommRing R
inst✝⁵ : IsDomain R
p✝ q : R[X]
inst✝⁴ : CommRing T
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : Algebra T S
inst✝ : NoZeroSMulDivisors T S
a : T
p : T[X]
ha : a ≠ 0
⊢ Function.Injective ⇑(algebraMap T S)

tactic: exact NoZeroSMulDivisors.algebraMap_injective T S
state_before: case ha.hf
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
inst✝⁶ : CommRing R
inst✝⁵ : IsDomain R
p✝ q : R[X]
inst✝⁴ : CommRing T
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : Algebra T S
inst✝ : NoZeroSMulDivisors T S
a : T
p : T[X]
ha : a ≠ 0
⊢ Function.Injective ⇑(algebraMap T S)
state_after: no goals
Theorem: TopCat.Presheaf.pushforwardEq_hom_app
File: Mathlib/Topology/Sheaves/Presheaf.lean

tactic: dsimp [Functor.op]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : TopCat
f g : X ⟶ Y
h : f = g
ℱ : Presheaf C X
U : (Opens ↑Y)ᵒᵖ
⊢ (Opens.map f).op.obj U ⟶ (Opens.map g).op.obj U
state_after: C : Type u
inst✝ : Category.{v, u} C
X Y : TopCat
f g : X ⟶ Y
h : f = g
ℱ : Presheaf C X
U : (Opens ↑Y)ᵒᵖ
⊢ { unop := (Opens.map f).obj U.unop } ⟶ { unop := (Opens.map g).obj U.unop }

tactic: apply Quiver.Hom.op
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : TopCat
f g : X ⟶ Y
h : f = g
ℱ : Presheaf C X
U : (Opens ↑Y)ᵒᵖ
⊢ { unop := (Opens.map f).obj U.unop } ⟶ { unop := (Opens.map g).obj U.unop }
state_after: case f
C : Type u
inst✝ : Category.{v, u} C
X Y : TopCat
f g : X ⟶ Y
h : f = g
ℱ : Presheaf C X
U : (Opens ↑Y)ᵒᵖ
⊢ (Opens.map g).obj U.unop ⟶ (Opens.map f).obj U.unop

tactic: apply eqToHom
state_before: case f
C : Type u
inst✝ : Category.{v, u} C
X Y : TopCat
f g : X ⟶ Y
h : f = g
ℱ : Presheaf C X
U : (Opens ↑Y)ᵒᵖ
⊢ (Opens.map g).obj U.unop ⟶ (Opens.map f).obj U.unop
state_after: case f.p
C : Type u
inst✝ : Category.{v, u} C
X Y : TopCat
f g : X ⟶ Y
h : f = g
ℱ : Presheaf C X
U : (Opens ↑Y)ᵒᵖ
⊢ (Opens.map g).obj U.unop = (Opens.map f).obj U.unop

tactic: rw [h]
state_before: case f.p
C : Type u
inst✝ : Category.{v, u} C
X Y : TopCat
f g : X ⟶ Y
h : f = g
ℱ : Presheaf C X
U : (Opens ↑Y)ᵒᵖ
⊢ (Opens.map g).obj U.unop = (Opens.map f).obj U.unop
state_after: no goals

tactic: simp [pushforwardEq]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : TopCat
f g : X ⟶ Y
h : f = g
ℱ : Presheaf C X
U : (Opens ↑Y)ᵒᵖ
⊢ (pushforwardEq h ℱ).hom.app U = ℱ.map (id (eqToHom ⋯).op)
state_after: no goals
Theorem: PMF.toOuterMeasure_apply_finset
File: Mathlib/Probability/ProbabilityMassFunction/Basic.lean

tactic: refine (toOuterMeasure_apply p s).trans ((tsum_eq_sum (s := s) ?_).trans ?_)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
p : PMF α
s✝ t : Set α
s : Finset α
⊢ p.toOuterMeasure ↑s = ∑ x ∈ s, p x
state_after: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
p : PMF α
s✝ t : Set α
s : Finset α
⊢ ∀ b ∉ s, (↑s).indicator (⇑p) b = 0

case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
p : PMF α
s✝ t : Set α
s : Finset α
⊢ ∑ b ∈ s, (↑s).indicator (⇑p) b = ∑ x ∈ s, p x

tactic: exact fun x hx => Set.indicator_of_not_mem (Finset.mem_coe.not.2 hx) _
state_before: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
p : PMF α
s✝ t : Set α
s : Finset α
⊢ ∀ b ∉ s, (↑s).indicator (⇑p) b = 0
state_after: no goals

tactic: exact Finset.sum_congr rfl fun x hx => Set.indicator_of_mem (Finset.mem_coe.2 hx) _
state_before: case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
p : PMF α
s✝ t : Set α
s : Finset α
⊢ ∑ b ∈ s, (↑s).indicator (⇑p) b = ∑ x ∈ s, p x
state_after: no goals
Theorem: contDiffWithinAt_prod
File: Mathlib/Analysis/Calculus/ContDiff/Basic.lean

tactic: simpa only [← Finset.prod_apply] using contDiffWithinAt_prod' h
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹⁵ : NormedAddCommGroup D
inst✝¹⁴ : NormedSpace 𝕜 D
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type u_2
inst✝⁷ : NormedAddCommGroup X
inst✝⁶ : NormedSpace 𝕜 X
s s₁ t✝ u : Set E
f✝ f₁ : E → F
g : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
𝔸 : Type u_3
𝔸' : Type u_4
ι : Type u_5
𝕜' : Type u_6
inst✝⁵ : NormedRing 𝔸
inst✝⁴ : NormedAlgebra 𝕜 𝔸
inst✝³ : NormedCommRing 𝔸'
inst✝² : NormedAlgebra 𝕜 𝔸'
inst✝¹ : NormedField 𝕜'
inst✝ : NormedAlgebra 𝕜 𝕜'
t : Finset ι
f : ι → E → 𝔸'
h : ∀ i ∈ t, ContDiffWithinAt 𝕜 n (f i) s x
⊢ ContDiffWithinAt 𝕜 n (fun y => ∏ i ∈ t, f i y) s x
state_after: no goals
Theorem: quasiIsoAt_of_comp_left
File: Mathlib/Algebra/Homology/QuasiIso.lean

tactic: rw [quasiIsoAt_iff_isIso_homologyMap] at hφ hφφ' ⊢
state_before: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
c : ComplexShape ι
K L M K' L' : HomologicalComplex C c
φ : K ⟶ L
φ' : L ⟶ M
i : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
hφ : QuasiIsoAt φ i
hφφ' : QuasiIsoAt (φ ≫ φ') i
⊢ QuasiIsoAt φ' i
state_after: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
c : ComplexShape ι
K L M K' L' : HomologicalComplex C c
φ : K ⟶ L
φ' : L ⟶ M
i : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
hφ : IsIso (homologyMap φ i)
hφφ' : IsIso (homologyMap (φ ≫ φ') i)
⊢ IsIso (homologyMap φ' i)

tactic: rw [homologyMap_comp] at hφφ'
state_before: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
c : ComplexShape ι
K L M K' L' : HomologicalComplex C c
φ : K ⟶ L
φ' : L ⟶ M
i : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
hφ : IsIso (homologyMap φ i)
hφφ' : IsIso (homologyMap (φ ≫ φ') i)
⊢ IsIso (homologyMap φ' i)
state_after: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
c : ComplexShape ι
K L M K' L' : HomologicalComplex C c
φ : K ⟶ L
φ' : L ⟶ M
i : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
hφ : IsIso (homologyMap φ i)
hφφ' : IsIso (homologyMap φ i ≫ homologyMap φ' i)
⊢ IsIso (homologyMap φ' i)

tactic: exact IsIso.of_isIso_comp_left (homologyMap φ i) (homologyMap φ' i)
state_before: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
c : ComplexShape ι
K L M K' L' : HomologicalComplex C c
φ : K ⟶ L
φ' : L ⟶ M
i : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
hφ : IsIso (homologyMap φ i)
hφφ' : IsIso (homologyMap φ i ≫ homologyMap φ' i)
⊢ IsIso (homologyMap φ' i)
state_after: no goals
Theorem: Matrix.row_add
File: Mathlib/Data/Matrix/RowCol.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝ : Add α
v w : m → α
⊢ row ι (v + w) = row ι v + row ι w
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝ : Add α
v w : m → α
i✝ : ι
j✝ : m
⊢ row ι (v + w) i✝ j✝ = (row ι v + row ι w) i✝ j✝

tactic: rfl
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝ : Add α
v w : m → α
i✝ : ι
j✝ : m
⊢ row ι (v + w) i✝ j✝ = (row ι v + row ι w) i✝ j✝
state_after: no goals
Theorem: Set.strictMonoOn_projIcc
File: Mathlib/Order/Interval/Set/ProjIcc.lean

tactic: simpa only [projIcc_of_mem, hx, hy]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x✝ x : α
hx : x ∈ Icc a b
y : α
hy : y ∈ Icc a b
hxy : x < y
⊢ projIcc a b h x < projIcc a b h y
state_after: no goals
Theorem: continuousWithinAt_Ico_iff_Iio
File: Mathlib/Topology/Order/OrderClosed.lean

tactic: simp only [ContinuousWithinAt, nhdsWithin_Ico_eq_nhdsWithin_Iio h]
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : ClosedIicTopology α
inst✝ : TopologicalSpace β
a b c : α
f : α → β
h : a < b
⊢ ContinuousWithinAt f (Ico a b) b ↔ ContinuousWithinAt f (Iio b) b
state_after: no goals