ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: CategoryTheory.Limits.Sigma.map'_id_id
File: Mathlib/CategoryTheory/Limits/Shapes/Products.lean

Proof steps:
state_before: β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝¹ : Category.{v, u} C
f : α → C
inst✝ : HasCoproduct f
⊢ (map' id fun a => 𝟙 (f a)) = 𝟙 (∐ f)
state_after: case h
β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝¹ : Category.{v, u} C
f : α → C
inst✝ : HasCoproduct f
b✝ : α
⊢ (ι f b✝ ≫ map' id fun a => 𝟙 (f a)) = ι f b✝ ≫ 𝟙 (∐ f)
tactic: ext
state_before: case h
β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝¹ : Category.{v, u} C
f : α → C
inst✝ : HasCoproduct f
b✝ : α
⊢ (ι f b✝ ≫ map' id fun a => 𝟙 (f a)) = ι f b✝ ≫ 𝟙 (∐ f)
state_after: no goals
tactic: simp
Theorem: Function.IsPeriodicPt.gcd
File: Mathlib/Dynamics/PeriodicPts.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hm : IsPeriodicPt f m x
hn : IsPeriodicPt f n x
⊢ IsPeriodicPt f (m.gcd n) x
state_after: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
⊢ IsPeriodicPt f m x → IsPeriodicPt f n x → IsPeriodicPt f (m.gcd n) x
tactic: revert hm hn
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
⊢ IsPeriodicPt f m x → IsPeriodicPt f n x → IsPeriodicPt f (m.gcd n) x
state_after: case refine_1
α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n✝ n : ℕ
x✝ : IsPeriodicPt f 0 x
hn : IsPeriodicPt f n x
⊢ IsPeriodicPt f (Nat.gcd 0 n) x

case refine_2
α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m✝ n✝ m n : ℕ
x✝ : 0 < m
ih : IsPeriodicPt f (n % m) x → IsPeriodicPt f m x → IsPeriodicPt f ((n % m).gcd m) x
hm : IsPeriodicPt f m x
hn : IsPeriodicPt f n x
⊢ IsPeriodicPt f (m.gcd n) x
tactic: refine Nat.gcd.induction m n (fun n _ hn => ?_) fun m n _ ih hm hn => ?_
Theorem: CategoryTheory.Equivalence.op_counitIso
File: Mathlib/CategoryTheory/Opposites.lean

Proof steps:
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
e : C ≌ D
X : Cᵒᵖ
⊢ e.functor.op.map ((NatIso.op e.unitIso).symm.hom.app X) ≫ (NatIso.op e.counitIso).symm.hom.app (e.functor.op.obj X) =
    𝟙 (e.functor.op.obj X)
state_after: case a
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
e : C ≌ D
X : Cᵒᵖ
⊢ (e.functor.op.map ((NatIso.op e.unitIso).symm.hom.app X) ≫
        (NatIso.op e.counitIso).symm.hom.app (e.functor.op.obj X)).unop =
    (𝟙 (e.functor.op.obj X)).unop
tactic: apply Quiver.Hom.unop_inj
state_before: case a
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
e : C ≌ D
X : Cᵒᵖ
⊢ (e.functor.op.map ((NatIso.op e.unitIso).symm.hom.app X) ≫
        (NatIso.op e.counitIso).symm.hom.app (e.functor.op.obj X)).unop =
    (𝟙 (e.functor.op.obj X)).unop
state_after: case a
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
e : C ≌ D
X : Cᵒᵖ
⊢ e.counitIso.inv.app (e.functor.obj (unop X)) ≫ e.functor.map (e.unitIso.inv.app (unop X)) = 𝟙 (e.functor.obj (unop X))
tactic: dsimp
state_before: case a
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
e : C ≌ D
X : Cᵒᵖ
⊢ e.counitIso.inv.app (e.functor.obj (unop X)) ≫ e.functor.map (e.unitIso.inv.app (unop X)) = 𝟙 (e.functor.obj (unop X))
state_after: no goals
tactic: simp
Theorem: CategoryTheory.ShortComplex.leftHomologyMap'_add
File: Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean

Proof steps:
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
⊢ leftHomologyMap' (φ + φ') h₁ h₂ = leftHomologyMap' φ h₁ h₂ + leftHomologyMap' φ' h₁ h₂
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
γ : LeftHomologyMapData φ h₁ h₂
⊢ leftHomologyMap' (φ + φ') h₁ h₂ = leftHomologyMap' φ h₁ h₂ + leftHomologyMap' φ' h₁ h₂
tactic: have γ : LeftHomologyMapData φ h₁ h₂ := default
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
γ : LeftHomologyMapData φ h₁ h₂
⊢ leftHomologyMap' (φ + φ') h₁ h₂ = leftHomologyMap' φ h₁ h₂ + leftHomologyMap' φ' h₁ h₂
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
γ : LeftHomologyMapData φ h₁ h₂
γ' : LeftHomologyMapData φ' h₁ h₂
⊢ leftHomologyMap' (φ + φ') h₁ h₂ = leftHomologyMap' φ h₁ h₂ + leftHomologyMap' φ' h₁ h₂
tactic: have γ' : LeftHomologyMapData φ' h₁ h₂ := default
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
γ : LeftHomologyMapData φ h₁ h₂
γ' : LeftHomologyMapData φ' h₁ h₂
⊢ leftHomologyMap' (φ + φ') h₁ h₂ = leftHomologyMap' φ h₁ h₂ + leftHomologyMap' φ' h₁ h₂
state_after: no goals
tactic: simp only [γ.leftHomologyMap'_eq, γ'.leftHomologyMap'_eq,
    (γ.add γ').leftHomologyMap'_eq, LeftHomologyMapData.add_φH]
Theorem: ContinuousMultilinearMap.iteratedFDerivComponent_apply
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

Proof steps:
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : SeminormedAddCommGroup G
inst✝⁴ : NormedSpace 𝕜 G
inst✝³ : SeminormedAddCommGroup G'
inst✝² : NormedSpace 𝕜 G'
α : Type u_1
inst✝¹ : Fintype α
f : ContinuousMultilinearMap 𝕜 E₁ G
s : Set ι
e : α ≃ ↑s
inst✝ : DecidablePred fun x => x ∈ s
v : (i : { a // a ∉ s }) → E₁ ↑i
w : α → (i : ι) → E₁ i
⊢ ((f.iteratedFDerivComponent e) v) w = f fun j => if h : j ∈ s then w (e.symm ⟨j, h⟩) j else v ⟨j, h⟩
state_after: no goals
tactic: simp [iteratedFDerivComponent, MultilinearMap.iteratedFDerivComponent,
    MultilinearMap.domDomRestrictₗ]
Theorem: WeierstrassCurve.Jacobian.negY_of_Z_eq_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

Proof steps:
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : Fin 3 → R
hPz : P z = 0
⊢ W'.negY P = -P y
state_after: no goals
tactic: simp only [negY, hPz, sub_zero, mul_zero, zero_pow three_ne_zero]
Theorem: NNReal.geom_mean_le_arith_mean3_weighted
File: Mathlib/Analysis/MeanInequalities.lean

Proof steps:
state_before: ι : Type u
s : Finset ι
w₁ w₂ w₃ p₁ p₂ p₃ : ℝ≥0
⊢ w₁ + w₂ + w₃ = 1 → p₁ ^ ↑w₁ * p₂ ^ ↑w₂ * p₃ ^ ↑w₃ ≤ w₁ * p₁ + w₂ * p₂ + w₃ * p₃
state_after: no goals
tactic: simpa only [Fin.prod_univ_succ, Fin.sum_univ_succ, Finset.prod_empty, Finset.sum_empty,
    Finset.univ_eq_empty, Fin.cons_succ, Fin.cons_zero, add_zero, mul_one, ← add_assoc,
    mul_assoc] using geom_mean_le_arith_mean_weighted univ ![w₁, w₂, w₃] ![p₁, p₂, p₃]
Theorem: CochainComplex.HomComplex.Cochain.shift_smul
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean

Proof steps:
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a : ℤ
x : R
⊢ (x • γ).shift a = x • γ.shift a
state_after: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a : ℤ
x : R
p q : ℤ
hpq : p + n = q
⊢ ((x • γ).shift a).v p q hpq = (x • γ.shift a).v p q hpq
tactic: ext p q hpq
state_before: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a : ℤ
x : R
p q : ℤ
hpq : p + n = q
⊢ ((x • γ).shift a).v p q hpq = (x • γ.shift a).v p q hpq
state_after: no goals
tactic: simp [shift_v']
Theorem: AccPt.map
File: Mathlib/Topology/DerivedSet.lean

Proof steps:
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
β : Type u_2
inst✝ : TopologicalSpace β
F : Filter X
x : X
h : AccPt x F
f : X → β
hf1 : ContinuousAt f x
hf2 : Function.Injective f
⊢ AccPt (f x) (Filter.map f F)
state_after: X : Type u_1
inst✝¹ : TopologicalSpace X
β : Type u_2
inst✝ : TopologicalSpace β
F : Filter X
x : X
h : AccPt x F
f : X → β
hf1 : ContinuousAt f x
hf2 : Function.Injective f
⊢ Filter.map f (𝓝[≠] x ⊓ F) ≤ 𝓝[≠] f x ⊓ Filter.map f F
tactic: apply map_neBot (m := f) (hf := h) |>.mono
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
β : Type u_2
inst✝ : TopologicalSpace β
F : Filter X
x : X
h : AccPt x F
f : X → β
hf1 : ContinuousAt f x
hf2 : Function.Injective f
⊢ Filter.map f (𝓝[≠] x ⊓ F) ≤ 𝓝[≠] f x ⊓ Filter.map f F
state_after: X : Type u_1
inst✝¹ : TopologicalSpace X
β : Type u_2
inst✝ : TopologicalSpace β
F : Filter X
x : X
h : AccPt x F
f : X → β
hf1 : ContinuousAt f x
hf2 : Function.Injective f
⊢ Filter.map f (𝓝[≠] x) ⊓ Filter.map f F ≤ 𝓝[≠] f x ⊓ Filter.map f F
tactic: rw [Filter.map_inf hf2]
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
β : Type u_2
inst✝ : TopologicalSpace β
F : Filter X
x : X
h : AccPt x F
f : X → β
hf1 : ContinuousAt f x
hf2 : Function.Injective f
⊢ Filter.map f (𝓝[≠] x) ⊓ Filter.map f F ≤ 𝓝[≠] f x ⊓ Filter.map f F
state_after: case h
X : Type u_1
inst✝¹ : TopologicalSpace X
β : Type u_2
inst✝ : TopologicalSpace β
F : Filter X
x : X
h : AccPt x F
f : X → β
hf1 : ContinuousAt f x
hf2 : Function.Injective f
⊢ Filter.map f (𝓝[≠] x) ≤ 𝓝[≠] f x
tactic: gcongr
state_before: case h
X : Type u_1
inst✝¹ : TopologicalSpace X
β : Type u_2
inst✝ : TopologicalSpace β
F : Filter X
x : X
h : AccPt x F
f : X → β
hf1 : ContinuousAt f x
hf2 : Function.Injective f
⊢ Filter.map f (𝓝[≠] x) ≤ 𝓝[≠] f x
state_after: case h
X : Type u_1
inst✝¹ : TopologicalSpace X
β : Type u_2
inst✝ : TopologicalSpace β
F : Filter X
x : X
h : AccPt x F
f : X → β
hf1 : ContinuousAt f x
hf2 : Function.Injective f
⊢ ∀ᶠ (x_1 : X) in 𝓝[≠] x, f x_1 ∈ {f x}ᶜ
tactic: apply tendsto_nhdsWithin_of_tendsto_nhds_of_eventually_within _ hf1.continuousWithinAt
state_before: case h
X : Type u_1
inst✝¹ : TopologicalSpace X
β : Type u_2
inst✝ : TopologicalSpace β
F : Filter X
x : X
h : AccPt x F
f : X → β
hf1 : ContinuousAt f x
hf2 : Function.Injective f
⊢ ∀ᶠ (x_1 : X) in 𝓝[≠] x, f x_1 ∈ {f x}ᶜ
state_after: no goals
tactic: simpa [hf2.eq_iff] using eventually_mem_nhdsWithin
Theorem: norm_pow_le'
File: Mathlib/Analysis/Normed/Field/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : SeminormedRing α
a : α
n : ℕ
h : 0 < n
⊢ ‖a ^ n‖ ≤ ‖a‖ ^ n
state_after: no goals
tactic: simpa only [NNReal.coe_pow, coe_nnnorm] using NNReal.coe_mono (nnnorm_pow_le' a h)
Theorem: Prop.exists_iff
File: Mathlib/Logic/Basic.lean

Proof steps:
state_before: α : Sort u_1
β : Sort u_2
p✝ q : α → Prop
p : Prop → Prop
x✝ : ∃ h, p h
h₁ : Prop
h₂ : p h₁
H : h₁
⊢ p True
state_after: no goals
tactic: simpa only [H] using h₂
state_before: α : Sort u_1
β : Sort u_2
p✝ q : α → Prop
p : Prop → Prop
x✝ : ∃ h, p h
h₁ : Prop
h₂ : p h₁
H : ¬h₁
⊢ p False
state_after: no goals
tactic: simpa only [H] using h₂
Theorem: CategoryTheory.Functor.compConstIso_hom_app_app
File: Mathlib/CategoryTheory/Functor/Const.lean

Proof steps:
state_before: J : Type u₁
inst✝² : Category.{v₁, u₁} J
C : Type u₂
inst✝¹ : Category.{v₂, u₂} C
D : Type u₃
inst✝ : Category.{v₃, u₃} D
F : C ⥤ D
X : C
⊢ ∀ {X_1 Y : J} (f : X_1 ⟶ Y),
    ((F ⋙ const J).obj X).map f ≫ ((fun j => Iso.refl (((F ⋙ const J).obj X).obj j)) Y).hom =
      ((fun j => Iso.refl (((F ⋙ const J).obj X).obj j)) X_1).hom ≫
        ((const J ⋙ (whiskeringRight J C D).obj F).obj X).map f
state_after: no goals
tactic: aesop_cat
state_before: J : Type u₁
inst✝² : Category.{v₁, u₁} J
C : Type u₂
inst✝¹ : Category.{v₂, u₂} C
D : Type u₃
inst✝ : Category.{v₃, u₃} D
F : C ⥤ D
⊢ ∀ {X Y : C} (f : X ⟶ Y),
    (F ⋙ const J).map f ≫ ((fun X => NatIso.ofComponents (fun j => Iso.refl (((F ⋙ const J).obj X).obj j)) ⋯) Y).hom =
      ((fun X => NatIso.ofComponents (fun j => Iso.refl (((F ⋙ const J).obj X).obj j)) ⋯) X).hom ≫
        (const J ⋙ (whiskeringRight J C D).obj F).map f
state_after: no goals
tactic: aesop_cat
Theorem: ZMod.addOrderOf_coe
File: Mathlib/Data/ZMod/Basic.lean

Proof steps:
state_before: a n : ℕ
n0 : n ≠ 0
⊢ addOrderOf ↑a = n / n.gcd a
state_after: case zero
n : ℕ
n0 : n ≠ 0
⊢ addOrderOf ↑0 = n / n.gcd 0

case succ
n : ℕ
n0 : n ≠ 0
a : ℕ
⊢ addOrderOf ↑(a + 1) = n / n.gcd (a + 1)
tactic: cases' a with a
state_before: case succ
n : ℕ
n0 : n ≠ 0
a : ℕ
⊢ addOrderOf ↑(a + 1) = n / n.gcd (a + 1)
state_after: no goals
tactic: rw [← Nat.smul_one_eq_cast, addOrderOf_nsmul' _ a.succ_ne_zero, ZMod.addOrderOf_one]
Theorem: MulAction.le_stabilizer_smul_right
File: Mathlib/GroupTheory/GroupAction/Basic.lean

Proof steps:
state_before: G : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : Group G
inst✝³ : MulAction G α
inst✝² : MulAction G β
inst✝¹ : SMul α β
inst✝ : SMulCommClass G α β
a : α
b : β
⊢ stabilizer G b ≤ stabilizer G (a • b)
state_after: G : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : Group G
inst✝³ : MulAction G α
inst✝² : MulAction G β
inst✝¹ : SMul α β
inst✝ : SMulCommClass G α β
a : α
b : β
⊢ ∀ ⦃x : G⦄, x • b = b → a • x • b = a • b
tactic: simp_rw [SetLike.le_def, mem_stabilizer_iff, smul_comm]
state_before: G : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : Group G
inst✝³ : MulAction G α
inst✝² : MulAction G β
inst✝¹ : SMul α β
inst✝ : SMulCommClass G α β
a : α
b : β
⊢ ∀ ⦃x : G⦄, x • b = b → a • x • b = a • b
state_after: G : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : Group G
inst✝³ : MulAction G α
inst✝² : MulAction G β
inst✝¹ : SMul α β
inst✝ : SMulCommClass G α β
a✝ : α
b : β
a : G
h : a • b = b
⊢ a✝ • a • b = a✝ • b
tactic: rintro a h
state_before: G : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : Group G
inst✝³ : MulAction G α
inst✝² : MulAction G β
inst✝¹ : SMul α β
inst✝ : SMulCommClass G α β
a✝ : α
b : β
a : G
h : a • b = b
⊢ a✝ • a • b = a✝ • b
state_after: no goals
tactic: rw [h]
Theorem: Memℓp.sub
File: Mathlib/Analysis/Normed/Lp/lpSpace.lean

Proof steps:
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f g : (i : α) → E i
hf : Memℓp f p
hg : Memℓp g p
⊢ Memℓp (f - g) p
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f g : (i : α) → E i
hf : Memℓp f p
hg : Memℓp g p
⊢ Memℓp (f + -g) p
tactic: rw [sub_eq_add_neg]
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f g : (i : α) → E i
hf : Memℓp f p
hg : Memℓp g p
⊢ Memℓp (f + -g) p
state_after: no goals
tactic: exact hf.add hg.neg
Theorem: CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.prod_fac₂
File: Mathlib/CategoryTheory/Localization/Prod.lean

Proof steps:
state_before: C₁ : Type u₁
C₂ : Type u₂
D₁ : Type u₃
D₂ : Type u₄
inst✝⁶ : Category.{v₁, u₁} C₁
inst✝⁵ : Category.{v₂, u₂} C₂
inst✝⁴ : Category.{v₃, u₃} D₁
inst✝³ : Category.{v₄, u₄} D₂
L₁ : C₁ ⥤ D₁
W₁ : MorphismProperty C₁
L₂ : C₂ ⥤ D₂
W₂ : MorphismProperty C₂
E : Type u₅
inst✝² : Category.{v₅, u₅} E
F : C₁ × C₂ ⥤ E
hF : (W₁.prod W₂).IsInvertedBy F
inst✝¹ : W₁.ContainsIdentities
inst✝ : W₂.ContainsIdentities
⊢ W₂.Q ⋙ (curry.obj (prodLift F hF)).flip = (prodLift₁ F hF).flip
state_after: C₁ : Type u₁
C₂ : Type u₂
D₁ : Type u₃
D₂ : Type u₄
inst✝⁶ : Category.{v₁, u₁} C₁
inst✝⁵ : Category.{v₂, u₂} C₂
inst✝⁴ : Category.{v₃, u₃} D₁
inst✝³ : Category.{v₄, u₄} D₂
L₁ : C₁ ⥤ D₁
W₁ : MorphismProperty C₁
L₂ : C₂ ⥤ D₂
W₂ : MorphismProperty C₂
E : Type u₅
inst✝² : Category.{v₅, u₅} E
F : C₁ × C₂ ⥤ E
hF : (W₁.prod W₂).IsInvertedBy F
inst✝¹ : W₁.ContainsIdentities
inst✝ : W₂.ContainsIdentities
⊢ W₂.Q ⋙ Construction.lift (prodLift₁ F hF).flip ⋯ = (prodLift₁ F hF).flip
tactic: simp only [prodLift, Functor.curry_obj_uncurry_obj, Functor.flip_flip]
state_before: C₁ : Type u₁
C₂ : Type u₂
D₁ : Type u₃
D₂ : Type u₄
inst✝⁶ : Category.{v₁, u₁} C₁
inst✝⁵ : Category.{v₂, u₂} C₂
inst✝⁴ : Category.{v₃, u₃} D₁
inst✝³ : Category.{v₄, u₄} D₂
L₁ : C₁ ⥤ D₁
W₁ : MorphismProperty C₁
L₂ : C₂ ⥤ D₂
W₂ : MorphismProperty C₂
E : Type u₅
inst✝² : Category.{v₅, u₅} E
F : C₁ × C₂ ⥤ E
hF : (W₁.prod W₂).IsInvertedBy F
inst✝¹ : W₁.ContainsIdentities
inst✝ : W₂.ContainsIdentities
⊢ W₂.Q ⋙ Construction.lift (prodLift₁ F hF).flip ⋯ = (prodLift₁ F hF).flip
state_after: no goals
tactic: apply Construction.fac
Theorem: Ideal.span_mul_span'
File: Mathlib/RingTheory/Ideal/Operations.lean

Proof steps:
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
S T : Set R
⊢ span S * span T = span (S * T)
state_after: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
S T : Set R
⊢ Submodule.span R S * Submodule.span R T = Submodule.span R (S * T)
tactic: unfold span
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
S T : Set R
⊢ Submodule.span R S * Submodule.span R T = Submodule.span R (S * T)
state_after: no goals
tactic: rw [Submodule.span_mul_span]
Theorem: CategoryTheory.IsFilteredOrEmpty.of_right_adjoint
File: Mathlib/CategoryTheory/Filtered/Basic.lean

Proof steps:
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : IsFilteredOrEmpty C
D : Type u₁
inst✝ : Category.{v₁, u₁} D
L : D ⥤ C
R : C ⥤ D
h : L ⊣ R
X Y : D
f g : X ⟶ Y
⊢ f ≫ (h.homEquiv Y (coeq (L.map f) (L.map g))) (coeqHom (L.map f) (L.map g)) =
    g ≫ (h.homEquiv Y (coeq (L.map f) (L.map g))) (coeqHom (L.map f) (L.map g))
state_after: no goals
tactic: rw [← h.homEquiv_naturality_left, ← h.homEquiv_naturality_left, coeq_condition]
Theorem: cfc_nnreal_eq_real
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Instances.lean

Proof steps:
state_before: A : Type u_1
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Ring A
inst✝¹⁰ : PartialOrder A
inst✝⁹ : StarRing A
inst✝⁸ : StarOrderedRing A
inst✝⁷ : Algebra ℝ A
inst✝⁶ : TopologicalRing A
inst✝⁵ : ContinuousStar A
inst✝⁴ : StarModule ℝ A
inst✝³ : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝² : ContinuousFunctionalCalculus ℝ≥0 fun x => 0 ≤ x
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : NonnegSpectrumClass ℝ A
a : A
f : ℝ≥0 → ℝ≥0
ha : autoParam (0 ≤ a) _auto✝
⊢ cfc f a = cfc (fun x => ↑(f x.toNNReal)) a
state_after: A : Type u_1
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Ring A
inst✝¹⁰ : PartialOrder A
inst✝⁹ : StarRing A
inst✝⁸ : StarOrderedRing A
inst✝⁷ : Algebra ℝ A
inst✝⁶ : TopologicalRing A
inst✝⁵ : ContinuousStar A
inst✝⁴ : StarModule ℝ A
inst✝³ : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝² : ContinuousFunctionalCalculus ℝ≥0 fun x => 0 ≤ x
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : NonnegSpectrumClass ℝ A
a : A
f : ℝ≥0 → ℝ≥0
ha : autoParam (0 ≤ a) _auto✝
this : CompactSpace ↑(σ ℝ a)
⊢ cfc f a = cfc (fun x => ↑(f x.toNNReal)) a
tactic: have := UniqueContinuousFunctionalCalculus.compactSpace_spectrum a (R := ℝ)
state_before: A : Type u_1
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Ring A
inst✝¹⁰ : PartialOrder A
inst✝⁹ : StarRing A
inst✝⁸ : StarOrderedRing A
inst✝⁷ : Algebra ℝ A
inst✝⁶ : TopologicalRing A
inst✝⁵ : ContinuousStar A
inst✝⁴ : StarModule ℝ A
inst✝³ : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝² : ContinuousFunctionalCalculus ℝ≥0 fun x => 0 ≤ x
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : NonnegSpectrumClass ℝ A
a : A
f : ℝ≥0 → ℝ≥0
ha : autoParam (0 ≤ a) _auto✝
this : CompactSpace ↑(σ ℝ a)
⊢ cfc f a = cfc (fun x => ↑(f x.toNNReal)) a
state_after: A : Type u_1
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Ring A
inst✝¹⁰ : PartialOrder A
inst✝⁹ : StarRing A
inst✝⁸ : StarOrderedRing A
inst✝⁷ : Algebra ℝ A
inst✝⁶ : TopologicalRing A
inst✝⁵ : ContinuousStar A
inst✝⁴ : StarModule ℝ A
inst✝³ : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝² : ContinuousFunctionalCalculus ℝ≥0 fun x => 0 ≤ x
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : NonnegSpectrumClass ℝ A
a : A
f : ℝ≥0 → ℝ≥0
this : CompactSpace ↑(σ ℝ a)
ha : 0 ≤ a
⊢ cfc f a = cfc (fun x => ↑(f x.toNNReal)) a
tactic: replace ha : 0 ≤ a := ha
state_before: A : Type u_1
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Ring A
inst✝¹⁰ : PartialOrder A
inst✝⁹ : StarRing A
inst✝⁸ : StarOrderedRing A
inst✝⁷ : Algebra ℝ A
inst✝⁶ : TopologicalRing A
inst✝⁵ : ContinuousStar A
inst✝⁴ : StarModule ℝ A
inst✝³ : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝² : ContinuousFunctionalCalculus ℝ≥0 fun x => 0 ≤ x
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : NonnegSpectrumClass ℝ A
a : A
f : ℝ≥0 → ℝ≥0
this : CompactSpace ↑(σ ℝ a)
ha : 0 ≤ a
⊢ cfc f a = cfc (fun x => ↑(f x.toNNReal)) a
state_after: no goals
tactic: apply (SpectrumRestricts.nnreal_of_nonneg ha).cfc_eq_restrict
    uniformEmbedding_subtype_val ha (.of_nonneg ha)
Theorem: AlgebraicIndependent.aevalEquiv_apply_coe
File: Mathlib/RingTheory/AlgebraicIndependent.lean

Proof steps:
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ MvPolynomial ι R ≃ₐ[R] ↥(adjoin R (range x))
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ Bijective ⇑((aeval x).codRestrict (adjoin R (range x)) ?m.269898)

ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ ∀ (x_1 : MvPolynomial ι R), (aeval x) x_1 ∈ adjoin R (range x)
tactic: apply
    AlgEquiv.ofBijective (AlgHom.codRestrict (@aeval R A ι _ _ _ x) (Algebra.adjoin R (range x)) _)
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ Bijective ⇑((aeval x).codRestrict (adjoin R (range x)) ?m.269898)

ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ ∀ (x_1 : MvPolynomial ι R), (aeval x) x_1 ∈ adjoin R (range x)
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ ∀ (x_1 : MvPolynomial ι R), (aeval x) x_1 ∈ adjoin R (range x)

ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ Bijective ⇑((aeval x).codRestrict (adjoin R (range x)) ?m.269898)
tactic: swap