ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: CategoryTheory.CosimplicialObject.δ_comp_σ_self'
File: Mathlib/AlgebraicTopology/SimplicialObject.lean

Proof steps:
state_before: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
j : Fin (n + 2)
i : Fin (n + 1)
H : j = i.castSucc
⊢ X.δ j ≫ X.σ i = 𝟙 (X.obj [n])
state_after: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i : Fin (n + 1)
⊢ X.δ i.castSucc ≫ X.σ i = 𝟙 (X.obj [n])
tactic: subst H
state_before: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i : Fin (n + 1)
⊢ X.δ i.castSucc ≫ X.σ i = 𝟙 (X.obj [n])
state_after: no goals
tactic: rw [δ_comp_σ_self]
Theorem: Finsupp.NonTorsionWeight.ne_zero
File: Mathlib/Data/Finsupp/Weight.lean

Proof steps:
state_before: σ : Type u_1
M : Type u_2
w : σ → M
inst✝¹ : AddCommMonoid M
inst✝ : NonTorsionWeight w
s : σ
h : w s = 0
⊢ False
state_after: σ : Type u_1
M : Type u_2
w : σ → M
inst✝¹ : AddCommMonoid M
inst✝ : NonTorsionWeight w
s : σ
h : 1 • w s = 0
⊢ False
tactic: rw [← one_smul ℕ (w s)] at h
state_before: σ : Type u_1
M : Type u_2
w : σ → M
inst✝¹ : AddCommMonoid M
inst✝ : NonTorsionWeight w
s : σ
h : 1 • w s = 0
⊢ False
state_after: σ : Type u_1
M : Type u_2
w : σ → M
inst✝¹ : AddCommMonoid M
inst✝ : NonTorsionWeight w
s : σ
h : 1 • w s = 0
⊢ 1 = 0
tactic: apply Nat.zero_ne_one.symm
state_before: σ : Type u_1
M : Type u_2
w : σ → M
inst✝¹ : AddCommMonoid M
inst✝ : NonTorsionWeight w
s : σ
h : 1 • w s = 0
⊢ 1 = 0
state_after: no goals
tactic: exact NonTorsionWeight.eq_zero_of_smul_eq_zero h
Theorem: Orientation.eq_rotation_self_iff
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean

Proof steps:
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x : V
θ : Real.Angle
⊢ x = (o.rotation θ) x ↔ x = 0 ∨ θ = 0
state_after: no goals
tactic: rw [← rotation_eq_self_iff, eq_comm]
Theorem: thickenedIndicator_zero
File: Mathlib/Topology/MetricSpace/ThickenedIndicator.lean

Proof steps:
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
δ : ℝ
δ_pos : 0 < δ
E : Set α
x : α
x_out : x ∉ thickening δ E
⊢ (thickenedIndicator δ_pos E) x = 0
state_after: no goals
tactic: rw [thickenedIndicator_apply, thickenedIndicatorAux_zero δ_pos E x_out, zero_toNNReal]
Theorem: Finset.sum_single_ite
File: Mathlib/LinearAlgebra/FinsuppVectorSpace.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
n : Type u_3
inst✝⁴ : DecidableEq n
inst✝³ : Semiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : Fintype n
a : R
i : n
⊢ ∑ x : n, Finsupp.single x (if i = x then a else 0) = Finsupp.single i a
state_after: no goals
tactic: simp only [apply_ite (Finsupp.single _), Finsupp.single_zero, Finset.sum_ite_eq,
    if_pos (Finset.mem_univ _)]
Theorem: Submonoid.coe_sSup_of_directedOn
File: Mathlib/Algebra/Group/Submonoid/Membership.lean

Proof steps:
state_before: M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
S : Set (Submonoid M)
Sne : S.Nonempty
hS : DirectedOn (fun x x_1 => x ≤ x_1) S
x : M
⊢ x ∈ ↑(sSup S) ↔ x ∈ ⋃ s ∈ S, ↑s
state_after: no goals
tactic: simp [mem_sSup_of_directedOn Sne hS]
Theorem: FirstOrder.Language.Term.realize_constantsToVars
File: Mathlib/ModelTheory/Semantics.lean

