ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: StrictMono.induced_topology_eq_preorder
File: Mathlib/Topology/Order/Basic.lean

Proof steps:
state_before: α✝ : Type u
β✝ : Type v
γ : Type w
α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
t : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : StrictMono f
hc : (range f).OrdConnected
⊢ induced f t = Preorder.topology α
state_after: case refine_1
α✝ : Type u
β✝ : Type v
γ : Type w
α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
t : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : StrictMono f
hc : (range f).OrdConnected
a✝ : α
b✝ : β
x✝ : α
h₁ : b✝ < f a✝
h₂ : ¬b✝ < f x✝
⊢ ∃ y < a✝, b✝ ≤ f y

case refine_2
α✝ : Type u
β✝ : Type v
γ : Type w
α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
t : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : StrictMono f
hc : (range f).OrdConnected
a✝ : α
b✝ : β
x✝ : α
h₁ : f a✝ < b✝
h₂ : ¬f x✝ < b✝
⊢ ∃ y, a✝ < y ∧ f y ≤ b✝
tactic: refine induced_topology_eq_preorder hf.lt_iff_lt (fun h₁ h₂ => ?_) fun h₁ h₂ => ?_
Theorem: CategoryTheory.Adjunction.natTransEquiv_comp
File: Mathlib/CategoryTheory/Adjunction/Unique.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : G ⟶ G'
g : G' ⟶ G''
⊢ (adj2.natTransEquiv adj3) g ≫ (adj1.natTransEquiv adj2) f = (adj1.natTransEquiv adj3) (f ≫ g)
state_after: case a
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : G ⟶ G'
g : G' ⟶ G''
⊢ (adj1.natTransEquiv adj3).symm ((adj2.natTransEquiv adj3) g ≫ (adj1.natTransEquiv adj2) f) =
    (adj1.natTransEquiv adj3).symm ((adj1.natTransEquiv adj3) (f ≫ g))
tactic: apply (natTransEquiv adj1 adj3).symm.injective
state_before: case a
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : G ⟶ G'
g : G' ⟶ G''
⊢ (adj1.natTransEquiv adj3).symm ((adj2.natTransEquiv adj3) g ≫ (adj1.natTransEquiv adj2) f) =
    (adj1.natTransEquiv adj3).symm ((adj1.natTransEquiv adj3) (f ≫ g))
state_after: case a.w.h
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : G ⟶ G'
g : G' ⟶ G''
X : D
⊢ ((adj1.natTransEquiv adj3).symm ((adj2.natTransEquiv adj3) g ≫ (adj1.natTransEquiv adj2) f)).app X =
    ((adj1.natTransEquiv adj3).symm ((adj1.natTransEquiv adj3) (f ≫ g))).app X
tactic: ext X
state_before: case a.w.h
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : G ⟶ G'
g : G' ⟶ G''
X : D
⊢ ((adj1.natTransEquiv adj3).symm ((adj2.natTransEquiv adj3) g ≫ (adj1.natTransEquiv adj2) f)).app X =
    ((adj1.natTransEquiv adj3).symm ((adj1.natTransEquiv adj3) (f ≫ g))).app X
state_after: case a.w.h
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : G ⟶ G'
g : G' ⟶ G''
X : D
⊢ adj1.unit.app (G.obj X) ≫ f.app (F.obj (G.obj X)) ≫ G'.map (adj1.counit.app X) ≫ g.app X = f.app X ≫ g.app X
tactic: simp only [natTransEquiv_symm_apply_app, Functor.comp_obj, NatTrans.comp_app,
    natTransEquiv_apply_app, Functor.id_obj, whiskerLeft_app, Functor.map_comp, Category.assoc,
    unit_naturality_assoc, right_triangle_components_assoc, Equiv.symm_apply_apply,
    ← g.naturality_assoc, ← g.naturality]
state_before: case a.w.h
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F F' F'' : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
adj3 : F'' ⊣ G''
f : G ⟶ G'
g : G' ⟶ G''
X : D
⊢ adj1.unit.app (G.obj X) ≫ f.app (F.obj (G.obj X)) ≫ G'.map (adj1.counit.app X) ≫ g.app X = f.app X ≫ g.app X
state_after: no goals
tactic: simp only [← Category.assoc, unit_naturality, Functor.comp_obj, right_triangle_components,
    Category.comp_id, ← f.naturality, Category.id_comp]
