1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: bernoulli'_three
File: Mathlib/NumberTheory/Bernoulli.lean

tactic: rw [bernoulli'_def]
state_before: A : Type u_1
inst✝¹ : CommRing A
inst✝ : Algebra ℚ A
⊢ bernoulli' 3 = 0
state_after: A : Type u_1
inst✝¹ : CommRing A
inst✝ : Algebra ℚ A
⊢ 1 - ∑ k ∈ range 3, ↑(Nat.choose 3 k) / (↑3 - ↑k + 1) * bernoulli' k = 0

tactic: norm_num [sum_range_succ, sum_range_succ, sum_range_zero]
state_before: A : Type u_1
inst✝¹ : CommRing A
inst✝ : Algebra ℚ A
⊢ 1 - ∑ k ∈ range 3, ↑(Nat.choose 3 k) / (↑3 - ↑k + 1) * bernoulli' k = 0
state_after: no goals
Theorem: Ordinal.nfpBFamily_lt_ord_lift
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rwa [mk_ordinal_out]
state_before: α : Type u_1
r : α → α → Prop
o : Ordinal.{u}
f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v} → Ordinal.{max u v}
c : Ordinal.{max u v}
hc : ℵ₀ < c.cof
hc' : Cardinal.lift.{v, u} o.card < c.cof
hf : ∀ (i : Ordinal.{u}) (hi : i < o), ∀ b < c, f i hi b < c
a : Ordinal.{max u v}
⊢ Cardinal.lift.{v, u} #(Quotient.out o).α < c.cof
state_after: no goals
Theorem: inv_pos_lt_iff_one_lt_mul'
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [inv_eq_one_div]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : 0 < a
⊢ a⁻¹ < b ↔ 1 < a * b
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : 0 < a
⊢ 1 / a < b ↔ 1 < a * b

tactic: exact div_lt_iff' ha
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : 0 < a
⊢ 1 / a < b ↔ 1 < a * b
state_after: no goals
Theorem: NumberField.ComplexEmbedding.IsReal.coe_embedding_apply
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

tactic: apply Complex.ext
state_before: K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
φ : K →+* ℂ
hφ : IsReal φ
x : K
⊢ ↑(hφ.embedding x) = φ x
state_after: case a
K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
φ : K →+* ℂ
hφ : IsReal φ
x : K
⊢ (↑(hφ.embedding x)).re = (φ x).re

case a
K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
φ : K →+* ℂ
hφ : IsReal φ
x : K
⊢ (↑(hφ.embedding x)).im = (φ x).im

tactic: rfl
state_before: case a
K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
φ : K →+* ℂ
hφ : IsReal φ
x : K
⊢ (↑(hφ.embedding x)).re = (φ x).re
state_after: no goals

tactic: rw [ofReal_im, eq_comm, ← Complex.conj_eq_iff_im]
state_before: case a
K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
φ : K →+* ℂ
hφ : IsReal φ
x : K
⊢ (↑(hφ.embedding x)).im = (φ x).im
state_after: case a
K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
φ : K →+* ℂ
hφ : IsReal φ
x : K
⊢ (starRingEnd ℂ) (φ x) = φ x

tactic: exact RingHom.congr_fun hφ x
state_before: case a
K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
φ : K →+* ℂ
hφ : IsReal φ
x : K
⊢ (starRingEnd ℂ) (φ x) = φ x
state_after: no goals
Theorem: PartitionOfUnity.finsupport_subset_fintsupport
File: Mathlib/Topology/PartitionOfUnity.lean

tactic: rw [ρ.mem_fintsupport_iff]
state_before: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ : X
i : ι
hi : i ∈ ρ.finsupport x₀
⊢ i ∈ ρ.fintsupport x₀
state_after: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ : X
i : ι
hi : i ∈ ρ.finsupport x₀
⊢ x₀ ∈ tsupport ⇑(ρ i)

tactic: apply subset_closure
state_before: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ : X
i : ι
hi : i ∈ ρ.finsupport x₀
⊢ x₀ ∈ tsupport ⇑(ρ i)
state_after: case a
ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ : X
i : ι
hi : i ∈ ρ.finsupport x₀
⊢ x₀ ∈ support ⇑(ρ i)

tactic: exact (ρ.mem_finsupport x₀).mp hi
state_before: case a
ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀ : X
i : ι
hi : i ∈ ρ.finsupport x₀
⊢ x₀ ∈ support ⇑(ρ i)
state_after: no goals
Theorem: PowerSeries.trunc_succ
File: Mathlib/RingTheory/PowerSeries/Trunc.lean