Proof steps:
state_before: L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝⁴ : L.Structure M
inst✝³ : L.Structure N
inst✝² : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
inst✝¹ : L[[α]].Structure M
inst✝ : (L.lhomWithConstants α).IsExpansionOn M
t : L[[α]].Term β
v : β → M
⊢ realize (Sum.elim (fun a => ↑(L.con a)) v) t.constantsToVars = realize v t
state_after: case var
L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝⁴ : L.Structure M
inst✝³ : L.Structure N
inst✝² : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
inst✝¹ : L[[α]].Structure M
inst✝ : (L.lhomWithConstants α).IsExpansionOn M
v : β → M
a✝ : β
⊢ realize (Sum.elim (fun a => ↑(L.con a)) v) (var a✝).constantsToVars = realize v (var a✝)

case func
L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝⁴ : L.Structure M
inst✝³ : L.Structure N
inst✝² : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
inst✝¹ : L[[α]].Structure M
inst✝ : (L.lhomWithConstants α).IsExpansionOn M
v : β → M
n : ℕ
f : L[[α]].Functions n
ts : Fin n → L[[α]].Term β
ih : ∀ (a : Fin n), realize (Sum.elim (fun a => ↑(L.con a)) v) (ts a).constantsToVars = realize v (ts a)
⊢ realize (Sum.elim (fun a => ↑(L.con a)) v) (func f ts).constantsToVars = realize v (func f ts)
tactic: induction' t with _ n f ts ih
Theorem: CFC.log_algebraMap
File: Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean

Proof steps:
state_before: A : Type u_1
inst✝⁸ : PartialOrder A
inst✝⁷ : NormedRing A
inst✝⁶ : StarRing A
inst✝⁵ : StarOrderedRing A
inst✝⁴ : TopologicalRing A
inst✝³ : NormedAlgebra ℝ A
inst✝² : CompleteSpace A
inst✝¹ : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝ : UniqueContinuousFunctionalCalculus ℝ A
r : ℝ
⊢ log ((algebraMap ℝ A) r) = (algebraMap ℝ A) (Real.log r)
state_after: no goals
tactic: simp [log]
Theorem: List.get?_zero_scanl
File: Mathlib/Data/List/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : β → α → β
b : β
a : α
l : List α
⊢ (scanl f b l).get? 0 = some b
state_after: no goals
tactic: simp [getElem?_scanl_zero]
Theorem: Matrix.cramer_is_linear
File: Mathlib/LinearAlgebra/Matrix/Adjugate.lean

Proof steps:
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
⊢ IsLinearMap α A.cramerMap
state_after: case map_add.h
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b x✝ y✝ : n → α
i : n
⊢ A.cramerMap (x✝ + y✝) i = (A.cramerMap x✝ + A.cramerMap y✝) i

case map_smul.h
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
c✝ : α
x✝ : n → α
i : n
⊢ A.cramerMap (c✝ • x✝) i = (c✝ • A.cramerMap x✝) i
tactic: constructor <;> intros <;> ext i
Theorem: List.exists_le_of_sum_le
File: Mathlib/Algebra/Order/BigOperators/Group/List.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
P : Type u_5
M₀ : Type u_6
G : Type u_7
R : Type u_8
inst✝⁵ : Monoid M
inst✝⁴ : LinearOrder M
inst✝³ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝² : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
l : List ι
hl : l ≠ []
f g : ι → M
h : (map f l).prod ≤ (map g l).prod
⊢ ∃ x ∈ l, f x ≤ g x
state_after: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
P : Type u_5
M₀ : Type u_6
G : Type u_7
R : Type u_8
inst✝⁵ : Monoid M
inst✝⁴ : LinearOrder M
inst✝³ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝² : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
l : List ι
hl : l ≠ []
f g : ι → M
h : ∀ x ∈ l, g x < f x
⊢ (map g l).prod < (map f l).prod
tactic: contrapose! h
state_before: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
P : Type u_5
M₀ : Type u_6
G : Type u_7
R : Type u_8
inst✝⁵ : Monoid M
inst✝⁴ : LinearOrder M
inst✝³ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝² : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
l : List ι
hl : l ≠ []
f g : ι → M
h : ∀ x ∈ l, g x < f x
⊢ (map g l).prod < (map f l).prod
state_after: no goals
tactic: exact prod_lt_prod_of_ne_nil hl _ _ h
Theorem: SimpleGraph.Walk.exists_length_eq_zero_iff
File: Mathlib/Combinatorics/SimpleGraph/Walk.lean