Theorem: not_IntegrableOn_Ioi_inv
File: Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean

Proof steps:
state_before: E : Type u_1
F : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : NormedAddCommGroup F
a : ℝ
⊢ ¬IntegrableOn (fun x => x⁻¹) (Ioi a) volume
state_after: no goals
tactic: simpa only [IntegrableOn, restrict_Ioi_eq_restrict_Ici] using not_IntegrableOn_Ici_inv
Theorem: Finset.sum_Ico_add
File: Mathlib/Algebra/BigOperators/Intervals.lean

Proof steps:
state_before: α : Type u_1
M : Type u_2
inst✝³ : CommMonoid M
s₂ s₁ s : Finset α
a✝ : α
g f✝ : α → M
inst✝² : OrderedCancelAddCommMonoid α
inst✝¹ : ExistsAddOfLE α
inst✝ : LocallyFiniteOrder α
f : α → M
a b c : α
⊢ ∏ x ∈ Ico a b, f (c + x) = ∏ x ∈ Ico (a + c) (b + c), f x
state_after: case h.e'_2.a
α : Type u_1
M : Type u_2
inst✝³ : CommMonoid M
s₂ s₁ s : Finset α
a✝¹ : α
g f✝ : α → M
inst✝² : OrderedCancelAddCommMonoid α
inst✝¹ : ExistsAddOfLE α
inst✝ : LocallyFiniteOrder α
f : α → M
a b c x✝ : α
a✝ : x✝ ∈ Ico a b
⊢ f (c + x✝) = f (x✝ + c)
tactic: convert prod_Ico_add' f a b c using 2
state_before: case h.e'_2.a
α : Type u_1
M : Type u_2
inst✝³ : CommMonoid M
s₂ s₁ s : Finset α
a✝¹ : α
g f✝ : α → M
inst✝² : OrderedCancelAddCommMonoid α
inst✝¹ : ExistsAddOfLE α
inst✝ : LocallyFiniteOrder α
f : α → M
a b c x✝ : α
a✝ : x✝ ∈ Ico a b
⊢ f (c + x✝) = f (x✝ + c)
state_after: no goals
tactic: rw [add_comm]
Theorem: finsum_mem_pair
File: Mathlib/Algebra/BigOperators/Finprod.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s t : Set α
h : a ≠ b
⊢ ∏ᶠ (i : α) (_ : i ∈ {a, b}), f i = f a * f b
state_after: case h
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s t : Set α
h : a ≠ b
⊢ a ∉ {b}

case hs
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s t : Set α
h : a ≠ b
⊢ {b}.Finite
tactic: rw [finprod_mem_insert, finprod_mem_singleton]
state_before: case h
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s t : Set α
h : a ≠ b
⊢ a ∉ {b}

case hs
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s t : Set α
h : a ≠ b
⊢ {b}.Finite
state_after: no goals
tactic: exacts [h, finite_singleton b]
Theorem: ZMod.natAbs_mod_two
File: Mathlib/Data/ZMod/Basic.lean

Proof steps:
state_before: m n : ℕ
a : ℤ
⊢ ↑a.natAbs = ↑a
state_after: case ofNat
m n a✝ : ℕ
⊢ ↑(Int.ofNat a✝).natAbs = ↑(Int.ofNat a✝)

case negSucc
m n a✝ : ℕ
⊢ ↑(Int.negSucc a✝).natAbs = ↑(Int.negSucc a✝)
tactic: cases a
Theorem: Nat.primeFactors_pow
File: Mathlib/Data/Nat/PrimeFin.lean

Proof steps:
state_before: a b k m n✝ p n : ℕ
hk : k ≠ 0
⊢ (n ^ k).primeFactors = n.primeFactors
state_after: case zero
a b m n✝ p n : ℕ
hk : 0 ≠ 0
⊢ (n ^ 0).primeFactors = n.primeFactors

case succ
a b m n✝¹ p n n✝ : ℕ
hk : n✝ + 1 ≠ 0
⊢ (n ^ (n✝ + 1)).primeFactors = n.primeFactors
tactic: cases k
state_before: case succ
a b m n✝¹ p n n✝ : ℕ
hk : n✝ + 1 ≠ 0
⊢ (n ^ (n✝ + 1)).primeFactors = n.primeFactors
state_after: no goals
tactic: rw [primeFactors_pow_succ]
Theorem: Matrix.compRingEquiv_apply
File: Mathlib/Data/Matrix/Composition.lean

