1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: AddChar.FiniteField.primitiveChar_to_Complex_isPrimitive
File: Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean

tactic: refine IsPrimitive.compMulHom_of_isPrimitive (PrimitiveAddChar.prim _) ?_
state_before: F : Type u_1
inst✝² : Field F
inst✝¹ : Finite F
inst✝ : DecidableEq F
⊢ (primitiveChar_to_Complex F).IsPrimitive
state_after: F : Type u_1
inst✝² : Field F
inst✝¹ : Finite F
inst✝ : DecidableEq F
⊢ Function.Injective
    ⇑↑(IsCyclotomicExtension.algEquiv (primitiveChar F ℂ ⋯).n ℂ (CyclotomicField (primitiveChar F ℂ ⋯).n ℂ) ℂ)

tactic: let nn := (primitiveChar F ℂ <| ringChar_ne F).n
state_before: F : Type u_1
inst✝² : Field F
inst✝¹ : Finite F
inst✝ : DecidableEq F
⊢ Function.Injective
    ⇑↑(IsCyclotomicExtension.algEquiv (primitiveChar F ℂ ⋯).n ℂ (CyclotomicField (primitiveChar F ℂ ⋯).n ℂ) ℂ)
state_after: F : Type u_1
inst✝² : Field F
inst✝¹ : Finite F
inst✝ : DecidableEq F
nn : ℕ+ := (primitiveChar F ℂ ⋯).n
⊢ Function.Injective
    ⇑↑(IsCyclotomicExtension.algEquiv (primitiveChar F ℂ ⋯).n ℂ (CyclotomicField (primitiveChar F ℂ ⋯).n ℂ) ℂ)

tactic: exact (IsCyclotomicExtension.algEquiv nn ℂ (CyclotomicField nn ℂ) ℂ).injective
state_before: F : Type u_1
inst✝² : Field F
inst✝¹ : Finite F
inst✝ : DecidableEq F
nn : ℕ+ := (primitiveChar F ℂ ⋯).n
⊢ Function.Injective
    ⇑↑(IsCyclotomicExtension.algEquiv (primitiveChar F ℂ ⋯).n ℂ (CyclotomicField (primitiveChar F ℂ ⋯).n ℂ) ℂ)
state_after: no goals
Theorem: Finsupp.lsum_comp_lsingle
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: ext
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
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
inst✝¹ : Module S N
inst✝ : SMulCommClass R S N
f : α → M →ₗ[R] N
i : α
⊢ (lsum S) f ∘ₗ lsingle i = f i
state_after: case h
α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
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
inst✝¹ : Module S N
inst✝ : SMulCommClass R S N
f : α → M →ₗ[R] N
i : α
x✝ : M
⊢ ((lsum S) f ∘ₗ lsingle i) x✝ = (f i) x✝

tactic: simp
state_before: case h
α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
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
inst✝¹ : Module S N
inst✝ : SMulCommClass R S N
f : α → M →ₗ[R] N
i : α
x✝ : M
⊢ ((lsum S) f ∘ₗ lsingle i) x✝ = (f i) x✝
state_after: no goals
Theorem: frequently_frequently_nhds
File: Mathlib/Topology/Basic.lean