Proof steps:
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
⊢ (∃ p, p.length = 0) ↔ u = v
state_after: case mp
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
⊢ (∃ p, p.length = 0) → u = v

case mpr
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
⊢ u = v → ∃ p, p.length = 0
tactic: constructor
Theorem: Set.piecewise_singleton
File: Mathlib/Data/Set/Function.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
δ : α → Sort u_6
s : Set α
f✝ g✝ : (i : α) → δ i
inst✝² : (j : α) → Decidable (j ∈ s)
x : α
inst✝¹ : (y : α) → Decidable (y ∈ {x})
inst✝ : DecidableEq α
f g : α → β
⊢ {x}.piecewise f g = update g x (f x)
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
δ : α → Sort u_6
s : Set α
f✝ g✝ : (i : α) → δ i
inst✝² : (j : α) → Decidable (j ∈ s)
x : α
inst✝¹ : (y : α) → Decidable (y ∈ {x})
inst✝ : DecidableEq α
f g : α → β
y : α
⊢ {x}.piecewise f g y = update g x (f x) y
tactic: ext y
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
δ : α → Sort u_6
s : Set α
f✝ g✝ : (i : α) → δ i
inst✝² : (j : α) → Decidable (j ∈ s)
x : α
inst✝¹ : (y : α) → Decidable (y ∈ {x})
inst✝ : DecidableEq α
f g : α → β
y : α
⊢ {x}.piecewise f g y = update g x (f x) y
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
δ : α → Sort u_6
s : Set α
f✝ g✝ : (i : α) → δ i
inst✝² : (j : α) → Decidable (j ∈ s)
x : α
inst✝¹ : (y : α) → Decidable (y ∈ {x})
inst✝ : DecidableEq α
f g : α → β
y : α
hy : y = x
⊢ {x}.piecewise f g y = update g x (f x) y

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
δ : α → Sort u_6
s : Set α
f✝ g✝ : (i : α) → δ i
inst✝² : (j : α) → Decidable (j ∈ s)
x : α
inst✝¹ : (y : α) → Decidable (y ∈ {x})
inst✝ : DecidableEq α
f g : α → β
y : α
hy : ¬y = x
⊢ {x}.piecewise f g y = update g x (f x) y
tactic: by_cases hy : y = x
Theorem: Ordinal.iSup_lt_lift
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

Proof steps:
state_before: α : Type u_1
r : α → α → Prop
ι : Type u
f : ι → Cardinal.{max u v}
c : Cardinal.{max u v}
hι : Cardinal.lift.{v, u} #ι < c.ord.cof
hf : ∀ (i : ι), f i < c
⊢ iSup f < c
state_after: α : Type u_1
r : α → α → Prop
ι : Type u
f : ι → Cardinal.{max u v}
c : Cardinal.{max u v}
hι : Cardinal.lift.{v, u} #ι < c.ord.cof
hf : ∀ (i : ι), f i < c
⊢ ⨆ i, (f i).ord < c.ord
tactic: rw [← ord_lt_ord, iSup_ord (Cardinal.bddAbove_range.{u, v} _)]
state_before: α : Type u_1
r : α → α → Prop
ι : Type u
f : ι → Cardinal.{max u v}
c : Cardinal.{max u v}
hι : Cardinal.lift.{v, u} #ι < c.ord.cof
hf : ∀ (i : ι), f i < c
⊢ ⨆ i, (f i).ord < c.ord
state_after: α : Type u_1
r : α → α → Prop
ι : Type u
f : ι → Cardinal.{max u v}
c : Cardinal.{max u v}
hι : Cardinal.lift.{v, u} #ι < c.ord.cof
hf : ∀ (i : ι), f i < c
i : ι
⊢ (f i).ord < c.ord
tactic: refine sup_lt_ord_lift hι fun i => ?_
state_before: α : Type u_1
r : α → α → Prop
ι : Type u
f : ι → Cardinal.{max u v}
c : Cardinal.{max u v}
hι : Cardinal.lift.{v, u} #ι < c.ord.cof
hf : ∀ (i : ι), f i < c
i : ι
⊢ (f i).ord < c.ord
state_after: α : Type u_1
r : α → α → Prop
ι : Type u
f : ι → Cardinal.{max u v}
c : Cardinal.{max u v}
hι : Cardinal.lift.{v, u} #ι < c.ord.cof
hf : ∀ (i : ι), f i < c
i : ι
⊢ f i < c
tactic: rw [ord_lt_ord]
state_before: α : Type u_1
r : α → α → Prop
ι : Type u
f : ι → Cardinal.{max u v}
c : Cardinal.{max u v}
hι : Cardinal.lift.{v, u} #ι < c.ord.cof
hf : ∀ (i : ι), f i < c
i : ι
⊢ f i < c
state_after: no goals
tactic: apply hf
Theorem: WType.rightInverse_list
File: Mathlib/Data/W/Constructions.lean

