tasksource/leandojo huggingface dataset:
Theorem: liftOfDerivationToSquareZero_mk_apply
File: Mathlib/RingTheory/Derivation/ToSquareZero.lean

tactic: rw [liftOfDerivationToSquareZero_apply, map_add, Ideal.Quotient.eq_zero_iff_mem.mpr (d x).prop,
  zero_add]
state_before: R : Type u
A : Type v
B : Type w
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : CommRing B
inst✝³ : Algebra R A
inst✝² : Algebra R B
I : Ideal B
hI : I ^ 2 = ⊥
inst✝¹ : Algebra A B
inst✝ : IsScalarTower R A B
d : Derivation R A { x // x ∈ I }
x : A
⊢ ↑(Ideal.Quotient.mk I) (↑(liftOfDerivationToSquareZero I hI d) x) = ↑(algebraMap A (B ⧸ I)) x

tactic: rfl
state_before: R : Type u
A : Type v
B : Type w
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : CommRing B
inst✝³ : Algebra R A
inst✝² : Algebra R B
I : Ideal B
hI : I ^ 2 = ⊥
inst✝¹ : Algebra A B
inst✝ : IsScalarTower R A B
d : Derivation R A { x // x ∈ I }
x : A
⊢ ↑(Ideal.Quotient.mk I) (↑(algebraMap A B) x) = ↑(algebraMap A (B ⧸ I)) x
Theorem: Finset.Nat.map_swap_antidiagonal
File: Mathlib/Data/Finset/NatAntidiagonal.lean

tactic: simp [antidiagonal, Multiset.Nat.map_swap_antidiagonal]
state_before: n : ℕ
⊢ (map { toFun := Prod.swap, inj' := (_ : Function.Injective Prod.swap) } (antidiagonal n)).val = (antidiagonal n).val
Theorem: MulAction.smul_mem_orbit_smul
File: Mathlib/GroupTheory/GroupAction/Basic.lean

tactic: simp only [orbit_smul, mem_orbit]
state_before: α : Type u
β : Type v
γ : Type w
inst✝¹ : Group α
inst✝ : MulAction α β
g h : α
a : β
⊢ g • a ∈ orbit α (h • a)
Theorem: Colex.singleton_lt_iff_lt
File: Mathlib/Combinatorics/Colex.lean

tactic: simp [lt_singleton_iff_mem_lt]
state_before: α : Type u_1
inst✝ : LinearOrder α
r s : α
⊢ toColex {r} < toColex {s} ↔ r < s
Theorem: Complex.not_lt_iff
File: Mathlib/Data/Complex/Basic.lean

tactic: rw [lt_def, not_and_or, not_lt]
state_before: z w : ℂ
⊢ ¬z < w ↔ w.re ≤ z.re ∨ z.im ≠ w.im
Theorem: Antitone.ne_of_lt_of_lt_nat
File: Mathlib/Order/Monotone/Basic.lean

tactic: rintro rfl
state_before: ι : Type ?u.45443
α : Type u
β : Type v
γ : Type w
δ : Type ?u.45452
π : ι → Type ?u.45457
r : α → α → Prop
inst✝ : Preorder α
f : ℕ → α
hf : Antitone f
n : ℕ
x : α
h1 : f (n + 1) < x
h2 : x < f n
a : ℕ
⊢ f a ≠ x

tactic: exact (hf.reflect_lt h2).not_le (Nat.le_of_lt_succ <| hf.reflect_lt h1)
state_before: ι : Type ?u.45443
α : Type u
β : Type v
γ : Type w
δ : Type ?u.45452
π : ι → Type ?u.45457
r : α → α → Prop
inst✝ : Preorder α
f : ℕ → α
hf : Antitone f
n a : ℕ
h1 : f (n + 1) < f a
h2 : f a < f n
⊢ False
Theorem: Nat.gcd_add_self_left
File: Mathlib/Data/Nat/GCD/Basic.lean

tactic: rw [gcd_comm, gcd_add_self_right, gcd_comm]
state_before: m n : ℕ
⊢ gcd (m + n) n = gcd m n
Theorem: Matrix.mul_eq_one_comm
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

tactic: letI : Invertible B.det := detInvertibleOfLeftInverse _ _ h
state_before: l : Type ?u.57544
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A✝ B✝ A B : Matrix n n α
h : A ⬝ B = 1
⊢ B ⬝ A = 1

tactic: letI : Invertible B := invertibleOfDetInvertible B
state_before: l : Type ?u.57544
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A✝ B✝ A B : Matrix n n α
h : A ⬝ B = 1
this : Invertible (det B) := detInvertibleOfLeftInverse B A h
⊢ B ⬝ A = 1

tactic: calc
  B ⬝ A = B ⬝ A ⬝ (B ⬝ ⅟ B) := by rw [Matrix.mul_invOf_self, Matrix.mul_one]
  _ = B ⬝ (A ⬝ B ⬝ ⅟ B) := by simp only [Matrix.mul_assoc]
  _ = B ⬝ ⅟ B := by rw [h, Matrix.one_mul]
  _ = 1 := Matrix.mul_invOf_self B
state_before: l : Type ?u.57544
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A✝ B✝ A B : Matrix n n α
h : A ⬝ B = 1
this✝ : Invertible (det B) := detInvertibleOfLeftInverse B A h
this : Invertible B := invertibleOfDetInvertible B
⊢ B ⬝ A = 1

tactic: rw [Matrix.mul_invOf_self, Matrix.mul_one]
state_before: l : Type ?u.57544
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A✝ B✝ A B : Matrix n n α
h : A ⬝ B = 1
this✝ : Invertible (det B) := detInvertibleOfLeftInverse B A h
this : Invertible B := invertibleOfDetInvertible B
⊢ B ⬝ A = B ⬝ A ⬝ (B ⬝ ⅟B)

tactic: simp only [Matrix.mul_assoc]
state_before: l : Type ?u.57544
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A✝ B✝ A B : Matrix n n α
h : A ⬝ B = 1
this✝ : Invertible (det B) := detInvertibleOfLeftInverse B A h
this : Invertible B := invertibleOfDetInvertible B
⊢ B ⬝ A ⬝ (B ⬝ ⅟B) = B ⬝ (A ⬝ B ⬝ ⅟B)

tactic: rw [h, Matrix.one_mul]
state_before: l : Type ?u.57544
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A✝ B✝ A B : Matrix n n α
h : A ⬝ B = 1
this✝ : Invertible (det B) := detInvertibleOfLeftInverse B A h
this : Invertible B := invertibleOfDetInvertible B
⊢ B ⬝ (A ⬝ B ⬝ ⅟B) = B ⬝ ⅟B
Theorem: Int.card_fintype_Ico
File: Mathlib/Data/Int/Interval.lean

tactic: rw [← card_Ico, Fintype.card_ofFinset]
state_before: a b : ℤ
⊢ Fintype.card ↑(Set.Ico a b) = toNat (b - a)
Theorem: IntervalIntegrable.continuousOn_mul
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rw [intervalIntegrable_iff] at hf ⊢
state_before: ι : Type ?u.6487579
𝕜 : Type ?u.6487582
E : Type ?u.6487585
F : Type ?u.6487588
A : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f✝ g✝ : ℝ → E
a b : ℝ
μ : MeasureTheory.Measure ℝ
f g : ℝ → A
hf : IntervalIntegrable f μ a b
hg : ContinuousOn g [[a, b]]
⊢ IntervalIntegrable (fun x => g x * f x) μ a b

tactic: exact hf.continuousOn_mul_of_subset hg isCompact_uIcc measurableSet_Ioc Ioc_subset_Icc_self
state_before: ι : Type ?u.6487579
𝕜 : Type ?u.6487582
E : Type ?u.6487585
F : Type ?u.6487588
A : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f✝ g✝ : ℝ → E
a b : ℝ
μ : MeasureTheory.Measure ℝ
f g : ℝ → A
hf : IntegrableOn f (Ι a b)
hg : ContinuousOn g [[a, b]]
⊢ IntegrableOn (fun x => g x * f x) (Ι a b)
Theorem: CategoryTheory.Limits.PreservesCokernel.iso_inv
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean

tactic: rw [← cancel_epi (cokernel.π _)]
state_before: C : Type u₁
inst✝⁷ : Category C
inst✝⁶ : HasZeroMorphisms C
D : Type u₂
inst✝⁵ : Category D
inst✝⁴ : HasZeroMorphisms D
G : C ⥤ D
inst✝³ : Functor.PreservesZeroMorphisms G
X Y Z : C
f : X ⟶ Y
h : Y ⟶ Z
w : f ≫ h = 0
inst✝² : HasCokernel f
inst✝¹ : HasCokernel (G.map f)
inst✝ : PreservesColimit (parallelPair f 0) G
⊢ (iso G f).inv = cokernelComparison f G

tactic: simp [PreservesCokernel.iso]
state_before: C : Type u₁
inst✝⁷ : Category C
inst✝⁶ : HasZeroMorphisms C
D : Type u₂
inst✝⁵ : Category D
inst✝⁴ : HasZeroMorphisms D
G : C ⥤ D
inst✝³ : Functor.PreservesZeroMorphisms G
X Y Z : C
f : X ⟶ Y
h : Y ⟶ Z
w : f ≫ h = 0
inst✝² : HasCokernel f
inst✝¹ : HasCokernel (G.map f)
inst✝ : PreservesColimit (parallelPair f 0) G
⊢ cokernel.π (G.map f) ≫ (iso G f).inv = cokernel.π (G.map f) ≫ cokernelComparison f G
Theorem: MeasureTheory.integral_eq_setToFun
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: simp only [integral, L1.integral]
state_before: α : Type u_2
E : Type u_1
F : Type ?u.812425
𝕜 : Type ?u.812428
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : SMulCommClass ℝ 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
f : α → E
⊢ (∫ (a : α), f a ∂μ) = setToFun μ (weightedSMul μ) (_ : DominatedFinMeasAdditive μ (weightedSMul μ) 1) f

tactic: rfl
state_before: α : Type u_2
E : Type u_1
F : Type ?u.812425
𝕜 : Type ?u.812428
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : SMulCommClass ℝ 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
f : α → E
⊢ (if hf : Integrable fun a => f a then ↑L1.integralCLM (Integrable.toL1 (fun a => f a) hf) else 0) =
    setToFun μ (weightedSMul μ) (_ : DominatedFinMeasAdditive μ (weightedSMul μ) 1) f
Theorem: Convex.smul_mem_of_zero_mem
File: Mathlib/Analysis/Convex/Basic.lean

tactic: simpa using hs.add_smul_mem zero_mem (by simpa using hx) ht
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.214738
β : Type ?u.214741
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t✝ : Set E
hs : Convex 𝕜 s
x : E
zero_mem : 0 ∈ s
hx : x ∈ s
t : 𝕜
ht : t ∈ Icc 0 1
⊢ t • x ∈ s

tactic: simpa using hx
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.214738
β : Type ?u.214741
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t✝ : Set E
hs : Convex 𝕜 s
x : E
zero_mem : 0 ∈ s
hx : x ∈ s
t : 𝕜
ht : t ∈ Icc 0 1
⊢ 0 + x ∈ s
Theorem: List.foldrM_append
File: Std/Data/List/Init/Lemmas.lean

tactic: induction l <;> simp [*]
state_before: m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f : α → β → m β
b : β
l l' : List α
⊢ foldrM f b (l ++ l') = do
    let init ← foldrM f b l'
    foldrM f init l
Theorem: ModuleCat.image.lift_fac
File: Mathlib/Algebra/Category/ModuleCat/Images.lean

tactic: ext x
state_before: R : Type u
inst✝ : Ring R
G H : ModuleCat R
f : G ⟶ H
F' : MonoFactorisation f
⊢ lift F' ≫ F'.m = ι f

tactic: change (F'.e ≫ F'.m) _ = _
state_before: case h
R : Type u
inst✝ : Ring R
G H : ModuleCat R
f : G ⟶ H
F' : MonoFactorisation f
x : ↑(image f)
⊢ ↑(lift F' ≫ F'.m) x = ↑(ι f) x

tactic: rw [F'.fac, (Classical.indefiniteDescription _ x.2).2]
state_before: case h
R : Type u
inst✝ : Ring R
G H : ModuleCat R
f : G ⟶ H
F' : MonoFactorisation f
x : ↑(image f)
⊢ ↑(F'.e ≫ F'.m) ↑(Classical.indefiniteDescription (fun x_1 => ↑f x_1 = ↑x) (_ : ↑x ∈ LinearMap.range f)) = ↑(ι f) x

tactic: rfl
state_before: case h
R : Type u
inst✝ : Ring R
G H : ModuleCat R
f : G ⟶ H
F' : MonoFactorisation f
x : ↑(image f)
⊢ ↑x = ↑(ι f) x
Theorem: Real.diam_Ioo
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp [Metric.diam, ENNReal.toReal_ofReal (sub_nonneg.2 h)]
state_before: α : Type ?u.565531
β : Type ?u.565534
γ : Type ?u.565537
inst✝ : PseudoEMetricSpace α
a b : ℝ
h : a ≤ b
⊢ Metric.diam (Ioo a b) = b - a
Theorem: Subgroup.index_dvd_card
File: Mathlib/GroupTheory/Index.lean

tactic: classical exact ⟨Fintype.card H, H.index_mul_card.symm⟩
state_before: G : Type u_1
inst✝¹ : Group G
H K L : Subgroup G
inst✝ : Fintype G
⊢ index H ∣ Fintype.card G

tactic: exact ⟨Fintype.card H, H.index_mul_card.symm⟩
state_before: G : Type u_1
inst✝¹ : Group G
H K L : Subgroup G
inst✝ : Fintype G
⊢ index H ∣ Fintype.card G
Theorem: String.toList_nonempty
File: Mathlib/Data/String/Basic.lean

tactic: cases s
state_before: s : List Char
h : { data := s } ≠ ""
⊢ toList { data := s } = head { data := s } :: toList (drop { data := s } 1)

tactic: simp only at h
state_before: case nil
h : { data := [] } ≠ ""
⊢ toList { data := [] } = head { data := [] } :: toList (drop { data := [] } 1)

tactic: rename_i c cs
state_before: case cons
head✝ : Char
tail✝ : List Char
h : { data := head✝ :: tail✝ } ≠ ""
⊢ toList { data := head✝ :: tail✝ } = head { data := head✝ :: tail✝ } :: toList (drop { data := head✝ :: tail✝ } 1)

tactic: simp only [toList, List.cons.injEq]
state_before: case cons
c : Char
cs : List Char
h : { data := c :: cs } ≠ ""
⊢ toList { data := c :: cs } = head { data := c :: cs } :: toList (drop { data := c :: cs } 1)

tactic: constructor <;> [rfl; simp [drop_eq]]
state_before: case cons
c : Char
cs : List Char
h : { data := c :: cs } ≠ ""
⊢ c = head { data := c :: cs } ∧ cs = (drop { data := c :: cs } 1).data
Theorem: Algebra.TensorProduct.mul_assoc
File: Mathlib/RingTheory/TensorProduct.lean

tactic: intros
state_before: R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
x y z : A ⊗[R] B
⊢ ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))

tactic: simp only [mul_apply, mul_assoc]
state_before: R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
x y z : A ⊗[R] B
a₁✝ a₂✝ a₃✝ : A
b₁✝ b₂✝ b₃✝ : B
⊢ ↑(↑mul (↑(↑mul (a₁✝ ⊗ₜ[R] b₁✝)) (a₂✝ ⊗ₜ[R] b₂✝))) (a₃✝ ⊗ₜ[R] b₃✝) =
    ↑(↑mul (a₁✝ ⊗ₜ[R] b₁✝)) (↑(↑mul (a₂✝ ⊗ₜ[R] b₂✝)) (a₃✝ ⊗ₜ[R] b₃✝))
Theorem: Multiset.le_ndinter
File: Mathlib/Data/Multiset/FinsetOps.lean

tactic: simp [ndinter, le_filter, subset_iff]
state_before: α : Type u_1
inst✝ : DecidableEq α
s✝ s t u : Multiset α
⊢ s ≤ ndinter t u ↔ s ≤ t ∧ s ⊆ u
Theorem: OrthonormalBasis.coe_toBasis
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: rw [OrthonormalBasis.toBasis]
state_before: ι : Type u_1
ι' : Type ?u.788937
𝕜 : Type u_2
inst✝⁹ : IsROrC 𝕜
E : Type u_3
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type ?u.788966
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type ?u.788984
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type ?u.789004
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
⊢ ↑(OrthonormalBasis.toBasis b) = ↑b

tactic: ext j
state_before: ι : Type u_1
ι' : Type ?u.788937
𝕜 : Type u_2
inst✝⁹ : IsROrC 𝕜
E : Type u_3
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type ?u.788966
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type ?u.788984
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type ?u.789004
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
⊢ ↑(Basis.ofEquivFun b.repr.toLinearEquiv) = ↑b

tactic: classical
  rw [Basis.coe_ofEquivFun]
  congr
state_before: case h
ι : Type u_1
ι' : Type ?u.788937
𝕜 : Type u_2
inst✝⁹ : IsROrC 𝕜
E : Type u_3
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type ?u.788966
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type ?u.788984
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type ?u.789004
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
j : ι
⊢ ↑(Basis.ofEquivFun b.repr.toLinearEquiv) j = ↑b j

tactic: rw [Basis.coe_ofEquivFun]
state_before: case h
ι : Type u_1
ι' : Type ?u.788937
𝕜 : Type u_2
inst✝⁹ : IsROrC 𝕜
E : Type u_3
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type ?u.788966
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type ?u.788984
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type ?u.789004
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
j : ι
⊢ ↑(Basis.ofEquivFun b.repr.toLinearEquiv) j = ↑b j

tactic: congr
state_before: case h
ι : Type u_1
ι' : Type ?u.788937
𝕜 : Type u_2
inst✝⁹ : IsROrC 𝕜
E : Type u_3
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type ?u.788966
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type ?u.788984
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type ?u.789004
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
j : ι
⊢ (fun i => ↑(LinearEquiv.symm b.repr.toLinearEquiv) (update 0 i 1)) j = ↑b j
Theorem: AlgebraicGeometry.RingedSpace.isUnit_res_basicOpen
File: Mathlib/AlgebraicGeometry/RingedSpace.lean

tactic: apply isUnit_of_isUnit_germ
state_before: X : RingedSpace
U : Opens ↑↑X.toPresheafedSpace
f : ↑(X.presheaf.obj U.op)
⊢ IsUnit (↑(X.presheaf.map (homOfLE (_ : basicOpen X f ≤ U)).op) f)

tactic: rintro ⟨_, ⟨x, (hx : IsUnit _), rfl⟩⟩
state_before: case h
X : RingedSpace
U : Opens ↑↑X.toPresheafedSpace
f : ↑(X.presheaf.obj U.op)
⊢ ∀ (x : { x // x ∈ basicOpen X f }),
    IsUnit (↑(germ X.presheaf x) (↑(X.presheaf.map (homOfLE (_ : basicOpen X f ≤ U)).op) f))

tactic: convert hx
state_before: case h.mk.intro.intro
X : RingedSpace
U : Opens ↑↑X.toPresheafedSpace
f : ↑(X.presheaf.obj U.op)
x : { x // x ∈ U }
hx : IsUnit (↑(germ X.presheaf x) f)
⊢ IsUnit
    (↑(germ X.presheaf { val := ↑x, property := (_ : ∃ a, a ∈ {x | IsUnit (↑(germ X.presheaf x) f)} ∧ ↑a = ↑x) })
      (↑(X.presheaf.map (homOfLE (_ : basicOpen X f ≤ U)).op) f))

tactic: convert X.presheaf.germ_res_apply _ _ _
state_before: case h.e'_3
X : RingedSpace
U : Opens ↑↑X.toPresheafedSpace
f : ↑(X.presheaf.obj U.op)
x : { x // x ∈ U }
hx : IsUnit (↑(germ X.presheaf x) f)
⊢ ↑(germ X.presheaf { val := ↑x, property := (_ : ∃ a, a ∈ {x | IsUnit (↑(germ X.presheaf x) f)} ∧ ↑a = ↑x) })
      (↑(X.presheaf.map (homOfLE (_ : basicOpen X f ≤ U)).op) f) =
    ↑(germ X.presheaf x) f
Theorem: List.tendsto_insertNth'
File: Mathlib/Topology/List.lean

tactic: simp
state_before: α : Type u_1
β : Type ?u.13544
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
a : α
n : ℕ
⊢ Tendsto (fun p => insertNth (n + 1) p.fst p.snd) (𝓝 a ×ˢ 𝓝 []) (𝓝 (insertNth (n + 1) a []))

tactic: rw [this, tendsto_map'_iff]
state_before: α : Type u_1
β : Type ?u.13544
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
a : α
n : ℕ
a' : α
l : List α
this : 𝓝 a ×ˢ 𝓝 (a' :: l) = Filter.map (fun p => (p.fst, p.snd.fst :: p.snd.snd)) (𝓝 a ×ˢ 𝓝 a' ×ˢ 𝓝 l)
⊢ Tendsto (fun p => insertNth (n + 1) p.fst p.snd) (𝓝 a ×ˢ 𝓝 (a' :: l)) (𝓝 (insertNth (n + 1) a (a' :: l)))

tactic: exact
  (tendsto_fst.comp tendsto_snd).cons
    ((@tendsto_insertNth' _ n l).comp <| tendsto_fst.prod_mk <| tendsto_snd.comp tendsto_snd)
state_before: α : Type u_1
β : Type ?u.13544
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
a : α
n : ℕ
a' : α
l : List α
this : 𝓝 a ×ˢ 𝓝 (a' :: l) = Filter.map (fun p => (p.fst, p.snd.fst :: p.snd.snd)) (𝓝 a ×ˢ 𝓝 a' ×ˢ 𝓝 l)
⊢ Tendsto ((fun p => insertNth (n + 1) p.fst p.snd) ∘ fun p => (p.fst, p.snd.fst :: p.snd.snd)) (𝓝 a ×ˢ 𝓝 a' ×ˢ 𝓝 l)
    (𝓝 (insertNth (n + 1) a (a' :: l)))

tactic: simp only [nhds_cons, Filter.prod_eq, ← Filter.map_def, ← Filter.seq_eq_filter_seq]
state_before: α : Type u_1
β : Type ?u.13544
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
a : α
n : ℕ
a' : α
l : List α
⊢ 𝓝 a ×ˢ 𝓝 (a' :: l) = Filter.map (fun p => (p.fst, p.snd.fst :: p.snd.snd)) (𝓝 a ×ˢ 𝓝 a' ×ˢ 𝓝 l)
Theorem: SimpleGraph.Walk.IsTrail.takeUntil
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: rwa [← take_spec _ h] at hc
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝ : DecidableEq V
u v w : V
p : Walk G v w
hc : IsTrail p
h : u ∈ support p
⊢ IsTrail (append (takeUntil p u h) (?m.255284 hc h))
Theorem: Finset.prod_sdiff_div_prod_sdiff
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: simp [← Finset.prod_sdiff (@inf_le_left _ _ s₁ s₂), ← Finset.prod_sdiff (@inf_le_right _ _ s₁ s₂)]
state_before: ι : Type ?u.856258
β : Type u
α : Type v
γ : Type w
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝¹ : CommGroup β
inst✝ : DecidableEq α
⊢ (∏ x in s₂ \ s₁, f x) / ∏ x in s₁ \ s₂, f x = (∏ x in s₂, f x) / ∏ x in s₁, f x
Theorem: Monoid.exponent_pos_of_exists
File: Mathlib/GroupTheory/Exponent.lean

tactic: have h : ∃ n, 0 < n ∧ ∀ g : G, g ^ n = 1 := ⟨n, hpos, hG⟩
state_before: G : Type u
inst✝ : Monoid G
n : ℕ
hpos : 0 < n
hG : ∀ (g : G), g ^ n = 1
⊢ 0 < exponent G

tactic: rw [exponent, dif_pos]
state_before: G : Type u
inst✝ : Monoid G
n : ℕ
hpos : 0 < n
hG : ∀ (g : G), g ^ n = 1
h : ∃ n, 0 < n ∧ ∀ (g : G), g ^ n = 1
⊢ 0 < exponent G

tactic: exact (Nat.find_spec h).1
state_before: G : Type u
inst✝ : Monoid G
n : ℕ
hpos : 0 < n
hG : ∀ (g : G), g ^ n = 1
h : ∃ n, 0 < n ∧ ∀ (g : G), g ^ n = 1
⊢ 0 < Nat.find ?hc

case hc
G : Type u
inst✝ : Monoid G
n : ℕ
hpos : 0 < n
hG : ∀ (g : G), g ^ n = 1
h : ∃ n, 0 < n ∧ ∀ (g : G), g ^ n = 1
⊢ ExponentExists G
Theorem: Path.truncate_zero_zero
File: Mathlib/Topology/PathConnected.lean

tactic: rw [min_self, γ.extend_zero]
state_before: X✝ : Type ?u.473740
Y : Type ?u.473743
inst✝² : TopologicalSpace X✝
inst✝¹ : TopologicalSpace Y
x y z : X✝
ι : Type ?u.473758
γ✝ : Path x y
X : Type ?u.473807
inst✝ : TopologicalSpace X
a b : X
γ : Path a b
⊢ extend γ (min 0 0) = a

tactic: convert γ.truncate_self 0
state_before: X✝ : Type ?u.473740
Y : Type ?u.473743
inst✝² : TopologicalSpace X✝
inst✝¹ : TopologicalSpace Y
x y z : X✝
ι : Type ?u.473758
γ✝ : Path x y
X : Type u_1
inst✝ : TopologicalSpace X
a b : X
γ : Path a b
⊢ truncate γ 0 0 = cast (refl a) (_ : extend γ (min 0 0) = a) (_ : extend γ 0 = a)
Theorem: MonoidAlgebra.exists_leftInverse_of_injective
File: Mathlib/RepresentationTheory/Maschke.lean

tactic: obtain ⟨φ, hφ⟩ := (f.restrictScalars k).exists_leftInverse_of_injective <| by
  simp only [hf, Submodule.restrictScalars_bot, LinearMap.ker_restrictScalars]
state_before: k : Type u
inst✝¹¹ : Field k
G : Type u
inst✝¹⁰ : Fintype G
inst✝⁹ : Invertible ↑(Fintype.card G)
inst✝⁸ : Group G
V : Type u
inst✝⁷ : AddCommGroup V
inst✝⁶ : Module k V
inst✝⁵ : Module (MonoidAlgebra k G) V
inst✝⁴ : IsScalarTower k (MonoidAlgebra k G) V
W : Type u
inst✝³ : AddCommGroup W
inst✝² : Module k W
inst✝¹ : Module (MonoidAlgebra k G) W
inst✝ : IsScalarTower k (MonoidAlgebra k G) W
f : V →ₗ[MonoidAlgebra k G] W
hf : LinearMap.ker f = ⊥
⊢ ∃ g, LinearMap.comp g f = LinearMap.id

tactic: refine ⟨φ.equivariantProjection G, FunLike.ext _ _ ?_⟩
state_before: case intro
k : Type u
inst✝¹¹ : Field k
G : Type u
inst✝¹⁰ : Fintype G
inst✝⁹ : Invertible ↑(Fintype.card G)
inst✝⁸ : Group G
V : Type u
inst✝⁷ : AddCommGroup V
inst✝⁶ : Module k V
inst✝⁵ : Module (MonoidAlgebra k G) V
inst✝⁴ : IsScalarTower k (MonoidAlgebra k G) V
W : Type u
inst✝³ : AddCommGroup W
inst✝² : Module k W
inst✝¹ : Module (MonoidAlgebra k G) W
inst✝ : IsScalarTower k (MonoidAlgebra k G) W
f : V →ₗ[MonoidAlgebra k G] W
hf : LinearMap.ker f = ⊥
φ : W →ₗ[k] V
hφ : LinearMap.comp φ (↑k f) = LinearMap.id
⊢ ∃ g, LinearMap.comp g f = LinearMap.id

tactic: exact φ.equivariantProjection_condition G _ <| FunLike.congr_fun hφ
state_before: case intro
k : Type u
inst✝¹¹ : Field k
G : Type u
inst✝¹⁰ : Fintype G
inst✝⁹ : Invertible ↑(Fintype.card G)
inst✝⁸ : Group G
V : Type u
inst✝⁷ : AddCommGroup V
inst✝⁶ : Module k V
inst✝⁵ : Module (MonoidAlgebra k G) V
inst✝⁴ : IsScalarTower k (MonoidAlgebra k G) V
W : Type u
inst✝³ : AddCommGroup W
inst✝² : Module k W
inst✝¹ : Module (MonoidAlgebra k G) W
inst✝ : IsScalarTower k (MonoidAlgebra k G) W
f : V →ₗ[MonoidAlgebra k G] W
hf : LinearMap.ker f = ⊥
φ : W →ₗ[k] V
hφ : LinearMap.comp φ (↑k f) = LinearMap.id
⊢ ∀ (x : V), ↑(LinearMap.comp (LinearMap.equivariantProjection G φ) f) x = ↑LinearMap.id x

tactic: simp only [hf, Submodule.restrictScalars_bot, LinearMap.ker_restrictScalars]
state_before: k : Type u
inst✝¹¹ : Field k
G : Type u
inst✝¹⁰ : Fintype G
inst✝⁹ : Invertible ↑(Fintype.card G)
inst✝⁸ : Group G
V : Type u
inst✝⁷ : AddCommGroup V
inst✝⁶ : Module k V
inst✝⁵ : Module (MonoidAlgebra k G) V
inst✝⁴ : IsScalarTower k (MonoidAlgebra k G) V
W : Type u
inst✝³ : AddCommGroup W
inst✝² : Module k W
inst✝¹ : Module (MonoidAlgebra k G) W
inst✝ : IsScalarTower k (MonoidAlgebra k G) W
f : V →ₗ[MonoidAlgebra k G] W
hf : LinearMap.ker f = ⊥
⊢ LinearMap.ker (↑k f) = ⊥
Theorem: Finmap.disjoint_union_right
File: Mathlib/Data/Finmap.lean

tactic: rw [Disjoint.symm_iff, disjoint_union_left, Disjoint.symm_iff _ x, Disjoint.symm_iff _ x]
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
x y z : Finmap β
⊢ Disjoint x (y ∪ z) ↔ Disjoint x y ∧ Disjoint x z
Theorem: Subgroup.fg_iff
File: Mathlib/GroupTheory/Finiteness.lean

tactic: simp [hS]
state_before: M : Type ?u.68895
N : Type ?u.68898
inst✝³ : Monoid M
inst✝² : AddMonoid N
G : Type u_1
H : Type ?u.68910
inst✝¹ : Group G
inst✝ : AddGroup H
P : Subgroup G
x✝ : ∃ S, closure S = P ∧ Set.Finite S
S : Set G
hS : closure S = P
hf : Set.Finite S
⊢ closure ↑(Set.Finite.toFinset hf) = P