ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Int.Ico_filter_dvd_eq
File: Mathlib/Data/Int/CardIntervalMod.lean

Proof steps:
state_before: a b r : ℤ
hr : 0 < r
⊢ filter (fun x => r ∣ x) (Ico a b) = map { toFun := fun x => x * r, inj' := ⋯ } (Ico ⌈↑a / ↑r⌉ ⌈↑b / ↑r⌉)
state_after: case a
a b r : ℤ
hr : 0 < r
x : ℤ
⊢ x ∈ filter (fun x => r ∣ x) (Ico a b) ↔ x ∈ map { toFun := fun x => x * r, inj' := ⋯ } (Ico ⌈↑a / ↑r⌉ ⌈↑b / ↑r⌉)
tactic: ext x
state_before: case a
a b r : ℤ
hr : 0 < r
x : ℤ
⊢ x ∈ filter (fun x => r ∣ x) (Ico a b) ↔ x ∈ map { toFun := fun x => x * r, inj' := ⋯ } (Ico ⌈↑a / ↑r⌉ ⌈↑b / ↑r⌉)
state_after: case a
a b r : ℤ
hr : 0 < r
x : ℤ
⊢ ((a ≤ x ∧ x < b) ∧ ∃ c, x = c * r) ↔
    ∃ a_1, (a ≤ a_1 * r ∧ a_1 * r < b) ∧ { toFun := fun x => x * r, inj' := ⋯ } a_1 = x
tactic: simp only [mem_map, mem_filter, mem_Ico, ceil_le, lt_ceil, div_le_iff, lt_div_iff,
    dvd_iff_exists_eq_mul_left, cast_pos.2 hr, ← cast_mul, cast_lt, cast_le]
state_before: case a
a b r : ℤ
hr : 0 < r
x : ℤ
⊢ ((a ≤ x ∧ x < b) ∧ ∃ c, x = c * r) ↔
    ∃ a_1, (a ≤ a_1 * r ∧ a_1 * r < b) ∧ { toFun := fun x => x * r, inj' := ⋯ } a_1 = x
state_after: no goals
tactic: aesop
Theorem: Subgroup.subgroupOf_sup
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

Proof steps:
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁴ : Group G
inst✝³ : Group G'
inst✝² : Group G''
A✝ : Type u_4
inst✝¹ : AddGroup A✝
N : Type u_5
inst✝ : Group N
A A' B : Subgroup G
hA : A ≤ B
hA' : A' ≤ B
⊢ (A ⊔ A').subgroupOf B = A.subgroupOf B ⊔ A'.subgroupOf B
state_after: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁴ : Group G
inst✝³ : Group G'
inst✝² : Group G''
A✝ : Type u_4
inst✝¹ : AddGroup A✝
N : Type u_5
inst✝ : Group N
A A' B : Subgroup G
hA : A ≤ B
hA' : A' ≤ B
⊢ map B.subtype ((A ⊔ A').subgroupOf B) = map B.subtype (A.subgroupOf B ⊔ A'.subgroupOf B)
tactic: refine
    map_injective_of_ker_le B.subtype (ker_le_comap _ _)
      (le_trans (ker_le_comap B.subtype _) le_sup_left) ?_
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁴ : Group G
inst✝³ : Group G'
inst✝² : Group G''
A✝ : Type u_4
inst✝¹ : AddGroup A✝
N : Type u_5
inst✝ : Group N
A A' B : Subgroup G
hA : A ≤ B
hA' : A' ≤ B
⊢ map B.subtype ((A ⊔ A').subgroupOf B) = map B.subtype (A.subgroupOf B ⊔ A'.subgroupOf B)
state_after: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁴ : Group G
inst✝³ : Group G'
inst✝² : Group G''
A✝ : Type u_4
inst✝¹ : AddGroup A✝
N : Type u_5
inst✝ : Group N
A A' B : Subgroup G
hA : A ≤ B
hA' : A' ≤ B
⊢ B ⊓ (A ⊔ A') = B ⊓ A ⊔ B ⊓ A'
tactic: simp only [subgroupOf, map_comap_eq, map_sup, subtype_range]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁴ : Group G
inst✝³ : Group G'
inst✝² : Group G''
A✝ : Type u_4
inst✝¹ : AddGroup A✝
N : Type u_5
inst✝ : Group N
A A' B : Subgroup G
hA : A ≤ B
hA' : A' ≤ B
⊢ B ⊓ (A ⊔ A') = B ⊓ A ⊔ B ⊓ A'
state_after: no goals
tactic: rw [inf_of_le_right (sup_le hA hA'), inf_of_le_right hA', inf_of_le_right hA]
Theorem: Ideal.absNorm_eq_one_iff
File: Mathlib/RingTheory/Ideal/Norm.lean

Proof steps:
state_before: S : Type u_1
inst✝⁵ : CommRing S
inst✝⁴ : IsDomain S
inst✝³ : Nontrivial S
inst✝² : IsDedekindDomain S
inst✝¹ : Module.Free ℤ S
inst✝ : Module.Finite ℤ S
I : Ideal S
⊢ absNorm I = 1 ↔ I = ⊤
state_after: no goals
tactic: rw [absNorm_apply, cardQuot_eq_one_iff]
Theorem: LieAlgebra.Orthogonal.pb_inv
File: Mathlib/Algebra/Lie/Classical.lean

Proof steps:
state_before: n : Type u_1
p : Type u_2
q : Type u_3
l : Type u_4
R : Type u₂
inst✝⁸ : DecidableEq n
inst✝⁷ : DecidableEq p
inst✝⁶ : DecidableEq q
inst✝⁵ : DecidableEq l
inst✝⁴ : CommRing R
inst✝³ : Fintype p
inst✝² : Fintype q
inst✝¹ : Fintype l
inst✝ : Invertible 2
⊢ PB l R * fromBlocks 1 0 0 ⅟(PD l R) = 1
state_after: n : Type u_1
p : Type u_2
q : Type u_3
l : Type u_4
R : Type u₂
inst✝⁸ : DecidableEq n
inst✝⁷ : DecidableEq p
inst✝⁶ : DecidableEq q
inst✝⁵ : DecidableEq l
inst✝⁴ : CommRing R
inst✝³ : Fintype p
inst✝² : Fintype q
inst✝¹ : Fintype l
inst✝ : Invertible 2
⊢ fromBlocks (1 * 1 + 0 * 0) (1 * 0 + 0 * ⅟(PD l R)) (0 * 1 + PD l R * 0) (0 * 0 + 1) = 1
tactic: rw [PB, Matrix.fromBlocks_multiply, mul_invOf_self]
state_before: n : Type u_1
p : Type u_2
q : Type u_3
l : Type u_4
R : Type u₂
inst✝⁸ : DecidableEq n
inst✝⁷ : DecidableEq p
inst✝⁶ : DecidableEq q
inst✝⁵ : DecidableEq l
inst✝⁴ : CommRing R
inst✝³ : Fintype p
inst✝² : Fintype q
inst✝¹ : Fintype l
inst✝ : Invertible 2
⊢ fromBlocks (1 * 1 + 0 * 0) (1 * 0 + 0 * ⅟(PD l R)) (0 * 1 + PD l R * 0) (0 * 0 + 1) = 1
state_after: no goals
tactic: simp only [Matrix.mul_zero, Matrix.mul_one, Matrix.zero_mul, zero_add, add_zero,
    Matrix.fromBlocks_one]
Theorem: writtenInExtChartAt_chartAt_comp
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : TopologicalSpace H
inst✝⁷ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : NormedSpace 𝕜 E'
inst✝⁴ : TopologicalSpace H'
inst✝³ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝² : ChartedSpace H M
inst✝¹ : ChartedSpace H' M'
inst✝ : ChartedSpace H H'
x : M'
y : E
hy : y ∈ (extChartAt I x).target
⊢ writtenInExtChartAt I I x (↑(chartAt H' x)) y = y
state_after: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : TopologicalSpace H
inst✝⁷ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : NormedSpace 𝕜 E'
inst✝⁴ : TopologicalSpace H'
inst✝³ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝² : ChartedSpace H M
inst✝¹ : ChartedSpace H' M'
inst✝ : ChartedSpace H H'
x : M'
y : E
hy : y ∈ (extChartAt I x).target
this : ChartedSpace H M' := ChartedSpace.comp H H' M'
⊢ writtenInExtChartAt I I x (↑(chartAt H' x)) y = y
tactic: letI := ChartedSpace.comp H H' M'
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : TopologicalSpace H
inst✝⁷ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : NormedSpace 𝕜 E'
inst✝⁴ : TopologicalSpace H'
inst✝³ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝² : ChartedSpace H M
inst✝¹ : ChartedSpace H' M'
inst✝ : ChartedSpace H H'
x : M'
y : E
hy : y ∈ (extChartAt I x).target
this : ChartedSpace H M' := ChartedSpace.comp H H' M'
⊢ writtenInExtChartAt I I x (↑(chartAt H' x)) y = y
state_after: no goals
tactic: simp_all only [mfld_simps, chartAt_comp]
Theorem: UpperHalfPlane.denom_ne_zero
File: Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean

Proof steps:
state_before: g : ↥GL(2, ℝ)⁺
z : ℍ
⊢ denom g z ≠ 0
state_after: g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
⊢ False
tactic: intro H
state_before: g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
⊢ False
state_after: g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
DET : 0 < ↑(GeneralLinearGroup.det ↑g)
⊢ False
tactic: have DET := (mem_glpos _).1 g.prop
state_before: g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
DET : 0 < ↑(GeneralLinearGroup.det ↑g)
⊢ False
state_after: g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
DET : 0 < ↑(GeneralLinearGroup.det ↑g)
hz : 0 < (↑z).im
⊢ False
tactic: have hz := z.prop
state_before: g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
DET : 0 < ↑(GeneralLinearGroup.det ↑g)
hz : 0 < (↑z).im
⊢ False
state_after: g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
DET : 0 < (↑↑g).det
hz : 0 < (↑z).im
⊢ False
tactic: simp only [GeneralLinearGroup.val_det_apply] at DET
state_before: g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
DET : 0 < (↑↑g).det
hz : 0 < (↑z).im
⊢ False
state_after: g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
DET : 0 < (↑↑g).det
hz : 0 < (↑z).im
H1 : ↑↑g 1 0 = 0 ∨ z.im = 0
⊢ False
tactic: have H1 : (↑ₘg 1 0 : ℝ) = 0 ∨ z.im = 0 := by simpa [num, denom] using congr_arg Complex.im H
state_before: g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
DET : 0 < (↑↑g).det
hz : 0 < (↑z).im
H1 : ↑↑g 1 0 = 0 ∨ z.im = 0
⊢ False
state_after: case inl
g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
DET : 0 < (↑↑g).det
hz : 0 < (↑z).im
H1 : ↑↑g 1 0 = 0
⊢ False

case inr
g : ↥GL(2, ℝ)⁺
z : ℍ
H : denom g z = 0
DET : 0 < (↑↑g).det
hz : 0 < (↑z).im
h✝ : z.im = 0
⊢ False
tactic: cases' H1 with H1
Theorem: SimplicialObject.Splitting.cofan_inj_comp_app
File: Mathlib/AlgebraicTopology/SplitSimplicialObject.lean

Proof steps:
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
X Y : SimplicialObject C
s : Splitting X
f : X ⟶ Y
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
⊢ (s.cofan Δ).inj A ≫ f.app Δ = s.φ f (unop A.fst).len ≫ Y.map A.e.op
state_after: C : Type u_1
inst✝ : Category.{u_2, u_1} C
X Y : SimplicialObject C
s : Splitting X
f : X ⟶ Y
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
⊢ s.ι (unop A.fst).len ≫ X.map A.e.op ≫ f.app Δ = s.ι (unop A.fst).len ≫ f.app (op [(unop A.fst).len]) ≫ Y.map A.e.op
tactic: simp only [cofan_inj_eq_assoc, φ, assoc]
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
X Y : SimplicialObject C
s : Splitting X
f : X ⟶ Y
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
⊢ s.ι (unop A.fst).len ≫ X.map A.e.op ≫ f.app Δ = s.ι (unop A.fst).len ≫ f.app (op [(unop A.fst).len]) ≫ Y.map A.e.op
state_after: no goals
tactic: erw [NatTrans.naturality]
Theorem: Fin.comp_cons
File: Mathlib/Data/Fin/Tuple/Basic.lean

Proof steps:
state_before: m n : ℕ
α✝ : Fin (n + 1) → Type u
x : α✝ 0
q✝ : (i : Fin (n + 1)) → α✝ i
p : (i : Fin n) → α✝ i.succ
i : Fin n
y✝ : α✝ i.succ
z : α✝ 0
α : Type u_1
β : Type u_2
g : α → β
y : α
q : Fin n → α
⊢ g ∘ cons y q = cons (g y) (g ∘ q)
state_after: case h
m n : ℕ
α✝ : Fin (n + 1) → Type u
x : α✝ 0
q✝ : (i : Fin (n + 1)) → α✝ i
p : (i : Fin n) → α✝ i.succ
i : Fin n
y✝ : α✝ i.succ
z : α✝ 0
α : Type u_1
β : Type u_2
g : α → β
y : α
q : Fin n → α
j : Fin (n + 1)
⊢ (g ∘ cons y q) j = cons (g y) (g ∘ q) j
tactic: ext j
state_before: case h
m n : ℕ
α✝ : Fin (n + 1) → Type u
x : α✝ 0
q✝ : (i : Fin (n + 1)) → α✝ i
p : (i : Fin n) → α✝ i.succ
i : Fin n
y✝ : α✝ i.succ
z : α✝ 0
α : Type u_1
β : Type u_2
g : α → β
y : α
q : Fin n → α
j : Fin (n + 1)
⊢ (g ∘ cons y q) j = cons (g y) (g ∘ q) j
state_after: case pos
m n : ℕ
α✝ : Fin (n + 1) → Type u
x : α✝ 0
q✝ : (i : Fin (n + 1)) → α✝ i
p : (i : Fin n) → α✝ i.succ
i : Fin n
y✝ : α✝ i.succ
z : α✝ 0
α : Type u_1
β : Type u_2
g : α → β
y : α
q : Fin n → α
j : Fin (n + 1)
h : j = 0
⊢ (g ∘ cons y q) j = cons (g y) (g ∘ q) j

case neg
m n : ℕ
α✝ : Fin (n + 1) → Type u
x : α✝ 0
q✝ : (i : Fin (n + 1)) → α✝ i
p : (i : Fin n) → α✝ i.succ
i : Fin n
y✝ : α✝ i.succ
z : α✝ 0
α : Type u_1
β : Type u_2
g : α → β
y : α
q : Fin n → α
j : Fin (n + 1)
h : ¬j = 0
⊢ (g ∘ cons y q) j = cons (g y) (g ∘ q) j
tactic: by_cases h : j = 0
Theorem: MulAction.orbitRel.Quotient.orbit_injective
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 β
⊢ Injective orbit
state_after: G : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MulAction G β
x y : Quotient G α
h : x.orbit = y.orbit
⊢ x = y
tactic: intro x y h
state_before: G : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MulAction G β
x y : Quotient G α
h : x.orbit = y.orbit
⊢ x = y
state_after: G : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MulAction G β
x y : Quotient G α
h : Setoid.r (Quotient.out' x) (Quotient.out' y)
⊢ x = y
tactic: simp_rw [orbitRel.Quotient.orbit_eq_orbit_out _ Quotient.out_eq', orbit_eq_iff,
    ← orbitRel_r_apply] at h
state_before: G : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MulAction G β
x y : Quotient G α
h : Setoid.r (Quotient.out' x) (Quotient.out' y)
⊢ x = y
state_after: no goals
tactic: simpa [← Quotient.eq''] using h
Theorem: Fintype.sum_pos_iff_of_nonneg
File: Mathlib/Algebra/Order/BigOperators/Group/Finset.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝¹ : Fintype ι
inst✝ : OrderedCancelCommMonoid M
f : ι → M
hf : 1 ≤ f
⊢ 1 < ∏ i : ι, f i ↔ 1 < f
state_after: no goals
tactic: obtain rfl | hf := hf.eq_or_lt <;> simp [*, one_lt_prod]
Theorem: dist_pos
File: Mathlib/Topology/MetricSpace/Basic.lean

Proof steps:
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
γ : Type w
inst✝ : MetricSpace γ
x y : γ
⊢ 0 < dist x y ↔ x ≠ y
state_after: no goals
tactic: simpa only [not_le] using not_congr dist_le_zero
Theorem: Finset.preimage_map
File: Mathlib/Data/Finset/Preimage.lean

Proof steps:
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
f : α ↪ β
s : Finset α
⊢ ↑((map f s).preimage ⇑f ⋯) = ↑s
state_after: no goals
tactic: simp only [coe_preimage, coe_map, Set.preimage_image_eq _ f.injective]
Theorem: not_primrec_ack_self
File: Mathlib/Computability/Ackermann.lean

Proof steps:
state_before: ⊢ ¬Primrec fun n => ack n n
state_after: ⊢ ¬Nat.Primrec fun n => ack n n
tactic: rw [Primrec.nat_iff]
state_before: ⊢ ¬Nat.Primrec fun n => ack n n
state_after: no goals
tactic: exact not_nat_primrec_ack_self
Theorem: Matrix.fromBlocks_map
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
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
f : α → β
⊢ (fromBlocks A B C D).map f = fromBlocks (A.map f) (B.map f) (C.map f) (D.map f)
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
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
f : α → β
i : n ⊕ o
j : l ⊕ m
⊢ (fromBlocks A B C D).map f i j = fromBlocks (A.map f) (B.map f) (C.map f) (D.map f) i j
tactic: ext i j
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
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
f : α → β
i : n ⊕ o
j : l ⊕ m
⊢ (fromBlocks A B C D).map f i j = fromBlocks (A.map f) (B.map f) (C.map f) (D.map f) i j
state_after: no goals
tactic: rcases i with ⟨⟩ <;> rcases j with ⟨⟩ <;> simp [fromBlocks]
Theorem: MeasureTheory.integrable_stoppedProcess_of_mem_finset
File: Mathlib/Probability/Process/Stopping.lean

Proof steps:
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
μ : Measure Ω
τ σ : Ω → ι
E : Type u_4
p : ℝ≥0∞
u : ι → Ω → E
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : FirstCountableTopology ι
ℱ : Filtration ι m
inst✝ : NormedAddCommGroup E
hτ : IsStoppingTime ℱ τ
hu : ∀ (n : ι), Integrable (u n) μ
n : ι
s : Finset ι
hbdd : ∀ (ω : Ω), τ ω < n → τ ω ∈ s
⊢ Integrable (stoppedProcess u τ n) μ
state_after: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
μ : Measure Ω
τ σ : Ω → ι
E : Type u_4
p : ℝ≥0∞
u : ι → Ω → E
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : FirstCountableTopology ι
ℱ : Filtration ι m
inst✝ : NormedAddCommGroup E
hτ : IsStoppingTime ℱ τ
n : ι
s : Finset ι
hbdd : ∀ (ω : Ω), τ ω < n → τ ω ∈ s
hu : ∀ (n : ι), Memℒp (u n) 1 μ
⊢ Memℒp (stoppedProcess u τ n) 1 μ
tactic: simp_rw [← memℒp_one_iff_integrable] at hu ⊢
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
μ : Measure Ω
τ σ : Ω → ι
E : Type u_4
p : ℝ≥0∞
u : ι → Ω → E
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : FirstCountableTopology ι
ℱ : Filtration ι m
inst✝ : NormedAddCommGroup E
hτ : IsStoppingTime ℱ τ
n : ι
s : Finset ι
hbdd : ∀ (ω : Ω), τ ω < n → τ ω ∈ s
hu : ∀ (n : ι), Memℒp (u n) 1 μ
⊢ Memℒp (stoppedProcess u τ n) 1 μ
state_after: no goals
tactic: exact memℒp_stoppedProcess_of_mem_finset hτ hu n hbdd
Theorem: CategoryTheory.LaxBraidedFunctor.mapCommMon_obj_mul
File: Mathlib/CategoryTheory/Monoidal/CommMon_.lean

Proof steps:
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
inst✝³ : BraidedCategory C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
inst✝¹ : MonoidalCategory D
inst✝ : BraidedCategory D
F : LaxBraidedFunctor C D
A : CommMon_ C
⊢ (β_ __src✝.X __src✝.X).hom ≫ __src✝.mul = __src✝.mul
state_after: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
inst✝³ : BraidedCategory C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
inst✝¹ : MonoidalCategory D
inst✝ : BraidedCategory D
F : LaxBraidedFunctor C D
A : CommMon_ C
⊢ (β_ (F.obj A.X) (F.obj A.X)).hom ≫ F.μ A.X A.X ≫ F.map A.mul = F.μ A.X A.X ≫ F.map A.mul
tactic: dsimp
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
inst✝³ : BraidedCategory C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
inst✝¹ : MonoidalCategory D
inst✝ : BraidedCategory D
F : LaxBraidedFunctor C D
A : CommMon_ C
⊢ (β_ (F.obj A.X) (F.obj A.X)).hom ≫ F.μ A.X A.X ≫ F.map A.mul = F.μ A.X A.X ≫ F.map A.mul
state_after: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
inst✝³ : BraidedCategory C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
inst✝¹ : MonoidalCategory D
inst✝ : BraidedCategory D
F : LaxBraidedFunctor C D
A : CommMon_ C
this : ∀ (X Y : C), F.μ X Y ≫ F.map (β_ X Y).hom = (β_ (F.obj X) (F.obj Y)).hom ≫ F.μ Y X
⊢ (β_ (F.obj A.X) (F.obj A.X)).hom ≫ F.μ A.X A.X ≫ F.map A.mul = F.μ A.X A.X ≫ F.map A.mul
tactic: have := F.braided
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
inst✝³ : BraidedCategory C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
inst✝¹ : MonoidalCategory D
inst✝ : BraidedCategory D
F : LaxBraidedFunctor C D
A : CommMon_ C
this : ∀ (X Y : C), F.μ X Y ≫ F.map (β_ X Y).hom = (β_ (F.obj X) (F.obj Y)).hom ≫ F.μ Y X
⊢ (β_ (F.obj A.X) (F.obj A.X)).hom ≫ F.μ A.X A.X ≫ F.map A.mul = F.μ A.X A.X ≫ F.map A.mul
state_after: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
inst✝³ : BraidedCategory C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
inst✝¹ : MonoidalCategory D
inst✝ : BraidedCategory D
F : LaxBraidedFunctor C D
A : CommMon_ C
this : ∀ (X Y : C), F.μ X Y ≫ F.map (β_ X Y).hom = (β_ (F.obj X) (F.obj Y)).hom ≫ F.μ Y X
⊢ (F.μ A.X A.X ≫ F.map (β_ A.X A.X).hom) ≫ F.map A.mul = F.μ A.X A.X ≫ F.map A.mul
tactic: slice_lhs 1 2 => rw [← this]
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
inst✝³ : BraidedCategory C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
inst✝¹ : MonoidalCategory D
inst✝ : BraidedCategory D
F : LaxBraidedFunctor C D
A : CommMon_ C
this : ∀ (X Y : C), F.μ X Y ≫ F.map (β_ X Y).hom = (β_ (F.obj X) (F.obj Y)).hom ≫ F.μ Y X
⊢ (F.μ A.X A.X ≫ F.map (β_ A.X A.X).hom) ≫ F.map A.mul = F.μ A.X A.X ≫ F.map A.mul
state_after: no goals
tactic: slice_lhs 2 3 => rw [← CategoryTheory.Functor.map_comp, A.mul_comm]
Theorem: contDiffOn_univ
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

Proof steps:
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiffOn 𝕜 n f univ ↔ ContDiff 𝕜 n f
state_after: case mp
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiffOn 𝕜 n f univ → ContDiff 𝕜 n f

case mpr
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiff 𝕜 n f → ContDiffOn 𝕜 n f univ
tactic: constructor
Theorem: EuclideanGeometry.orthogonalProjection_eq_self_iff
File: Mathlib/Geometry/Euclidean/Basic.lean

Proof steps:
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p : P
⊢ ↑((orthogonalProjection s) p) = p ↔ p ∈ s
state_after: case mp
V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p : P
⊢ ↑((orthogonalProjection s) p) = p → p ∈ s

case mpr
V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p : P
⊢ p ∈ s → ↑((orthogonalProjection s) p) = p
tactic: constructor
Theorem: AddCommGroup.equiv_directSum_zmod_of_finite'
File: Mathlib/GroupTheory/FiniteAbelian.lean

Proof steps:
state_before: G✝ : Type u
inst✝² : AddCommGroup G✝
G : Type u_1
inst✝¹ : AddCommGroup G
inst✝ : Finite G
⊢ ∃ ι x n, (∀ (i : ι), 1 < n i) ∧ Nonempty (G ≃+ ⨁ (i : ι), ZMod (n i))
state_after: no goals
tactic: classical
  obtain ⟨ι, hι, p, hp, n, ⟨e⟩⟩ := AddCommGroup.equiv_directSum_zmod_of_finite G
  refine ⟨{i : ι // n i ≠ 0}, inferInstance, fun i ↦ p i ^ n i, ?_,
    ⟨e.trans (directSumNeZeroMulEquiv ι _ _).symm⟩⟩
  rintro ⟨i, hi⟩
  exact one_lt_pow (hp _).one_lt hi
Theorem: Matroid.disjointSum_indep_iff
File: Mathlib/Data/Matroid/Sum.lean

Proof steps:
state_before: α : Type u_1
M N : Matroid α
h : Disjoint M.E N.E
I : Set α
⊢ (M.disjointSum N h).Indep I ↔ M.Indep (I ∩ M.E) ∧ N.Indep (I ∩ N.E) ∧ I ⊆ M.E ∪ N.E
state_after: no goals
tactic: simp [disjointSum, and_assoc]
Theorem: descPochhammer_eq_ascPochhammer
File: Mathlib/RingTheory/Polynomial/Pochhammer.lean

Proof steps:
state_before: R : Type u
inst✝ : Ring R
n : ℕ
⊢ descPochhammer ℤ n = (ascPochhammer ℤ n).comp (X - ↑n + 1)
state_after: no goals
tactic: induction n with
  | zero => rw [descPochhammer_zero, ascPochhammer_zero, one_comp]
  | succ n ih =>
    rw [Nat.cast_succ, sub_add, add_sub_cancel_right, descPochhammer_succ_right,
      ascPochhammer_succ_left, ih, X_mul, mul_X_comp, comp_assoc, add_comp, X_comp, one_comp]