Proof steps:
state_before: γ : Type u
hd : γ
tl : List γ
⊢ toList γ (ofList γ (hd :: tl)) = hd :: tl
state_after: no goals
tactic: simp only [toList, rightInverse_list tl]
Theorem: Module.Finite.of_surjective
File: Mathlib/RingTheory/Finiteness.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
hM : Finite R M
f : M →ₗ[R] N
hf : Surjective ⇑f
⊢ ⊤.FG
state_after: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
hM : Finite R M
f : M →ₗ[R] N
hf : Surjective ⇑f
⊢ (map f ⊤).FG
tactic: rw [← LinearMap.range_eq_top.2 hf, ← Submodule.map_top]
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
hM : Finite R M
f : M →ₗ[R] N
hf : Surjective ⇑f
⊢ (map f ⊤).FG
state_after: no goals
tactic: exact hM.1.map f
Theorem: lowerClosure_add
File: Mathlib/Algebra/Order/UpperLower.lean

Proof steps:
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
s t : Set α
a : α
⊢ ↑(lowerClosure s) * t = ↑(lowerClosure (s * t))
state_after: α : Type u_1
inst✝ : OrderedCommGroup α
s t : Set α
a : α
⊢ t * ↑(lowerClosure s) = ↑(lowerClosure (t * s))
tactic: simp_rw [mul_comm _ t]
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
s t : Set α
a : α
⊢ t * ↑(lowerClosure s) = ↑(lowerClosure (t * s))
state_after: no goals
tactic: exact mul_lowerClosure _ _
Theorem: separatesPoints_continuous_of_t35Space_Icc
File: Mathlib/Topology/CompletelyRegular.lean

Proof steps:
state_before: X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
⊢ SeparatesPoints Continuous
state_after: X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
x y : X
x_ne_y : x ≠ y
⊢ ∃ f ∈ Continuous, f x ≠ f y
tactic: intro x y x_ne_y
state_before: X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
x y : X
x_ne_y : x ≠ y
⊢ ∃ f ∈ Continuous, f x ≠ f y
state_after: case intro.intro.intro
X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
x y : X
x_ne_y : x ≠ y
f : X → ↑I
f_cont : Continuous f
f_zero : f x = 0
f_one : EqOn f 1 {y}
⊢ ∃ f ∈ Continuous, f x ≠ f y
tactic: obtain ⟨f, f_cont, f_zero, f_one⟩ :=
    CompletelyRegularSpace.completely_regular x {y} isClosed_singleton x_ne_y
state_before: case intro.intro.intro
X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
x y : X
x_ne_y : x ≠ y
f : X → ↑I
f_cont : Continuous f
f_zero : f x = 0
f_one : EqOn f 1 {y}
⊢ ∃ f ∈ Continuous, f x ≠ f y
state_after: no goals
tactic: exact ⟨f, f_cont, by aesop⟩
Theorem: fourier_one
File: Mathlib/Analysis/Fourier/AddCircle.lean

Proof steps:
state_before: T : ℝ
x : AddCircle T
⊢ (fourier 1) x = ↑x.toCircle
state_after: no goals
tactic: rw [fourier_apply, one_zsmul]
Theorem: inf_eq_div_oneLePart_div
File: Mathlib/Algebra/Order/Group/PosPart.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝² : Lattice α
inst✝¹ : CommGroup α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ a ⊓ b = a / (a / b)⁺ᵐ
state_after: no goals
tactic: simp [oneLePart, div_sup, inf_comm]
Theorem: Num.toZNum_inj
File: Mathlib/Data/Num/Lemmas.lean