tactic: rw [trunc, Ico_zero_eq_range, sum_range_succ, trunc, Ico_zero_eq_range]
state_before: R : Type u_1
inst✝ : Semiring R
f : R⟦X⟧
n : ℕ
⊢ trunc n.succ f = trunc n f + (Polynomial.monomial n) ((coeff R n) f)
state_after: no goals
Theorem: zero_div
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: rw [div_eq_mul_inv, zero_mul]
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
⊢ 0 / a = 0
state_after: no goals
Theorem: Mathlib.Meta.NormNum.jacobiSymNat.zero_right
File: Mathlib/Tactic/NormNum/LegendreSymbol.lean

tactic: rw [jacobiSymNat, jacobiSym.zero_right]
state_before: a : ℕ
⊢ jacobiSymNat a 0 = 1
state_after: no goals
Theorem: List.getElem_cyclicPermutations
File: Mathlib/Data/List/Rotate.lean

tactic: cases l with
| nil => simp
| cons a l =>
  simp only [cyclicPermutations_cons, getElem_dropLast, getElem_zipWith, getElem_tails,
    getElem_inits]
  rw [rotate_eq_drop_append_take (by simpa using h.le)]
state_before: α : Type u
l✝ l' l : List α
n : ℕ
h : n < l.cyclicPermutations.length
⊢ l.cyclicPermutations[n] = l.rotate n
state_after: no goals

tactic: simp
state_before: case nil
α : Type u
l l' : List α
n : ℕ
h : n < [].cyclicPermutations.length
⊢ [].cyclicPermutations[n] = [].rotate n
state_after: no goals

tactic: simp only [cyclicPermutations_cons, getElem_dropLast, getElem_zipWith, getElem_tails,
  getElem_inits]
state_before: case cons
α : Type u
l✝ l' : List α
n : ℕ
a : α
l : List α
h : n < (a :: l).cyclicPermutations.length
⊢ (a :: l).cyclicPermutations[n] = (a :: l).rotate n
state_after: case cons
α : Type u
l✝ l' : List α
n : ℕ
a : α
l : List α
h : n < (a :: l).cyclicPermutations.length
⊢ drop n (a :: l) ++ take n (a :: l) = (a :: l).rotate n

tactic: rw [rotate_eq_drop_append_take (by simpa using h.le)]
state_before: case cons
α : Type u
l✝ l' : List α
n : ℕ
a : α
l : List α
h : n < (a :: l).cyclicPermutations.length
⊢ drop n (a :: l) ++ take n (a :: l) = (a :: l).rotate n
state_after: no goals

tactic: simpa using h.le
state_before: α : Type u
l✝ l' : List α
n : ℕ
a : α
l : List α
h : n < (a :: l).cyclicPermutations.length
⊢ n ≤ (a :: l).length
state_after: no goals
Theorem: MeasureTheory.Measure.InnerRegular.innerRegularWRT_isClosed_isOpen
File: Mathlib/MeasureTheory/Measure/Regular.lean

tactic: intro U hU r hr
state_before: α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
U : Set α
ε : ℝ≥0∞
inst✝¹ : R1Space α
inst✝ : OpensMeasurableSpace α
h : μ.InnerRegular
⊢ μ.InnerRegularWRT IsClosed IsOpen
state_after: α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
U✝ : Set α
ε : ℝ≥0∞
inst✝¹ : R1Space α
inst✝ : OpensMeasurableSpace α
h : μ.InnerRegular
U : Set α
hU : IsOpen U
r : ℝ≥0∞
hr : r < μ U
⊢ ∃ K ⊆ U, IsClosed K ∧ r < μ K

tactic: rcases h.innerRegular hU.measurableSet r hr with ⟨K, KU, K_comp, hK⟩
state_before: α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
U✝ : Set α
ε : ℝ≥0∞
inst✝¹ : R1Space α
inst✝ : OpensMeasurableSpace α
h : μ.InnerRegular
U : Set α
hU : IsOpen U
r : ℝ≥0∞
hr : r < μ U
⊢ ∃ K ⊆ U, IsClosed K ∧ r < μ K
state_after: case intro.intro.intro
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
U✝ : Set α
ε : ℝ≥0∞
inst✝¹ : R1Space α
inst✝ : OpensMeasurableSpace α
h : μ.InnerRegular
U : Set α
hU : IsOpen U
r : ℝ≥0∞
hr : r < μ U
K : Set α
KU : K ⊆ U
K_comp : IsCompact K
hK : r < μ K
⊢ ∃ K ⊆ U, IsClosed K ∧ r < μ K