Proof steps:
state_before: I : Type u_1
J : Type u_2
K : Type u_3
L : Type u_4
R : Type u_5
inst✝⁴ : Semiring R
inst✝³ : Fintype I
inst✝² : Fintype J
inst✝¹ : DecidableEq I
inst✝ : DecidableEq J
x✝¹ x✝ : Matrix I I (Matrix J J R)
⊢ __spread✝⁻⁰.toFun (x✝¹ * x✝) = __spread✝⁻⁰.toFun x✝¹ * __spread✝⁻⁰.toFun x✝
state_after: case a
I : Type u_1
J : Type u_2
K : Type u_3
L : Type u_4
R : Type u_5
inst✝⁴ : Semiring R
inst✝³ : Fintype I
inst✝² : Fintype J
inst✝¹ : DecidableEq I
inst✝ : DecidableEq J
x✝¹ x✝ : Matrix I I (Matrix J J R)
i✝ j✝ : I × J
⊢ __spread✝⁻⁰.toFun (x✝¹ * x✝) i✝ j✝ = (__spread✝⁻⁰.toFun x✝¹ * __spread✝⁻⁰.toFun x✝) i✝ j✝
tactic: ext _ _
state_before: case a
I : Type u_1
J : Type u_2
K : Type u_3
L : Type u_4
R : Type u_5
inst✝⁴ : Semiring R
inst✝³ : Fintype I
inst✝² : Fintype J
inst✝¹ : DecidableEq I
inst✝ : DecidableEq J
x✝¹ x✝ : Matrix I I (Matrix J J R)
i✝ j✝ : I × J
⊢ __spread✝⁻⁰.toFun (x✝¹ * x✝) i✝ j✝ = (__spread✝⁻⁰.toFun x✝¹ * __spread✝⁻⁰.toFun x✝) i✝ j✝
state_after: no goals
tactic: exact (Matrix.sum_apply _ _ _ _).trans $ Eq.symm Fintype.sum_prod_type
Theorem: Quotient.outRelEmbedding_apply
File: Mathlib/Order/RelIso/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
u : δ → δ → Prop
inst✝ : Setoid α
r : α → α → Prop
H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂
⊢ ∀ {a b : Quotient inst✝}, r ((Embedding.quotientOut α) a) ((Embedding.quotientOut α) b) ↔ Quotient.lift₂ r H a b
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
u : δ → δ → Prop
inst✝ : Setoid α
r : α → α → Prop
H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂
x y : Quotient inst✝
a b : α
⊢ r ((Embedding.quotientOut α) ⟦a⟧) ((Embedding.quotientOut α) ⟦b⟧) ↔ Quotient.lift₂ r H ⟦a⟧ ⟦b⟧
tactic: refine @fun x y => Quotient.inductionOn₂ x y fun a b => ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
u : δ → δ → Prop
inst✝ : Setoid α
r : α → α → Prop
H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂
x y : Quotient inst✝
a b : α
⊢ r ((Embedding.quotientOut α) ⟦a⟧) ((Embedding.quotientOut α) ⟦b⟧) ↔ Quotient.lift₂ r H ⟦a⟧ ⟦b⟧
state_after: no goals
tactic: apply iff_iff_eq.2 (H _ _ _ _ _ _) <;> apply Quotient.mk_out
Theorem: Finset.Icc_ssubset_Icc_left
File: Mathlib/Order/Interval/Finset/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
hI : a₂ ≤ b₂
ha : a₂ < a₁
hb : b₁ ≤ b₂
⊢ Icc a₁ b₁ ⊂ Icc a₂ b₂
state_after: ι : Type u_1
α : Type u_2
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
hI : a₂ ≤ b₂
ha : a₂ < a₁
hb : b₁ ≤ b₂
⊢ Set.Icc a₁ b₁ ⊂ Set.Icc a₂ b₂
tactic: rw [← coe_ssubset, coe_Icc, coe_Icc]
state_before: ι : Type u_1
α : Type u_2
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
hI : a₂ ≤ b₂
ha : a₂ < a₁
hb : b₁ ≤ b₂
⊢ Set.Icc a₁ b₁ ⊂ Set.Icc a₂ b₂
state_after: no goals
tactic: exact Set.Icc_ssubset_Icc_left hI ha hb
Theorem: Real.sqrt_sq_eq_abs
File: Mathlib/Data/Real/Sqrt.lean