Proof steps:
state_before: α : Type u_1
m n : Num
h : m.toZNum = n.toZNum
⊢ m = n
state_after: no goals
tactic: cases m <;> cases n <;> cases h <;> rfl
Theorem: Basis.det_isEmpty
File: Mathlib/LinearAlgebra/Determinant.lean

Proof steps:
state_before: R : Type u_1
inst✝⁷ : CommRing R
M : Type u_2
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
M' : Type u_3
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M'
ι : Type u_4
inst✝² : DecidableEq ι
inst✝¹ : Fintype ι
e : Basis ι R M
inst✝ : IsEmpty ι
⊢ e.det = AlternatingMap.constOfIsEmpty R M ι 1
state_after: case H
R : Type u_1
inst✝⁷ : CommRing R
M : Type u_2
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
M' : Type u_3
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M'
ι : Type u_4
inst✝² : DecidableEq ι
inst✝¹ : Fintype ι
e : Basis ι R M
inst✝ : IsEmpty ι
v : ι → M
⊢ e.det v = (AlternatingMap.constOfIsEmpty R M ι 1) v
tactic: ext v
state_before: case H
R : Type u_1
inst✝⁷ : CommRing R
M : Type u_2
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
M' : Type u_3
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M'
ι : Type u_4
inst✝² : DecidableEq ι
inst✝¹ : Fintype ι
e : Basis ι R M
inst✝ : IsEmpty ι
v : ι → M
⊢ e.det v = (AlternatingMap.constOfIsEmpty R M ι 1) v
state_after: no goals
tactic: exact Matrix.det_isEmpty
Theorem: mem_balancedHull_iff
File: Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t : Set E
x : E
⊢ x ∈ balancedHull 𝕜 s ↔ ∃ r, ‖r‖ ≤ 1 ∧ x ∈ r • s
state_after: no goals
tactic: simp [balancedHull]
Theorem: ValuationRing.iff_isInteger_or_isInteger
File: Mathlib/RingTheory/Valuation/ValuationRing.lean

Proof steps:
state_before: R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
⊢ ValuationRing R ↔ ∀ (x : K), IsLocalization.IsInteger R x ∨ IsLocalization.IsInteger R x⁻¹
state_after: case mp
R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
⊢ ValuationRing R → ∀ (x : K), IsLocalization.IsInteger R x ∨ IsLocalization.IsInteger R x⁻¹

case mpr
R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
⊢ (∀ (x : K), IsLocalization.IsInteger R x ∨ IsLocalization.IsInteger R x⁻¹) → ValuationRing R
tactic: constructor
Theorem: CategoryTheory.ShortComplex.isoMk_hom_τ₂
File: Mathlib/Algebra/Homology/ShortComplex/Basic.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝³ : Category.{?u.48026, u_1} C
inst✝² : Category.{?u.48030, u_2} D
inst✝¹ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
inst✝ : HasZeroMorphisms D
e₁ : S₁.X₁ ≅ S₂.X₁
e₂ : S₁.X₂ ≅ S₂.X₂
e₃ : S₁.X₃ ≅ S₂.X₃
comm₁₂ : autoParam (e₁.hom ≫ S₂.f = S₁.f ≫ e₂.hom) _auto✝
comm₂₃ : autoParam (e₂.hom ≫ S₂.g = S₁.g ≫ e₃.hom) _auto✝
⊢ e₁.inv ≫ S₁.f = S₂.f ≫ e₂.inv
state_after: no goals
tactic: rw [← cancel_mono e₂.hom, assoc, assoc, e₂.inv_hom_id, comp_id,
          ← comm₁₂, e₁.inv_hom_id_assoc]
state_before: C : Type u_1
D : Type u_2
inst✝³ : Category.{?u.48026, u_1} C
inst✝² : Category.{?u.48030, u_2} D
inst✝¹ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
inst✝ : HasZeroMorphisms D
e₁ : S₁.X₁ ≅ S₂.X₁
e₂ : S₁.X₂ ≅ S₂.X₂
e₃ : S₁.X₃ ≅ S₂.X₃
comm₁₂ : autoParam (e₁.hom ≫ S₂.f = S₁.f ≫ e₂.hom) _auto✝
comm₂₃ : autoParam (e₂.hom ≫ S₂.g = S₁.g ≫ e₃.hom) _auto✝
⊢ e₂.inv ≫ S₁.g = S₂.g ≫ e₃.inv
state_after: no goals
tactic: rw [← cancel_mono e₃.hom, assoc, assoc, e₃.inv_hom_id, comp_id,
          ← comm₂₃, e₂.inv_hom_id_assoc]