tactic: exact ⟨closure K, K_comp.closure_subset_of_isOpen hU KU, isClosed_closure,
  hK.trans_le (measure_mono subset_closure)⟩
state_before: case intro.intro.intro
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
U✝ : Set α
ε : ℝ≥0∞
inst✝¹ : R1Space α
inst✝ : OpensMeasurableSpace α
h : μ.InnerRegular
U : Set α
hU : IsOpen U
r : ℝ≥0∞
hr : r < μ U
K : Set α
KU : K ⊆ U
K_comp : IsCompact K
hK : r < μ K
⊢ ∃ K ⊆ U, IsClosed K ∧ r < μ K
state_after: no goals
Theorem: eventually_mapsTo_of_isOpen_of_omegaLimit_subset
File: Mathlib/Dynamics/OmegaLimit.lean

tactic: rcases eventually_closure_subset_of_isOpen_of_omegaLimit_subset f ϕ s hv₁ hv₂ with ⟨u, hu_mem, hu⟩
state_before: τ : Type u_1
α : Type u_2
β : Type u_3
ι : Type u_4
inst✝¹ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
inst✝ : CompactSpace β
v : Set β
hv₁ : IsOpen v
hv₂ : ω f ϕ s ⊆ v
⊢ ∀ᶠ (t : τ) in f, MapsTo (ϕ t) s v
state_after: case intro.intro
τ : Type u_1
α : Type u_2
β : Type u_3
ι : Type u_4
inst✝¹ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
inst✝ : CompactSpace β
v : Set β
hv₁ : IsOpen v
hv₂ : ω f ϕ s ⊆ v
u : Set τ
hu_mem : u ∈ f
hu : closure (image2 ϕ u s) ⊆ v
⊢ ∀ᶠ (t : τ) in f, MapsTo (ϕ t) s v

tactic: refine mem_of_superset hu_mem fun t ht x hx ↦ ?_
state_before: case intro.intro
τ : Type u_1
α : Type u_2
β : Type u_3
ι : Type u_4
inst✝¹ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
inst✝ : CompactSpace β
v : Set β
hv₁ : IsOpen v
hv₂ : ω f ϕ s ⊆ v
u : Set τ
hu_mem : u ∈ f
hu : closure (image2 ϕ u s) ⊆ v
⊢ ∀ᶠ (t : τ) in f, MapsTo (ϕ t) s v
state_after: case intro.intro
τ : Type u_1
α : Type u_2
β : Type u_3
ι : Type u_4
inst✝¹ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
inst✝ : CompactSpace β
v : Set β
hv₁ : IsOpen v
hv₂ : ω f ϕ s ⊆ v
u : Set τ
hu_mem : u ∈ f
hu : closure (image2 ϕ u s) ⊆ v
t : τ
ht : t ∈ u
x : α
hx : x ∈ s
⊢ ϕ t x ∈ v

tactic: exact hu (subset_closure <| mem_image2_of_mem ht hx)
state_before: case intro.intro
τ : Type u_1
α : Type u_2
β : Type u_3
ι : Type u_4
inst✝¹ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
inst✝ : CompactSpace β
v : Set β
hv₁ : IsOpen v
hv₂ : ω f ϕ s ⊆ v
u : Set τ
hu_mem : u ∈ f
hu : closure (image2 ϕ u s) ⊆ v
t : τ
ht : t ∈ u
x : α
hx : x ∈ s
⊢ ϕ t x ∈ v
state_after: no goals
Theorem: Set.offDiag_univ
File: Mathlib/Data/Set/Prod.lean

tactic: simp
state_before: α : Type u_1
s t : Set α
x : α × α
a : α
⊢ ∀ (x : α × α), x ∈ univ.offDiag ↔ x ∈ (diagonal α)ᶜ
state_after: no goals
Theorem: MeasureTheory.Measure.mconv_comm
File: Mathlib/MeasureTheory/Group/Convolution.lean

tactic: unfold mconv
state_before: M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ μ ∗ ν = ν ∗ μ
state_after: M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ map (fun x => x.1 * x.2) (μ.prod ν) = map (fun x => x.1 * x.2) (ν.prod μ)

tactic: rw [← prod_swap, map_map]
state_before: M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ map (fun x => x.1 * x.2) (μ.prod ν) = map (fun x => x.1 * x.2) (ν.prod μ)
state_after: M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ map ((fun x => x.1 * x.2) ∘ Prod.swap) (ν.prod μ) = map (fun x => x.1 * x.2) (ν.prod μ)

case hg
M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ Measurable fun x => x.1 * x.2

case hf
M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ Measurable Prod.swap

tactic: measurability
state_before: case hf
M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ Measurable Prod.swap
state_after: no goals