Proof steps:
state_before: x✝ y x : ℝ
⊢ √(x ^ 2) = |x|
state_after: no goals
tactic: rw [sq, sqrt_mul_self_eq_abs]
Theorem: MvPolynomial.coe_eq_zero_iff
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

Proof steps:
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : MvPolynomial σ R
⊢ ↑φ = 0 ↔ φ = 0
state_after: no goals
tactic: rw [← coe_zero, coe_inj]
Theorem: List.Ico.pairwise_lt
File: Mathlib/Data/List/Intervals.lean

Proof steps:
state_before: n m : ℕ
⊢ Pairwise (fun x x_1 => x < x_1) (Ico n m)
state_after: n m : ℕ
⊢ Pairwise (fun x x_1 => x < x_1) (range' n (m - n))
tactic: dsimp [Ico]
state_before: n m : ℕ
⊢ Pairwise (fun x x_1 => x < x_1) (range' n (m - n))
state_after: no goals
tactic: simp [pairwise_lt_range', autoParam]
Theorem: Finpartition.isUniformOfEmpty
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean

Proof steps:
state_before: α : Type u_1
𝕜 : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : DecidableEq α
A : Finset α
P : Finpartition A
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε δ : 𝕜
u v : Finset α
hP : P.parts = ∅
⊢ P.IsUniform G ε
state_after: no goals
tactic: simp [IsUniform, hP, nonUniforms]
Theorem: Representation.linHom.mem_invariants_iff_comm
File: Mathlib/RepresentationTheory/Invariants.lean

Proof steps:
state_before: k : Type u
inst✝ : CommRing k
G : Grp
X Y : Rep k ↑G
f : ↑X.V →ₗ[k] ↑Y.V
g : ↑G
⊢ ((X.ρ.linHom Y.ρ) g) f = f ↔ f ∘ₗ X.ρ g = Y.ρ g ∘ₗ f
state_after: k : Type u
inst✝ : CommRing k
G : Grp
X Y : Rep k ↑G
f : ↑X.V →ₗ[k] ↑Y.V
g : ↑G
⊢ Y.ρ g ∘ₗ f ∘ₗ X.ρ g⁻¹ = f ↔ f ∘ₗ X.ρ g = Y.ρ g ∘ₗ f
tactic: dsimp
state_before: k : Type u
inst✝ : CommRing k
G : Grp
X Y : Rep k ↑G
f : ↑X.V →ₗ[k] ↑Y.V
g : ↑G
⊢ Y.ρ g ∘ₗ f ∘ₗ X.ρ g⁻¹ = f ↔ f ∘ₗ X.ρ g = Y.ρ g ∘ₗ f
state_after: k : Type u
inst✝ : CommRing k
G : Grp
X Y : Rep k ↑G
f : ↑X.V →ₗ[k] ↑Y.V
g : ↑G
⊢ Y.ρ g ∘ₗ f ∘ₗ ((ρAut X) g).inv = f ↔ f ∘ₗ X.ρ g = Y.ρ g ∘ₗ f
tactic: erw [← ρAut_apply_inv]
state_before: k : Type u
inst✝ : CommRing k
G : Grp
X Y : Rep k ↑G
f : ↑X.V →ₗ[k] ↑Y.V
g : ↑G
⊢ Y.ρ g ∘ₗ f ∘ₗ ((ρAut X) g).inv = f ↔ f ∘ₗ X.ρ g = Y.ρ g ∘ₗ f
state_after: k : Type u
inst✝ : CommRing k
G : Grp
X Y : Rep k ↑G
f : ↑X.V →ₗ[k] ↑Y.V
g : ↑G
⊢ f ≫ Y.ρ g = X.ρ g ≫ f ↔ f ∘ₗ X.ρ g = f ≫ Y.ρ g
tactic: rw [← LinearMap.comp_assoc, ← ModuleCat.comp_def, ← ModuleCat.comp_def, Iso.inv_comp_eq,
    ρAut_apply_hom]
state_before: k : Type u
inst✝ : CommRing k
G : Grp
X Y : Rep k ↑G
f : ↑X.V →ₗ[k] ↑Y.V
g : ↑G
⊢ f ≫ Y.ρ g = X.ρ g ≫ f ↔ f ∘ₗ X.ρ g = f ≫ Y.ρ g
state_after: no goals
tactic: exact comm
Theorem: groupCohomology.resolution.diagonalSucc_inv_single_right
File: Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean

Proof steps:
state_before: k G : Type u
inst✝¹ : CommRing k
n : ℕ
inst✝ : Group G
g : G →₀ k
f : Fin n → G
r : k
⊢ (diagonalSucc k G n).inv.hom (g ⊗ₜ[k] single f r) =
    ((Finsupp.lift ((Fin (n + 1) → G) →₀ k) k G) fun a => single (a • partialProd f) r) g
state_after: case refine_1
k G : Type u
inst✝¹ : CommRing k
n : ℕ
inst✝ : Group G
g : G →₀ k
f : Fin n → G
r : k
⊢ (diagonalSucc k G n).inv.hom (0 ⊗ₜ[k] single f r) =
    ((Finsupp.lift ((Fin (n + 1) → G) →₀ k) k G) fun a => single (a • partialProd f) r) 0

case refine_2
k G : Type u
inst✝¹ : CommRing k
n : ℕ
inst✝ : Group G
g : G →₀ k
f : Fin n → G
r : k
⊢ ∀ (a : G) (b : k) (f_1 : G →₀ k),
    a ∉ f_1.support →
      b ≠ 0 →
        (diagonalSucc k G n).inv.hom (f_1 ⊗ₜ[k] single f r) =
            ((Finsupp.lift ((Fin (n + 1) → G) →₀ k) k G) fun a => single (a • partialProd f) r) f_1 →
          (diagonalSucc k G n).inv.hom ((single a b + f_1) ⊗ₜ[k] single f r) =
            ((Finsupp.lift ((Fin (n + 1) → G) →₀ k) k G) fun a => single (a • partialProd f) r) (single a b + f_1)
tactic: refine g.induction ?_ ?_
Theorem: RingHom.codomain_trivial_iff_range_trivial
File: Mathlib/Algebra/Ring/Hom/Defs.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
x✝² : NonAssocSemiring α
x✝¹ : NonAssocSemiring β
f : α →+* β
x✝ y : α
h : f 1 = 0
x : α
⊢ f x = 0
state_after: no goals
tactic: rw [← mul_one x, map_mul, h, mul_zero]
Theorem: CategoryTheory.Subgroupoid.galoisConnection_map_comap
File: Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Groupoid C
S : Subgroupoid C
D : Type u_1
inst✝ : Groupoid D
φ : C ⥤ D
hφ : Function.Injective φ.obj
⊢ GaloisConnection (map φ hφ) (comap φ)
state_after: C : Type u
inst✝¹ : Groupoid C
S✝ : Subgroupoid C
D : Type u_1
inst✝ : Groupoid D
φ : C ⥤ D
hφ : Function.Injective φ.obj
S : Subgroupoid C
T : Subgroupoid D
⊢ map φ hφ S ≤ T ↔ S ≤ comap φ T
tactic: rintro S T
state_before: C : Type u
inst✝¹ : Groupoid C
S✝ : Subgroupoid C
D : Type u_1
inst✝ : Groupoid D
φ : C ⥤ D
hφ : Function.Injective φ.obj
S : Subgroupoid C
T : Subgroupoid D
⊢ map φ hφ S ≤ T ↔ S ≤ comap φ T
state_after: C : Type u
inst✝¹ : Groupoid C
S✝ : Subgroupoid C
D : Type u_1
inst✝ : Groupoid D
φ : C ⥤ D
hφ : Function.Injective φ.obj
S : Subgroupoid C
T : Subgroupoid D
⊢ (∀ {c d : D}, (map φ hφ S).arrows c d ⊆ T.arrows c d) ↔ ∀ {c d : C}, S.arrows c d ⊆ (comap φ T).arrows c d
tactic: simp_rw [le_iff]
state_before: C : Type u
inst✝¹ : Groupoid C
S✝ : Subgroupoid C
D : Type u_1
inst✝ : Groupoid D
φ : C ⥤ D
hφ : Function.Injective φ.obj
S : Subgroupoid C
T : Subgroupoid D
⊢ (∀ {c d : D}, (map φ hφ S).arrows c d ⊆ T.arrows c d) ↔ ∀ {c d : C}, S.arrows c d ⊆ (comap φ T).arrows c d
state_after: case mp
C : Type u
inst✝¹ : Groupoid C
S✝ : Subgroupoid C
D : Type u_1
inst✝ : Groupoid D
φ : C ⥤ D
hφ : Function.Injective φ.obj
S : Subgroupoid C
T : Subgroupoid D
⊢ (∀ {c d : D}, (map φ hφ S).arrows c d ⊆ T.arrows c d) → ∀ {c d : C}, S.arrows c d ⊆ (comap φ T).arrows c d

case mpr
C : Type u
inst✝¹ : Groupoid C
S✝ : Subgroupoid C
D : Type u_1
inst✝ : Groupoid D
φ : C ⥤ D
hφ : Function.Injective φ.obj
S : Subgroupoid C
T : Subgroupoid D
⊢ (∀ {c d : C}, S.arrows c d ⊆ (comap φ T).arrows c d) → ∀ {c d : D}, (map φ hφ S).arrows c d ⊆ T.arrows c d
tactic: constructor
Theorem: ProbabilityTheory.IdentDistrib.comp_of_aemeasurable
File: Mathlib/Probability/IdentDistrib.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
μ : Measure α
ν : Measure β
f : α → γ
g : β → γ
u : γ → δ
h : IdentDistrib f g μ ν
hu : AEMeasurable u (Measure.map f μ)
⊢ AEMeasurable (u ∘ g) ν
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
μ : Measure α
ν : Measure β
f : α → γ
g : β → γ
u : γ → δ
h : IdentDistrib f g μ ν
hu : AEMeasurable u (Measure.map g ν)
⊢ AEMeasurable (u ∘ g) ν
tactic: rw [h.map_eq] at hu
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
μ : Measure α
ν : Measure β
f : α → γ
g : β → γ
u : γ → δ
h : IdentDistrib f g μ ν
hu : AEMeasurable u (Measure.map g ν)
⊢ AEMeasurable (u ∘ g) ν
state_after: no goals
tactic: exact hu.comp_aemeasurable h.aemeasurable_snd
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
μ : Measure α
ν : Measure β
f : α → γ
g : β → γ
u : γ → δ
h : IdentDistrib f g μ ν
hu : AEMeasurable u (Measure.map f μ)
⊢ Measure.map (u ∘ f) μ = Measure.map (u ∘ g) ν
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
μ : Measure α
ν : Measure β
f : α → γ
g : β → γ
u : γ → δ
h : IdentDistrib f g μ ν
hu : AEMeasurable u (Measure.map f μ)
⊢ AEMeasurable u (Measure.map g ν)
tactic: rw [← AEMeasurable.map_map_of_aemeasurable hu h.aemeasurable_fst, ←
        AEMeasurable.map_map_of_aemeasurable _ h.aemeasurable_snd, h.map_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
μ : Measure α
ν : Measure β
f : α → γ
g : β → γ
u : γ → δ
h : IdentDistrib f g μ ν
hu : AEMeasurable u (Measure.map f μ)
⊢ AEMeasurable u (Measure.map g ν)
state_after: no goals
tactic: rwa [← h.map_eq]
Theorem: PrimeSpectrum.union_zeroLocus
File: Mathlib/RingTheory/PrimeSpectrum.lean

Proof steps:
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
s s' : Set R
⊢ zeroLocus s ∪ zeroLocus s' = zeroLocus ↑(Ideal.span s ⊓ Ideal.span s')
state_after: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
s s' : Set R
⊢ zeroLocus s ∪ zeroLocus s' = zeroLocus ↑(Ideal.span s) ∪ zeroLocus ↑(Ideal.span s')
tactic: rw [zeroLocus_inf]
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
s s' : Set R
⊢ zeroLocus s ∪ zeroLocus s' = zeroLocus ↑(Ideal.span s) ∪ zeroLocus ↑(Ideal.span s')
state_after: no goals
tactic: simp
Theorem: uniqueMDiffWithinAt_iff_uniqueDiffWithinAt
File: Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹ : NormedAddCommGroup E'
inst✝ : NormedSpace 𝕜 E'
f : E → E'
s : Set E
x : E
⊢ UniqueMDiffWithinAt 𝓘(𝕜, E) s x ↔ UniqueDiffWithinAt 𝕜 s x
state_after: no goals
tactic: simp only [UniqueMDiffWithinAt, mfld_simps]
Theorem: summable_const_iff
File: Mathlib/Topology/Algebra/InfiniteSum/Group.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝⁴ : TopologicalSpace G
inst✝³ : CommGroup G
inst✝² : TopologicalGroup G
f : α → G
inst✝¹ : Infinite β
inst✝ : T2Space G
a : G
⊢ (Multipliable fun x => a) ↔ a = 1
state_after: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝⁴ : TopologicalSpace G
inst✝³ : CommGroup G
inst✝² : TopologicalGroup G
f : α → G
inst✝¹ : Infinite β
inst✝ : T2Space G
a : G
h : Multipliable fun x => a
⊢ a = 1

case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝⁴ : TopologicalSpace G
inst✝³ : CommGroup G
inst✝² : TopologicalGroup G
f : α → G
inst✝¹ : Infinite β
inst✝ : T2Space G
a : G
⊢ a = 1 → Multipliable fun x => a
tactic: refine ⟨fun h ↦ ?_, ?_⟩
Theorem: LinearIsometryEquiv.piLpCongrLeft_single
File: Mathlib/Analysis/Normed/Lp/PiLp.lean

Proof steps:
state_before: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝¹¹ : Fact (1 ≤ p)
inst✝¹⁰ : Fintype ι
inst✝⁹ : Semiring 𝕜
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (α i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁶ : (i : ι) → Module 𝕜 (α i)
inst✝⁵ : (i : ι) → Module 𝕜 (β i)
c : 𝕜
ι' : Type u_5
inst✝⁴ : Fintype ι'
E : Type u_6
inst✝³ : SeminormedAddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : DecidableEq ι
inst✝ : DecidableEq ι'
e : ι ≃ ι'
i : ι
v : E
⊢ (LinearIsometryEquiv.piLpCongrLeft p 𝕜 E e) ((WithLp.equiv p (ι → E)).symm (Pi.single i v)) =
    (WithLp.equiv p (ι' → E)).symm (Pi.single (e i) v)
state_after: case h
p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝¹¹ : Fact (1 ≤ p)
inst✝¹⁰ : Fintype ι
inst✝⁹ : Semiring 𝕜
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (α i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁶ : (i : ι) → Module 𝕜 (α i)
inst✝⁵ : (i : ι) → Module 𝕜 (β i)
c : 𝕜
ι' : Type u_5
inst✝⁴ : Fintype ι'
E : Type u_6
inst✝³ : SeminormedAddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : DecidableEq ι
inst✝ : DecidableEq ι'
e : ι ≃ ι'
i : ι
v : E
x : ι'
⊢ (LinearIsometryEquiv.piLpCongrLeft p 𝕜 E e) ((WithLp.equiv p (ι → E)).symm (Pi.single i v)) x =
    (WithLp.equiv p (ι' → E)).symm (Pi.single (e i) v) x
tactic: funext x
state_before: case h
p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
inst✝¹¹ : Fact (1 ≤ p)
inst✝¹⁰ : Fintype ι
inst✝⁹ : Semiring 𝕜
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (α i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁶ : (i : ι) → Module 𝕜 (α i)
inst✝⁵ : (i : ι) → Module 𝕜 (β i)
c : 𝕜
ι' : Type u_5
inst✝⁴ : Fintype ι'
E : Type u_6
inst✝³ : SeminormedAddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : DecidableEq ι
inst✝ : DecidableEq ι'
e : ι ≃ ι'
i : ι
v : E
x : ι'
⊢ (LinearIsometryEquiv.piLpCongrLeft p 𝕜 E e) ((WithLp.equiv p (ι → E)).symm (Pi.single i v)) x =
    (WithLp.equiv p (ι' → E)).symm (Pi.single (e i) v) x
state_after: no goals
tactic: simp [LinearIsometryEquiv.piLpCongrLeft_apply, LinearEquiv.piCongrLeft', Equiv.piCongrLeft',
    Pi.single, Function.update, Equiv.symm_apply_eq]
Theorem: gauge_neg_set_neg
File: Mathlib/Analysis/Convex/Gauge.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
x✝ : E
a : ℝ
x : E
⊢ gauge (-s) (-x) = gauge s x
state_after: no goals
tactic: simp_rw [gauge_def', smul_neg, neg_mem_neg]
Theorem: Function.Embedding.sumSet_preimage_inr
File: Mathlib/Logic/Embedding/Set.lean

Proof steps:
state_before: α : Type u_1
ι : Type u_2
s t r : Set α
h : Disjoint s t
⊢ ↑(Sum.inr ⁻¹' (⇑(sumSet h) ⁻¹' r)) = r ∩ t
state_after: no goals
tactic: simp [Set.ext_iff]