Theorem: Matrix.blockDiagonal_zero
File: Mathlib/Data/Matrix/Block.lean

Proof steps:
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝² : DecidableEq o
inst✝¹ : Zero α
inst✝ : Zero β
⊢ blockDiagonal 0 = 0
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝² : DecidableEq o
inst✝¹ : Zero α
inst✝ : Zero β
i✝ : m × o
j✝ : n × o
⊢ blockDiagonal 0 i✝ j✝ = 0 i✝ j✝
tactic: ext
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝² : DecidableEq o
inst✝¹ : Zero α
inst✝ : Zero β
i✝ : m × o
j✝ : n × o
⊢ blockDiagonal 0 i✝ j✝ = 0 i✝ j✝
state_after: no goals
tactic: simp [blockDiagonal_apply]
Theorem: symmDiff_eq_sup
File: Mathlib/Order/SymmDiff.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedBooleanAlgebra α
a b c d : α
⊢ a ∆ b = a ⊔ b ↔ Disjoint a b
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedBooleanAlgebra α
a b c d : α
h : a ∆ b = a ⊔ b
⊢ Disjoint a b
tactic: refine ⟨fun h => ?_, Disjoint.symmDiff_eq_sup⟩
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedBooleanAlgebra α
a b c d : α
h : a ∆ b = a ⊔ b
⊢ Disjoint a b
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedBooleanAlgebra α
a b c d : α
h : Disjoint (a ⊓ b) (a ⊔ b)
⊢ Disjoint a b
tactic: rw [symmDiff_eq_sup_sdiff_inf, sdiff_eq_self_iff_disjoint] at h
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedBooleanAlgebra α
a b c d : α
h : Disjoint (a ⊓ b) (a ⊔ b)
⊢ Disjoint a b
state_after: no goals
tactic: exact h.of_disjoint_inf_of_le le_sup_left
Theorem: Function.periodicOrbit_eq_nil_iff_not_periodic_pt
File: Mathlib/Dynamics/PeriodicPts.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
⊢ periodicOrbit f x = Cycle.nil ↔ x ∉ periodicPts f
state_after: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
⊢ minimalPeriod f x = 0 ↔ x ∉ periodicPts f
tactic: simp only [periodicOrbit.eq_1, Cycle.coe_eq_nil, List.map_eq_nil, List.range_eq_nil]
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
⊢ minimalPeriod f x = 0 ↔ x ∉ periodicPts f
state_after: no goals
tactic: exact minimalPeriod_eq_zero_iff_nmem_periodicPts
Theorem: Ideal.span_singleton_mul_left_unit
File: Mathlib/RingTheory/Ideal/Basic.lean

Proof steps:
state_before: α : Type u
β : Type v
inst✝ : Semiring α
I : Ideal α
a✝ b a : α
h2 : IsUnit a
x : α
⊢ span {a * x} = span {x}
state_after: case a
α : Type u
β : Type v
inst✝ : Semiring α
I : Ideal α
a✝ b a : α
h2 : IsUnit a
x : α
⊢ ∃ a_1, a_1 * x = a * x

case a
α : Type u
β : Type v
inst✝ : Semiring α
I : Ideal α
a✝ b a : α
h2 : IsUnit a
x : α
⊢ ∃ a_1, a_1 * (a * x) = x
tactic: apply le_antisymm <;> rw [span_singleton_le_iff_mem, mem_span_singleton']
state_before: case a
α : Type u
β : Type v
inst✝ : Semiring α
I : Ideal α
a✝ b a : α
h2 : IsUnit a
x : α
⊢ ∃ a_1, a_1 * x = a * x

case a
α : Type u
β : Type v
inst✝ : Semiring α
I : Ideal α
a✝ b a : α
h2 : IsUnit a
x : α
⊢ ∃ a_1, a_1 * (a * x) = x
state_after: no goals
tactic: exacts [⟨a, rfl⟩, ⟨_, h2.unit.inv_mul_cancel_left x⟩]