tactic: rw [← not_iff_not]
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p✝ p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
p : X → Prop
⊢ (∃ᶠ (x' : X) in 𝓝 x, ∃ᶠ (x'' : X) in 𝓝 x', p x'') ↔ ∃ᶠ (x : X) in 𝓝 x, p x
state_after: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p✝ p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
p : X → Prop
⊢ (¬∃ᶠ (x' : X) in 𝓝 x, ∃ᶠ (x'' : X) in 𝓝 x', p x'') ↔ ¬∃ᶠ (x : X) in 𝓝 x, p x

tactic: simp only [not_frequently, eventually_eventually_nhds]
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p✝ p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
p : X → Prop
⊢ (¬∃ᶠ (x' : X) in 𝓝 x, ∃ᶠ (x'' : X) in 𝓝 x', p x'') ↔ ¬∃ᶠ (x : X) in 𝓝 x, p x
state_after: no goals
Theorem: Batteries.HashMap.Imp.Buckets.WF.mk'
File: .lake/packages/batteries/Batteries/Data/HashMap/WF.lean

tactic: refine ⟨fun _ h => ?_, fun i h => ?_⟩
state_before: α : Type u_1
β : Type u_2
n : Nat
inst✝¹ : BEq α
inst✝ : Hashable α
h : 0 < n
⊢ (Buckets.mk n h).WF
state_after: case refine_1
α : Type u_1
β : Type u_2
n : Nat
inst✝³ : BEq α
inst✝² : Hashable α
h✝ : 0 < n
inst✝¹ : LawfulHashable α
inst✝ : PartialEquivBEq α
x✝ : AssocList α β
h : x✝ ∈ (Buckets.mk n h✝).val.data
⊢ List.Pairwise (fun a b => ¬(a.fst == b.fst) = true) x✝.toList

case refine_2
α : Type u_1
β : Type u_2
n : Nat
inst✝¹ : BEq α
inst✝ : Hashable α
h✝ : 0 < n
i : Nat
h : i < (Buckets.mk n h✝).val.size
⊢ AssocList.All (fun k x => ((hash k).toUSize % (Buckets.mk n h✝).val.size).toNat = i) (Buckets.mk n h✝).val[i]

tactic: simp only [Buckets.mk, mkArray, List.mem_replicate, ne_eq] at h
state_before: case refine_1
α : Type u_1
β : Type u_2
n : Nat
inst✝³ : BEq α
inst✝² : Hashable α
h✝ : 0 < n
inst✝¹ : LawfulHashable α
inst✝ : PartialEquivBEq α
x✝ : AssocList α β
h : x✝ ∈ (Buckets.mk n h✝).val.data
⊢ List.Pairwise (fun a b => ¬(a.fst == b.fst) = true) x✝.toList
state_after: case refine_1
α : Type u_1
β : Type u_2
n : Nat
inst✝³ : BEq α
inst✝² : Hashable α
h✝ : 0 < n
inst✝¹ : LawfulHashable α
inst✝ : PartialEquivBEq α
x✝ : AssocList α β
h : ¬n = 0 ∧ x✝ = AssocList.nil
⊢ List.Pairwise (fun a b => ¬(a.fst == b.fst) = true) x✝.toList

tactic: simp [h, List.Pairwise.nil]
state_before: case refine_1
α : Type u_1
β : Type u_2
n : Nat
inst✝³ : BEq α
inst✝² : Hashable α
h✝ : 0 < n
inst✝¹ : LawfulHashable α
inst✝ : PartialEquivBEq α
x✝ : AssocList α β
h : ¬n = 0 ∧ x✝ = AssocList.nil
⊢ List.Pairwise (fun a b => ¬(a.fst == b.fst) = true) x✝.toList
state_after: no goals

tactic: simp [Buckets.mk, empty', mkArray, Array.getElem_eq_data_getElem, AssocList.All]
state_before: case refine_2
α : Type u_1
β : Type u_2
n : Nat
inst✝¹ : BEq α
inst✝ : Hashable α
h✝ : 0 < n
i : Nat
h : i < (Buckets.mk n h✝).val.size
⊢ AssocList.All (fun k x => ((hash k).toUSize % (Buckets.mk n h✝).val.size).toNat = i) (Buckets.mk n h✝).val[i]
state_after: no goals
Theorem: IsMin.withTop
File: Mathlib/Order/WithBot.lean

tactic: intro _ hb
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a b : α
inst✝ : LE α
h : IsMin a
⊢ IsMin ↑a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a b : α
inst✝ : LE α
h : IsMin a
b✝ : WithTop α
hb : b✝ ≤ ↑a
⊢ ↑a ≤ b✝

tactic: rw [← toDual_le_toDual_iff] at hb
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a b : α
inst✝ : LE α
h : IsMin a
b✝ : WithTop α
hb : b✝ ≤ ↑a
⊢ ↑a ≤ b✝
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a b : α
inst✝ : LE α
h : IsMin a
b✝ : WithTop α
hb : WithTop.toDual ↑a ≤ WithTop.toDual b✝
⊢ ↑a ≤ b✝

tactic: simpa [toDual_le_iff] using h.toDual.withBot hb
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a b : α
inst✝ : LE α
h : IsMin a
b✝ : WithTop α
hb : WithTop.toDual ↑a ≤ WithTop.toDual b✝
⊢ ↑a ≤ b✝
state_after: no goals
Theorem: Real.dist_right_le_of_mem_uIcc
File: Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean

tactic: simpa only [dist_comm _ z] using abs_sub_right_of_mem_uIcc h
state_before: ι : Type u_1
α : Type u_2
inst✝ : PseudoMetricSpace α
x y z : ℝ
h : y ∈ uIcc x z
⊢ dist y z ≤ dist x z
state_after: no goals
Theorem: Finset.map_toFinset
File: Mathlib/Data/Finset/Image.lean

tactic: simp only [mem_map, Multiset.mem_map, exists_prop, Multiset.mem_toFinset]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α ↪ β
s✝ : Finset α
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Multiset α
x✝ : β
⊢ x✝ ∈ map f s.toFinset ↔ x✝ ∈ (Multiset.map (⇑f) s).toFinset
state_after: no goals
Theorem: CategoryTheory.solutionSetCondition_of_isRightAdjoint
File: Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean

tactic: intro A
state_before: J : Type v
C : Type u
inst✝² : Category.{v, u} C
D : Type u
inst✝¹ : Category.{v, u} D
G : D ⥤ C
inst✝ : G.IsRightAdjoint
⊢ SolutionSetCondition G
state_after: J : Type v
C : Type u
inst✝² : Category.{v, u} C
D : Type u
inst✝¹ : Category.{v, u} D
G : D ⥤ C
inst✝ : G.IsRightAdjoint
A : C
⊢ ∃ ι B f, ∀ (X : D) (h : A ⟶ G.obj X), ∃ i g, f i ≫ G.map g = h

tactic: refine
  ⟨PUnit, fun _ => G.leftAdjoint.obj A, fun _ => (Adjunction.ofIsRightAdjoint G).unit.app A, ?_⟩
state_before: J : Type v
C : Type u
inst✝² : Category.{v, u} C
D : Type u
inst✝¹ : Category.{v, u} D
G : D ⥤ C
inst✝ : G.IsRightAdjoint
A : C
⊢ ∃ ι B f, ∀ (X : D) (h : A ⟶ G.obj X), ∃ i g, f i ≫ G.map g = h
state_after: J : Type v
C : Type u
inst✝² : Category.{v, u} C
D : Type u
inst✝¹ : Category.{v, u} D
G : D ⥤ C
inst✝ : G.IsRightAdjoint
A : C
⊢ ∀ (X : D) (h : A ⟶ G.obj X), ∃ i g, (fun x => (Adjunction.ofIsRightAdjoint G).unit.app A) i ≫ G.map g = h

tactic: intro B h
state_before: J : Type v
C : Type u
inst✝² : Category.{v, u} C
D : Type u
inst✝¹ : Category.{v, u} D
G : D ⥤ C
inst✝ : G.IsRightAdjoint
A : C
⊢ ∀ (X : D) (h : A ⟶ G.obj X), ∃ i g, (fun x => (Adjunction.ofIsRightAdjoint G).unit.app A) i ≫ G.map g = h
state_after: J : Type v
C : Type u
inst✝² : Category.{v, u} C
D : Type u
inst✝¹ : Category.{v, u} D
G : D ⥤ C
inst✝ : G.IsRightAdjoint
A : C
B : D
h : A ⟶ G.obj B
⊢ ∃ i g, (fun x => (Adjunction.ofIsRightAdjoint G).unit.app A) i ≫ G.map g = h

tactic: refine ⟨PUnit.unit, ((Adjunction.ofIsRightAdjoint G).homEquiv _ _).symm h, ?_⟩
state_before: J : Type v
C : Type u
inst✝² : Category.{v, u} C
D : Type u
inst✝¹ : Category.{v, u} D
G : D ⥤ C
inst✝ : G.IsRightAdjoint
A : C
B : D
h : A ⟶ G.obj B
⊢ ∃ i g, (fun x => (Adjunction.ofIsRightAdjoint G).unit.app A) i ≫ G.map g = h
state_after: J : Type v
C : Type u
inst✝² : Category.{v, u} C
D : Type u
inst✝¹ : Category.{v, u} D
G : D ⥤ C
inst✝ : G.IsRightAdjoint
A : C
B : D
h : A ⟶ G.obj B
⊢ (fun x => (Adjunction.ofIsRightAdjoint G).unit.app A) PUnit.unit ≫
      G.map (((Adjunction.ofIsRightAdjoint G).homEquiv A B).symm h) =
    h

tactic: rw [← Adjunction.homEquiv_unit, Equiv.apply_symm_apply]
state_before: J : Type v
C : Type u
inst✝² : Category.{v, u} C
D : Type u
inst✝¹ : Category.{v, u} D
G : D ⥤ C
inst✝ : G.IsRightAdjoint
A : C
B : D
h : A ⟶ G.obj B
⊢ (fun x => (Adjunction.ofIsRightAdjoint G).unit.app A) PUnit.unit ≫
      G.map (((Adjunction.ofIsRightAdjoint G).homEquiv A B).symm h) =
    h
state_after: no goals
Theorem: ProbabilityTheory.mgf_zero_fun
File: Mathlib/Probability/Moments.lean

tactic: simp only [mgf, Pi.zero_apply, mul_zero, exp_zero, integral_const, smul_eq_mul, mul_one]
state_before: Ω : Type u_1
ι : Type u_2
m : MeasurableSpace Ω
X : Ω → ℝ
p : ℕ
μ : Measure Ω
t : ℝ
⊢ mgf 0 μ t = (μ Set.univ).toReal
state_after: no goals
Theorem: Nat.mul_lt_mul_pow_succ
File: Mathlib/Data/Nat/Defs.lean

tactic: rw [Nat.pow_succ, ← Nat.mul_assoc, Nat.mul_lt_mul_right (Nat.lt_trans Nat.zero_lt_one hb)]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
ha : 0 < a
hb : 1 < b
⊢ n * b < a * b ^ (n + 1)
state_after: a b c d m n k : ℕ
p q : ℕ → Prop
ha : 0 < a
hb : 1 < b
⊢ n < a * b ^ n

tactic: exact Nat.lt_of_le_of_lt (Nat.le_mul_of_pos_left _ ha)
  ((Nat.mul_lt_mul_left ha).2 $ Nat.lt_pow_self hb _)
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
ha : 0 < a
hb : 1 < b
⊢ n < a * b ^ n
state_after: no goals
Theorem: isLowerSet_iff_Iio_subset
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp [isLowerSet_iff_forall_lt, subset_def, @forall_swap (_ ∈ s)]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : PartialOrder α
s : Set α
⊢ IsLowerSet s ↔ ∀ ⦃a : α⦄, a ∈ s → Iio a ⊆ s
state_after: no goals
Theorem: CategoryTheory.Limits.biproduct.matrix_components
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: simp [biproduct.components]
state_before: J : Type
inst✝⁴ : Finite J
K : Type
inst✝³ : Finite K
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : (j : J) → (k : K) → f j ⟶ g k
j : J
k : K
⊢ components (matrix m) j k = m j k
state_after: no goals
Theorem: Matroid.Base.compl_base_dual
File: Mathlib/Data/Matroid/Dual.lean

tactic: rwa [dual_base_iff, diff_diff_cancel_left h.subset_ground]
state_before: α : Type u_1
M : Matroid α
I B X : Set α
h : M.Base B
⊢ M✶.Base (M.E \ B)
state_after: no goals
Theorem: EReal.exists_between_coe_real
File: Mathlib/Data/Real/EReal.lean

tactic: obtain ⟨a, ha₁, ha₂⟩ := exists_between h
state_before: x z : EReal
h : x < z
⊢ ∃ y, x < ↑y ∧ ↑y < z
state_after: case intro.intro
x z : EReal
h : x < z
a : EReal
ha₁ : x < a
ha₂ : a < z
⊢ ∃ y, x < ↑y ∧ ↑y < z

tactic: induction a with
| h_bot => exact (not_lt_bot ha₁).elim
| h_real a₀ => exact ⟨a₀, ha₁, ha₂⟩
| h_top => exact (not_top_lt ha₂).elim
state_before: case intro.intro
x z : EReal
h : x < z
a : EReal
ha₁ : x < a
ha₂ : a < z
⊢ ∃ y, x < ↑y ∧ ↑y < z
state_after: no goals

tactic: exact (not_lt_bot ha₁).elim
state_before: case intro.intro.h_bot
x z : EReal
h : x < z
ha₁ : x < ⊥
ha₂ : ⊥ < z
⊢ ∃ y, x < ↑y ∧ ↑y < z
state_after: no goals

tactic: exact ⟨a₀, ha₁, ha₂⟩
state_before: case intro.intro.h_real
x z : EReal
h : x < z
a₀ : ℝ
ha₁ : x < ↑a₀
ha₂ : ↑a₀ < z
⊢ ∃ y, x < ↑y ∧ ↑y < z
state_after: no goals

tactic: exact (not_top_lt ha₂).elim
state_before: case intro.intro.h_top
x z : EReal
h : x < z
ha₁ : x < ⊤
ha₂ : ⊤ < z
⊢ ∃ y, x < ↑y ∧ ↑y < z
state_after: no goals
Theorem: Stream'.get_unfolds_head_tail
File: Mathlib/Data/Stream/Init.lean

tactic: intro n
state_before: α : Type u
β : Type v
δ : Type w
⊢ ∀ (n : ℕ) (s : Stream' α), (unfolds head tail s).get n = s.get n
state_after: α : Type u
β : Type v
δ : Type w
n : ℕ
⊢ ∀ (s : Stream' α), (unfolds head tail s).get n = s.get n

tactic: induction' n with n' ih
state_before: α : Type u
β : Type v
δ : Type w
n : ℕ
⊢ ∀ (s : Stream' α), (unfolds head tail s).get n = s.get n
state_after: case zero
α : Type u
β : Type v
δ : Type w
⊢ ∀ (s : Stream' α), (unfolds head tail s).get 0 = s.get 0

case succ
α : Type u
β : Type v
δ : Type w
n' : ℕ
ih : ∀ (s : Stream' α), (unfolds head tail s).get n' = s.get n'
⊢ ∀ (s : Stream' α), (unfolds head tail s).get (n' + 1) = s.get (n' + 1)

tactic: intro s
state_before: case zero
α : Type u
β : Type v
δ : Type w
⊢ ∀ (s : Stream' α), (unfolds head tail s).get 0 = s.get 0
state_after: case zero
α : Type u
β : Type v
δ : Type w
s : Stream' α
⊢ (unfolds head tail s).get 0 = s.get 0

tactic: rfl
state_before: case zero
α : Type u
β : Type v
δ : Type w
s : Stream' α
⊢ (unfolds head tail s).get 0 = s.get 0
state_after: no goals

tactic: intro s
state_before: case succ
α : Type u
β : Type v
δ : Type w
n' : ℕ
ih : ∀ (s : Stream' α), (unfolds head tail s).get n' = s.get n'
⊢ ∀ (s : Stream' α), (unfolds head tail s).get (n' + 1) = s.get (n' + 1)
state_after: case succ
α : Type u
β : Type v
δ : Type w
n' : ℕ
ih : ∀ (s : Stream' α), (unfolds head tail s).get n' = s.get n'
s : Stream' α
⊢ (unfolds head tail s).get (n' + 1) = s.get (n' + 1)

tactic: rw [get_succ, get_succ, unfolds_eq, tail_cons, ih]
state_before: case succ
α : Type u
β : Type v
δ : Type w
n' : ℕ
ih : ∀ (s : Stream' α), (unfolds head tail s).get n' = s.get n'
s : Stream' α
⊢ (unfolds head tail s).get (n' + 1) = s.get (n' + 1)
state_after: no goals
Theorem: Function.iterate_comm
File: Mathlib/Logic/Function/Iterate.lean

tactic: rw [Nat.mul_comm]
state_before: α : Type u
β : Type v
f✝ : α → α
m✝ n✝ : ℕ
a : α
f : α → α
m n : ℕ
⊢ f^[n * m] = f^[m * n]
state_after: no goals
Theorem: Matrix.Represents.one
File: Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean

tactic: delta Matrix.Represents PiToModule.fromMatrix
state_before: ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
⊢ Represents b 1 1
state_after: ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
⊢ ((LinearMap.llcomp R (ι → R) (ι → R) M) ((Fintype.total R R) b) ∘ₗ algEquivMatrix'.symm.toLinearMap) 1 =
    (PiToModule.fromEnd R b) 1

tactic: rw [LinearMap.comp_apply, AlgEquiv.toLinearMap_apply, _root_.map_one]
state_before: ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
⊢ ((LinearMap.llcomp R (ι → R) (ι → R) M) ((Fintype.total R R) b) ∘ₗ algEquivMatrix'.symm.toLinearMap) 1 =
    (PiToModule.fromEnd R b) 1
state_after: ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
⊢ ((LinearMap.llcomp R (ι → R) (ι → R) M) ((Fintype.total R R) b)) 1 = (PiToModule.fromEnd R b) 1

tactic: ext
state_before: ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
⊢ ((LinearMap.llcomp R (ι → R) (ι → R) M) ((Fintype.total R R) b)) 1 = (PiToModule.fromEnd R b) 1
state_after: case h.h
ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
i✝ : ι
⊢ (((LinearMap.llcomp R (ι → R) (ι → R) M) ((Fintype.total R R) b)) 1 ∘ₗ LinearMap.single i✝) 1 =
    ((PiToModule.fromEnd R b) 1 ∘ₗ LinearMap.single i✝) 1

tactic: rfl
state_before: case h.h
ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
i✝ : ι
⊢ (((LinearMap.llcomp R (ι → R) (ι → R) M) ((Fintype.total R R) b)) 1 ∘ₗ LinearMap.single i✝) 1 =
    ((PiToModule.fromEnd R b) 1 ∘ₗ LinearMap.single i✝) 1
state_after: no goals
Theorem: Ordinal.mod_self
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: simp only [a0, zero_mod]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a : Ordinal.{u_4}
a0 : a = 0
⊢ a % a = 0
state_after: no goals

tactic: simp only [mod_def, div_self a0, mul_one, sub_self]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a : Ordinal.{u_4}
a0 : ¬a = 0
⊢ a % a = 0
state_after: no goals
Theorem: IsIntegralCurve.periodic_of_eq
File: Mathlib/Geometry/Manifold/IntegralCurve.lean

tactic: intro t
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
H : Type u_2
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
γ γ' : ℝ → M
v : (x : M) → TangentSpace I x
s s' : Set ℝ
t₀ : ℝ
x₀ : M
inst✝¹ : T2Space M
a b : ℝ
inst✝ : BoundarylessManifold I M
hγ : IsIntegralCurve γ v
hv : ContMDiff I I.tangent 1 fun x => { proj := x, snd := v x }
heq : γ a = γ b
⊢ Periodic γ (a - b)
state_after: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
H : Type u_2
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
γ γ' : ℝ → M
v : (x : M) → TangentSpace I x
s s' : Set ℝ
t₀ : ℝ
x₀ : M
inst✝¹ : T2Space M
a b : ℝ
inst✝ : BoundarylessManifold I M
hγ : IsIntegralCurve γ v
hv : ContMDiff I I.tangent 1 fun x => { proj := x, snd := v x }
heq : γ a = γ b
t : ℝ
⊢ γ (t + (a - b)) = γ t

tactic: apply congrFun <|
  isIntegralCurve_Ioo_eq_of_contMDiff_boundaryless (t₀ := b) hv (hγ.comp_add _) hγ _
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
H : Type u_2
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
γ γ' : ℝ → M
v : (x : M) → TangentSpace I x
s s' : Set ℝ
t₀ : ℝ
x₀ : M
inst✝¹ : T2Space M
a b : ℝ
inst✝ : BoundarylessManifold I M
hγ : IsIntegralCurve γ v
hv : ContMDiff I I.tangent 1 fun x => { proj := x, snd := v x }
heq : γ a = γ b
t : ℝ
⊢ γ (t + (a - b)) = γ t
state_after: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
H : Type u_2
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
γ γ' : ℝ → M
v : (x : M) → TangentSpace I x
s s' : Set ℝ
t₀ : ℝ
x₀ : M
inst✝¹ : T2Space M
a b : ℝ
inst✝ : BoundarylessManifold I M
hγ : IsIntegralCurve γ v
hv : ContMDiff I I.tangent 1 fun x => { proj := x, snd := v x }
heq : γ a = γ b
t : ℝ
⊢ (γ ∘ fun x => x + (a - b)) b = γ b

tactic: rw [comp_apply, add_sub_cancel, heq]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
H : Type u_2
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type u_3
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
γ γ' : ℝ → M
v : (x : M) → TangentSpace I x
s s' : Set ℝ
t₀ : ℝ
x₀ : M
inst✝¹ : T2Space M
a b : ℝ
inst✝ : BoundarylessManifold I M
hγ : IsIntegralCurve γ v
hv : ContMDiff I I.tangent 1 fun x => { proj := x, snd := v x }
heq : γ a = γ b
t : ℝ
⊢ (γ ∘ fun x => x + (a - b)) b = γ b
state_after: no goals
Theorem: NumberField.InfinitePlace.sum_mult_eq
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

tactic: rw [← Embeddings.card K ℂ, Fintype.card, Finset.card_eq_sum_ones, ← Finset.univ.sum_fiberwise
  (fun φ => InfinitePlace.mk φ)]
state_before: k : Type u_1
inst✝³ : Field k
K : Type u_2
inst✝² : Field K
F : Type u_3
inst✝¹ : Field F
inst✝ : NumberField K
⊢ ∑ w : InfinitePlace K, w.mult = FiniteDimensional.finrank ℚ K
state_after: k : Type u_1
inst✝³ : Field k
K : Type u_2
inst✝² : Field K
F : Type u_3
inst✝¹ : Field F
inst✝ : NumberField K
⊢ ∑ w : InfinitePlace K, w.mult = ∑ j : InfinitePlace K, ∑ i ∈ Finset.filter (fun i => mk i = j) Finset.univ, 1

tactic: exact Finset.sum_congr rfl
  (fun _ _ => by rw [Finset.sum_const, smul_eq_mul, mul_one, card_filter_mk_eq])
state_before: k : Type u_1
inst✝³ : Field k
K : Type u_2
inst✝² : Field K
F : Type u_3
inst✝¹ : Field F
inst✝ : NumberField K
⊢ ∑ w : InfinitePlace K, w.mult = ∑ j : InfinitePlace K, ∑ i ∈ Finset.filter (fun i => mk i = j) Finset.univ, 1
state_after: no goals

tactic: rw [Finset.sum_const, smul_eq_mul, mul_one, card_filter_mk_eq]
state_before: k : Type u_1
inst✝³ : Field k
K : Type u_2
inst✝² : Field K
F : Type u_3
inst✝¹ : Field F
inst✝ : NumberField K
x✝¹ : InfinitePlace K
x✝ : x✝¹ ∈ Finset.univ
⊢ x✝¹.mult = ∑ i ∈ Finset.filter (fun i => mk i = x✝¹) Finset.univ, 1
state_after: no goals
Theorem: WithBot.lt_iff_exists_coe
File: Mathlib/Order/WithBot.lean

tactic: simp [coe_eq_coe]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a✝ b✝ : α
inst✝ : LT α
a : WithBot α
b : α
⊢ a < ↑b ↔ ∃ p, ↑b = ↑p ∧ a < ↑p
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a✝ b : α
inst✝ : LT α
a : WithBot α
⊢ ¬∃ p, ⊥ = ↑p ∧ a < ↑p
state_after: no goals
Theorem: CategoryTheory.Linear.units_smul_comp
File: Mathlib/CategoryTheory/Linear/Basic.lean

tactic: apply Linear.smul_comp
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type w
inst✝¹ : Semiring R
inst✝ : Linear R C
X Y Z : C
r : Rˣ
f : X ⟶ Y
g : Y ⟶ Z
⊢ (r • f) ≫ g = r • f ≫ g
state_after: no goals