tactic: simp [Function.comp_def, mul_comm]
state_before: M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ map ((fun x => x.1 * x.2) ∘ Prod.swap) (ν.prod μ) = map (fun x => x.1 * x.2) (ν.prod μ)
state_after: no goals

tactic: exact Measurable.mul measurable_fst measurable_snd
state_before: case hg
M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ Measurable fun x => x.1 * x.2
state_after: no goals
Theorem: Polynomial.coeff_mul_monomial
File: Mathlib/Algebra/Polynomial/Coeff.lean

tactic: rw [← C_mul_X_pow_eq_monomial, ← X_pow_mul, ← mul_assoc, coeff_mul_C, coeff_mul_X_pow]
state_before: R : Type u
S : Type v
a b : R
n✝ m : ℕ
inst✝ : Semiring R
p✝ q r✝ p : R[X]
n d : ℕ
r : R
⊢ (p * (monomial n) r).coeff (d + n) = p.coeff d * r
state_after: no goals
Theorem: Equiv.zpow_addRight
File: Mathlib/GroupTheory/Perm/Basic.lean

tactic: simp
state_before: α : Type u
β : Type v
inst✝ : AddGroup α
a b : α
n : ℕ
⊢ Equiv.addRight a ^ Int.ofNat n = Equiv.addRight (Int.ofNat n • a)
state_after: no goals

tactic: simp
state_before: α : Type u
β : Type v
inst✝ : AddGroup α
a b : α
n : ℕ
⊢ Equiv.addRight a ^ Int.negSucc n = Equiv.addRight (Int.negSucc n • a)
state_after: no goals
Theorem: DFinsupp.single_smul
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: simp only [smul_apply, single_apply]
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
i✝ : ι
c : γ
x : β i✝
i : ι
⊢ (single i✝ (c • x)) i = (c • single i✝ x) i
state_after: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
i✝ : ι
c : γ
x : β i✝
i : ι
⊢ (if h : i✝ = i then ⋯ ▸ (c • x) else 0) = c • if h : i✝ = i then ⋯ ▸ x else 0

tactic: split_ifs with h
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
i✝ : ι
c : γ
x : β i✝
i : ι
⊢ (if h : i✝ = i then ⋯ ▸ (c • x) else 0) = c • if h : i✝ = i then ⋯ ▸ x else 0
state_after: case pos
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
i✝ : ι
c : γ
x : β i✝
i : ι
h : i✝ = i
⊢ ⋯ ▸ (c • x) = c • ⋯ ▸ x

case neg
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
i✝ : ι
c : γ
x : β i✝
i : ι
h : ¬i✝ = i
⊢ 0 = c • 0

tactic: cases h
state_before: case pos
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
i✝ : ι
c : γ
x : β i✝
i : ι
h : i✝ = i
⊢ ⋯ ▸ (c • x) = c • ⋯ ▸ x
state_after: case pos.refl
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
i : ι
c : γ
x : β i
⊢ ⋯ ▸ (c • x) = c • ⋯ ▸ x

tactic: rfl
state_before: case pos.refl
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
i : ι
c : γ
x : β i
⊢ ⋯ ▸ (c • x) = c • ⋯ ▸ x
state_after: no goals

tactic: rw [smul_zero]
state_before: case neg
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
i✝ : ι
c : γ
x : β i✝
i : ι
h : ¬i✝ = i
⊢ 0 = c • 0
state_after: no goals
Theorem: WeierstrassCurve.Affine.baseChange_polynomial
File: Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean

tactic: rw [← map_polynomial, map_baseChange]
state_before: R✝ : Type u
inst✝¹¹ : CommRing R✝
W✝ : Affine R✝
R : Type r
inst✝¹⁰ : CommRing R
W : Affine R
S : Type s
inst✝⁹ : CommRing S
inst✝⁸ : Algebra R S
A : Type u
inst✝⁷ : CommRing A
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra S A
inst✝⁴ : IsScalarTower R S A
B : Type v
inst✝³ : CommRing B
inst✝² : Algebra R B
inst✝¹ : Algebra S B
inst✝ : IsScalarTower R S B
f : A →ₐ[S] B
⊢ (baseChange W B).toAffine.polynomial = Polynomial.map (mapRingHom ↑f) (baseChange W A).toAffine.polynomial
state_after: no goals
Theorem: CliffordAlgebra.changeForm_ι_mul_ι
File: Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean

tactic: rw [changeForm_ι_mul, changeForm_ι, contractLeft_ι]
state_before: R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
m₁ m₂ : M
⊢ (changeForm h) ((ι Q) m₁ * (ι Q) m₂) = (ι Q') m₁ * (ι Q') m₂ - (algebraMap R (CliffordAlgebra Q')) ((B m₁) m₂)
state_after: no goals
Theorem: PerfectRing.lift_comp_apply
File: Mathlib/FieldTheory/IsPerfectClosure.lean

tactic: rw [lift_apply i j p _ 0 x (by rw [pow_zero, pow_one]), iterateFrobeniusEquiv_zero]
state_before: K : Type u_1
L : Type u_2
M : Type u_3
N : Type u_4
inst✝⁹ : CommRing K
inst✝⁸ : CommRing L
inst✝⁷ : CommRing M
inst✝⁶ : CommRing N
i : K →+* L
j : K →+* M
k : K →+* N
f : L →+* M
g : L →+* N
p : ℕ
inst✝⁵ : ExpChar K p
inst✝⁴ : ExpChar L p
inst✝³ : ExpChar M p
inst✝² : ExpChar N p
inst✝¹ : PerfectRing M p
inst✝ : IsPRadical i p
x : K
⊢ (lift i j p) (i x) = j x
state_after: K : Type u_1
L : Type u_2
M : Type u_3
N : Type u_4
inst✝⁹ : CommRing K
inst✝⁸ : CommRing L
inst✝⁷ : CommRing M
inst✝⁶ : CommRing N
i : K →+* L
j : K →+* M
k : K →+* N
f : L →+* M
g : L →+* N
p : ℕ
inst✝⁵ : ExpChar K p
inst✝⁴ : ExpChar L p
inst✝³ : ExpChar M p
inst✝² : ExpChar N p
inst✝¹ : PerfectRing M p
inst✝ : IsPRadical i p
x : K
⊢ (RingEquiv.refl M).symm (j x) = j x

tactic: rfl
state_before: K : Type u_1
L : Type u_2
M : Type u_3
N : Type u_4
inst✝⁹ : CommRing K
inst✝⁸ : CommRing L
inst✝⁷ : CommRing M
inst✝⁶ : CommRing N
i : K →+* L
j : K →+* M
k : K →+* N
f : L →+* M
g : L →+* N
p : ℕ
inst✝⁵ : ExpChar K p
inst✝⁴ : ExpChar L p
inst✝³ : ExpChar M p
inst✝² : ExpChar N p
inst✝¹ : PerfectRing M p
inst✝ : IsPRadical i p
x : K
⊢ (RingEquiv.refl M).symm (j x) = j x
state_after: no goals

tactic: rw [pow_zero, pow_one]
state_before: K : Type u_1
L : Type u_2
M : Type u_3
N : Type u_4
inst✝⁹ : CommRing K
inst✝⁸ : CommRing L
inst✝⁷ : CommRing M
inst✝⁶ : CommRing N
i : K →+* L
j : K →+* M
k : K →+* N
f : L →+* M
g : L →+* N
p : ℕ
inst✝⁵ : ExpChar K p
inst✝⁴ : ExpChar L p
inst✝³ : ExpChar M p
inst✝² : ExpChar N p
inst✝¹ : PerfectRing M p
inst✝ : IsPRadical i p
x : K
⊢ i x = i x ^ p ^ 0
state_after: no goals
Theorem: NumberField.InfinitePlace.norm_embedding_of_isReal
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

tactic: rw [← norm_embedding_eq, ← embedding_of_isReal_apply hw, Complex.norm_real]
state_before: k : Type u_1
inst✝² : Field k
K : Type u_2
inst✝¹ : Field K
F : Type u_3
inst✝ : Field F
w : InfinitePlace K
hw : w.IsReal
x : K
⊢ ‖(embedding_of_isReal hw) x‖ = w x
state_after: no goals
Theorem: WithSeminorms.separating_iff_T1
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

tactic: refine ⟨WithSeminorms.T1_of_separating hp, ?_⟩
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
⊢ (∀ (x : E), x ≠ 0 → ∃ i, (p i) x ≠ 0) ↔ T1Space E
state_after: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
⊢ T1Space E → ∀ (x : E), x ≠ 0 → ∃ i, (p i) x ≠ 0

tactic: intro
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
⊢ T1Space E → ∀ (x : E), x ≠ 0 → ∃ i, (p i) x ≠ 0
state_after: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
a✝ : T1Space E
⊢ ∀ (x : E), x ≠ 0 → ∃ i, (p i) x ≠ 0

tactic: exact WithSeminorms.separating_of_T1 hp
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
a✝ : T1Space E
⊢ ∀ (x : E), x ≠ 0 → ∃ i, (p i) x ≠ 0
state_after: no goals