1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Matrix.linfty_opNNNorm_toMatrix
File: Mathlib/Analysis/Matrix.lean

tactic: rw [linfty_opNNNorm_eq_opNNNorm]
state_before: R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁶ : Fintype l
inst✝⁵ : Fintype m
inst✝⁴ : Fintype n
inst✝³ : Unique ι
inst✝² : NontriviallyNormedField α
inst✝¹ : NormedAlgebra ℝ α
inst✝ : DecidableEq n
f : (n → α) →L[α] m → α
⊢ ‖LinearMap.toMatrix' ↑f‖₊ = ‖f‖₊
state_after: R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁶ : Fintype l
inst✝⁵ : Fintype m
inst✝⁴ : Fintype n
inst✝³ : Unique ι
inst✝² : NontriviallyNormedField α
inst✝¹ : NormedAlgebra ℝ α
inst✝ : DecidableEq n
f : (n → α) →L[α] m → α
⊢ ‖{ toLinearMap := (LinearMap.toMatrix' ↑f).mulVecLin, cont := ⋯ }‖₊ = ‖f‖₊

tactic: simp only [← toLin'_apply', toLin'_toMatrix']
state_before: R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁶ : Fintype l
inst✝⁵ : Fintype m
inst✝⁴ : Fintype n
inst✝³ : Unique ι
inst✝² : NontriviallyNormedField α
inst✝¹ : NormedAlgebra ℝ α
inst✝ : DecidableEq n
f : (n → α) →L[α] m → α
⊢ ‖{ toLinearMap := (LinearMap.toMatrix' ↑f).mulVecLin, cont := ⋯ }‖₊ = ‖f‖₊
state_after: no goals
Theorem: heq_const_of_unique
File: Mathlib/Logic/Unique.lean

tactic: rw [Subsingleton.elim i default]
state_before: α : Sort u_1
inst✝ : Unique α
β : α → Sort v
f : (a : α) → β a
i x✝¹ : α
x✝ : HEq i x✝¹
⊢ HEq (f i) (Function.const α (f default) x✝¹)
state_after: α : Sort u_1
inst✝ : Unique α
β : α → Sort v
f : (a : α) → β a
i x✝¹ : α
x✝ : HEq i x✝¹
⊢ HEq (f default) (Function.const α (f default) x✝¹)

tactic: rfl
state_before: α : Sort u_1
inst✝ : Unique α
β : α → Sort v
f : (a : α) → β a
i x✝¹ : α
x✝ : HEq i x✝¹
⊢ HEq (f default) (Function.const α (f default) x✝¹)
state_after: no goals
Theorem: LipschitzWith.norm_le_mul'
File: Mathlib/Analysis/Normed/Group/Uniform.lean

tactic: simpa only [dist_one_right, hf] using h.dist_le_mul x 1
state_before: 𝓕 : Type u_1
α : Type u_2
E : Type u_3
F : Type u_4
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
inst✝ : FunLike 𝓕 E F
f : E → F
K : ℝ≥0
h : LipschitzWith K f
hf : f 1 = 1
x : E
⊢ ‖f x‖ ≤ ↑K * ‖x‖
state_after: no goals
Theorem: Equiv.Perm.sameCycle_one
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: simp [SameCycle]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
p : α → Prop
x y z : α
⊢ SameCycle 1 x y ↔ x = y
state_after: no goals
Theorem: Turing.TM1.stmts₁_self
File: Mathlib/Computability/TuringMachine.lean

tactic: cases q <;> simp only [stmts₁, Finset.mem_insert_self, Finset.mem_singleton_self]
state_before: Γ : Type u_1
inst✝ : Inhabited Γ
Λ : Type u_2
σ : Type u_3
q : Stmt₁
⊢ q ∈ stmts₁ q
state_after: no goals
Theorem: SimpleGraph.induce_eq_coe_induce_top
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: ext
state_before: ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
s : Set V
⊢ SimpleGraph.induce s G = (⊤.induce s).coe
state_after: case Adj.h.h.a
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
s : Set V
x✝¹ x✝ : ↑s
⊢ (SimpleGraph.induce s G).Adj x✝¹ x✝ ↔ (⊤.induce s).coe.Adj x✝¹ x✝

tactic: simp
state_before: case Adj.h.h.a
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
s : Set V
x✝¹ x✝ : ↑s
⊢ (SimpleGraph.induce s G).Adj x✝¹ x✝ ↔ (⊤.induce s).coe.Adj x✝¹ x✝
state_after: no goals
Theorem: Metric.frontier_cthickening_disjoint
File: Mathlib/Topology/MetricSpace/Thickening.lean

tactic: simpa
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ ε : ℝ
s t : Set α
x : α
A : Set α
r₁ r₂ : ℝ≥0
hr : r₁ ≠ r₂
⊢ ENNReal.ofReal ↑r₁ ≠ ENNReal.ofReal ↑r₂
state_after: no goals
Theorem: ProbabilityTheory.kernel.piecewise_apply'
File: Mathlib/Probability/Kernel/Basic.lean

tactic: rw [piecewise_apply]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ η : ↥(kernel α β)
s : Set α
hs : MeasurableSet s
inst✝ : DecidablePred fun x => x ∈ s
a : α
t : Set β
⊢ ((piecewise hs κ η) a) t = if a ∈ s then (κ a) t else (η a) t
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ η : ↥(kernel α β)
s : Set α
hs : MeasurableSet s
inst✝ : DecidablePred fun x => x ∈ s
a : α
t : Set β
⊢ (if a ∈ s then κ a else η a) t = if a ∈ s then (κ a) t else (η a) t

tactic: split_ifs <;> rfl
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ η : ↥(kernel α β)
s : Set α
hs : MeasurableSet s
inst✝ : DecidablePred fun x => x ∈ s
a : α
t : Set β
⊢ (if a ∈ s then κ a else η a) t = if a ∈ s then (κ a) t else (η a) t
state_after: no goals
Theorem: Turing.PartrecToTM2.codeSupp_fix
File: Mathlib/Computability/TMToPartrec.lean

tactic: simp [codeSupp, codeSupp', contSupp, Finset.union_assoc, Finset.union_left_comm,
  Finset.union_left_idem]
state_before: f : Code
k : Cont'
⊢ codeSupp f.fix k = trStmts₁ (trNormal f.fix k) ∪ codeSupp f (Cont'.fix f k)
state_after: no goals
Theorem: MeasureTheory.snorm'_smul_measure
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: rw [snorm', lintegral_smul_measure, ENNReal.mul_rpow_of_nonneg, snorm']
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ
hp : 0 ≤ p
f : α → F
c : ℝ≥0∞
⊢ snorm' f p (c • μ) = c ^ (1 / p) * snorm' f p μ
state_after: case hz
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ
hp : 0 ≤ p
f : α → F
c : ℝ≥0∞
⊢ 0 ≤ 1 / p

tactic: simp [hp]
state_before: case hz
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ
hp : 0 ≤ p
f : α → F
c : ℝ≥0∞
⊢ 0 ≤ 1 / p
state_after: no goals
Theorem: Polynomial.annIdealGenerator_eq_minpoly
File: Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean

tactic: by_cases h : annIdealGenerator 𝕜 a = 0
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a : A
⊢ annIdealGenerator 𝕜 a = minpoly 𝕜 a
state_after: case pos
𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a : A
h : annIdealGenerator 𝕜 a = 0
⊢ annIdealGenerator 𝕜 a = minpoly 𝕜 a

case neg
𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a : A
h : ¬annIdealGenerator 𝕜 a = 0
⊢ annIdealGenerator 𝕜 a = minpoly 𝕜 a

tactic: rw [h, minpoly.eq_zero]
state_before: case pos
𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a : A
h : annIdealGenerator 𝕜 a = 0
⊢ annIdealGenerator 𝕜 a = minpoly 𝕜 a
state_after: case pos
𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a : A
h : annIdealGenerator 𝕜 a = 0
⊢ ¬IsIntegral 𝕜 a

tactic: rintro ⟨p, p_monic, hp : aeval a p = 0⟩
state_before: case pos
𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a : A
h : annIdealGenerator 𝕜 a = 0
⊢ ¬IsIntegral 𝕜 a
state_after: case pos.intro.intro
𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a : A
h : annIdealGenerator 𝕜 a = 0
p : 𝕜[X]
p_monic : p.Monic
hp : (aeval a) p = 0
⊢ False

tactic: refine p_monic.ne_zero (Ideal.mem_bot.mp ?_)
state_before: case pos.intro.intro
𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a : A
h : annIdealGenerator 𝕜 a = 0
p : 𝕜[X]
p_monic : p.Monic
hp : (aeval a) p = 0
⊢ False
state_after: case pos.intro.intro
𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a : A
h : annIdealGenerator 𝕜 a = 0
p : 𝕜[X]
p_monic : p.Monic
hp : (aeval a) p = 0
⊢ p ∈ ⊥

tactic: simpa only [annIdealGenerator_eq_zero_iff.mp h] using mem_annIdeal_iff_aeval_eq_zero.mpr hp
state_before: case pos.intro.intro
𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a : A
h : annIdealGenerator 𝕜 a = 0
p : 𝕜[X]
p_monic : p.Monic
hp : (aeval a) p = 0
⊢ p ∈ ⊥
state_after: no goals

tactic: exact minpoly.unique _ _ (monic_annIdealGenerator _ _ h) (annIdealGenerator_aeval_eq_zero _ _)
  fun q q_monic hq =>
    degree_annIdealGenerator_le_of_mem a q (mem_annIdeal_iff_aeval_eq_zero.mpr hq)
      q_monic.ne_zero
state_before: case neg
𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a : A
h : ¬annIdealGenerator 𝕜 a = 0
⊢ annIdealGenerator 𝕜 a = minpoly 𝕜 a
state_after: no goals
Theorem: CategoryTheory.rightDistributor_hom_comp_biproduct_π
File: Mathlib/CategoryTheory/Monoidal/Preadditive.lean

tactic: simp [rightDistributor_hom, Preadditive.sum_comp, biproduct.ι_π, comp_dite]
state_before: C : Type u_1
inst✝⁵ : Category.{u_2, u_1} C
inst✝⁴ : Preadditive C
inst✝³ : MonoidalCategory C
inst✝² : MonoidalPreadditive C
inst✝¹ : HasFiniteBiproducts C
J : Type
inst✝ : Fintype J
f : J → C
X : C
j : J
⊢ (rightDistributor f X).hom ≫ biproduct.π (fun j => f j ⊗ X) j = biproduct.π f j ▷ X
state_after: no goals
Theorem: WithZero.min_le_iff
File: Mathlib/Algebra/Order/GroupWithZero/Canonical.lean

tactic: simp only [WithZero.coe_le_coe, min_le_iff]
state_before: α : Type u_1
inst✝ : LinearOrder α
a b c : α
⊢ min ↑a ↑b ≤ ↑c ↔ min a b ≤ c
state_after: no goals
Theorem: mul_mul_inv_cancel'_right
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [← div_eq_mul_inv, mul_div_cancel a b]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : CommGroup G
a✝ b✝ c d a b : G
⊢ a * (b * a⁻¹) = b
state_after: no goals
Theorem: Polynomial.leval_coe_eq_smeval
File: Mathlib/Algebra/Polynomial/Smeval.lean

tactic: rw [Function.funext_iff]
state_before: R✝ : Type u_1
inst✝⁴ : Semiring R✝
p q : R✝[X]
S : Type u_2
inst✝³ : AddCommMonoid S
inst✝² : Pow S ℕ
inst✝¹ : Module R✝ S
x : S
R : Type u_3
inst✝ : Semiring R
r : R
⊢ ⇑(leval r) = fun p => p.smeval r
state_after: R✝ : Type u_1
inst✝⁴ : Semiring R✝
p q : R✝[X]
S : Type u_2
inst✝³ : AddCommMonoid S
inst✝² : Pow S ℕ
inst✝¹ : Module R✝ S
x : S
R : Type u_3
inst✝ : Semiring R
r : R
⊢ ∀ (a : R[X]), (leval r) a = a.smeval r

tactic: intro
state_before: R✝ : Type u_1
inst✝⁴ : Semiring R✝
p q : R✝[X]
S : Type u_2
inst✝³ : AddCommMonoid S
inst✝² : Pow S ℕ
inst✝¹ : Module R✝ S
x : S
R : Type u_3
inst✝ : Semiring R
r : R
⊢ ∀ (a : R[X]), (leval r) a = a.smeval r
state_after: R✝ : Type u_1
inst✝⁴ : Semiring R✝
p q : R✝[X]
S : Type u_2
inst✝³ : AddCommMonoid S
inst✝² : Pow S ℕ
inst✝¹ : Module R✝ S
x : S
R : Type u_3
inst✝ : Semiring R
r : R
a✝ : R[X]
⊢ (leval r) a✝ = a✝.smeval r

tactic: rw [leval_apply, smeval_def, eval_eq_sum]
state_before: R✝ : Type u_1
inst✝⁴ : Semiring R✝
p q : R✝[X]
S : Type u_2
inst✝³ : AddCommMonoid S
inst✝² : Pow S ℕ
inst✝¹ : Module R✝ S
x : S
R : Type u_3
inst✝ : Semiring R
r : R
a✝ : R[X]
⊢ (leval r) a✝ = a✝.smeval r
state_after: R✝ : Type u_1
inst✝⁴ : Semiring R✝
p q : R✝[X]
S : Type u_2
inst✝³ : AddCommMonoid S
inst✝² : Pow S ℕ
inst✝¹ : Module R✝ S
x : S
R : Type u_3
inst✝ : Semiring R
r : R
a✝ : R[X]
⊢ (a✝.sum fun e a => a * r ^ e) = a✝.sum (smul_pow r)

tactic: rfl
state_before: R✝ : Type u_1
inst✝⁴ : Semiring R✝
p q : R✝[X]
S : Type u_2
inst✝³ : AddCommMonoid S
inst✝² : Pow S ℕ
inst✝¹ : Module R✝ S
x : S
R : Type u_3
inst✝ : Semiring R
r : R
a✝ : R[X]
⊢ (a✝.sum fun e a => a * r ^ e) = a✝.sum (smul_pow r)
state_after: no goals
Theorem: CategoryTheory.hasTerminal_of_isSeparating
File: Mathlib/CategoryTheory/Generator.lean

tactic: haveI : Small.{v₁} 𝒢.op := small_of_injective (Set.opEquiv_self 𝒢).injective
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
inst✝² : WellPowered Cᵒᵖ
inst✝¹ : HasColimits C
𝒢 : Set C
inst✝ : Small.{v₁, u₁} ↑𝒢
h𝒢 : IsSeparating 𝒢
⊢ HasTerminal C
state_after: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
inst✝² : WellPowered Cᵒᵖ
inst✝¹ : HasColimits C
𝒢 : Set C
inst✝ : Small.{v₁, u₁} ↑𝒢
h𝒢 : IsSeparating 𝒢
this : Small.{v₁, u₁} ↑𝒢.op
⊢ HasTerminal C

tactic: haveI : HasInitial Cᵒᵖ := hasInitial_of_isCoseparating ((isCoseparating_op_iff _).2 h𝒢)
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
inst✝² : WellPowered Cᵒᵖ
inst✝¹ : HasColimits C
𝒢 : Set C
inst✝ : Small.{v₁, u₁} ↑𝒢
h𝒢 : IsSeparating 𝒢
this : Small.{v₁, u₁} ↑𝒢.op
⊢ HasTerminal C
state_after: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
inst✝² : WellPowered Cᵒᵖ
inst✝¹ : HasColimits C
𝒢 : Set C
inst✝ : Small.{v₁, u₁} ↑𝒢
h𝒢 : IsSeparating 𝒢
this✝ : Small.{v₁, u₁} ↑𝒢.op
this : HasInitial Cᵒᵖ
⊢ HasTerminal C

tactic: exact hasTerminal_of_hasInitial_op
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
inst✝² : WellPowered Cᵒᵖ
inst✝¹ : HasColimits C
𝒢 : Set C
inst✝ : Small.{v₁, u₁} ↑𝒢
h𝒢 : IsSeparating 𝒢
this✝ : Small.{v₁, u₁} ↑𝒢.op
this : HasInitial Cᵒᵖ
⊢ HasTerminal C
state_after: no goals
Theorem: List.Chain'.infix
File: Mathlib/Data/List/Chain.lean

tactic: rcases h' with ⟨l₂, l₃, rfl⟩
state_before: α : Type u
β : Type v
R r : α → α → Prop
l l₁ l₂ : List α
a b : α
h : Chain' R l
h' : l₁ <:+: l
⊢ Chain' R l₁
state_after: case intro.intro
α : Type u
β : Type v
R r : α → α → Prop
l₁ l₂✝ : List α
a b : α
l₂ l₃ : List α
h : Chain' R (l₂ ++ l₁ ++ l₃)
⊢ Chain' R l₁

tactic: exact h.left_of_append.right_of_append
state_before: case intro.intro
α : Type u
β : Type v
R r : α → α → Prop
l₁ l₂✝ : List α
a b : α
l₂ l₃ : List α
h : Chain' R (l₂ ++ l₁ ++ l₃)
⊢ Chain' R l₁
state_after: no goals
Theorem: ProbabilityTheory.kernel.tendsto_m_density
File: Mathlib/Probability/Kernel/Disintegration/Density.lean

tactic: filter_upwards [tendsto_densityProcess_limitProcess hκν a hs, density_ae_eq_limitProcess hκν a hs]
  with t h1 h2 using h2 ▸ h1
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝¹ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
a : α
inst✝ : IsFiniteKernel ν
s : Set β
hs : MeasurableSet s
⊢ ∀ᵐ (x : γ) ∂ν a, Tendsto (fun n => densityProcess κ ν n a x s) atTop (𝓝 (density κ ν a x s))
state_after: no goals
Theorem: BoxIntegral.IntegrationParams.exists_memBaseSet_le_iUnion_eq
File: Mathlib/Analysis/BoxIntegral/Partition/Filter.lean

tactic: rcases π₀.exists_tagged_le_isHenstock_isSubordinate_iUnion_eq r with ⟨π, hle, hH, hr, hd, hU⟩
state_before: ι : Type u_1
inst✝ : Fintype ι
I J : Box ι
c c₁ c₂ : ℝ≥0
r✝ r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π π₁ π₂ : TaggedPrepartition I
l✝ l₁ l₂ l : IntegrationParams
π₀ : Prepartition I
hc₁ : π₀.distortion ≤ c
hc₂ : π₀.compl.distortion ≤ c
r : (ι → ℝ) → ↑(Set.Ioi 0)
⊢ ∃ π, l.MemBaseSet I c r π ∧ π.toPrepartition ≤ π₀ ∧ π.iUnion = π₀.iUnion
state_after: case intro.intro.intro.intro.intro
ι : Type u_1
inst✝ : Fintype ι
I J : Box ι
c c₁ c₂ : ℝ≥0
r✝ r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π✝ π₁ π₂ : TaggedPrepartition I
l✝ l₁ l₂ l : IntegrationParams
π₀ : Prepartition I
hc₁ : π₀.distortion ≤ c
hc₂ : π₀.compl.distortion ≤ c
r : (ι → ℝ) → ↑(Set.Ioi 0)
π : TaggedPrepartition I
hle : π.toPrepartition ≤ π₀
hH : π.IsHenstock
hr : π.IsSubordinate r
hd : π.distortion = π₀.distortion
hU : π.iUnion = π₀.iUnion
⊢ ∃ π, l.MemBaseSet I c r π ∧ π.toPrepartition ≤ π₀ ∧ π.iUnion = π₀.iUnion

tactic: refine ⟨π, ⟨hr, fun _ => hH, fun _ => hd.trans_le hc₁, fun _ => ⟨π₀.compl, ?_, hc₂⟩⟩, ⟨hle, hU⟩⟩
state_before: case intro.intro.intro.intro.intro
ι : Type u_1
inst✝ : Fintype ι
I J : Box ι
c c₁ c₂ : ℝ≥0
r✝ r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π✝ π₁ π₂ : TaggedPrepartition I
l✝ l₁ l₂ l : IntegrationParams
π₀ : Prepartition I
hc₁ : π₀.distortion ≤ c
hc₂ : π₀.compl.distortion ≤ c
r : (ι → ℝ) → ↑(Set.Ioi 0)
π : TaggedPrepartition I
hle : π.toPrepartition ≤ π₀
hH : π.IsHenstock
hr : π.IsSubordinate r
hd : π.distortion = π₀.distortion
hU : π.iUnion = π₀.iUnion
⊢ ∃ π, l.MemBaseSet I c r π ∧ π.toPrepartition ≤ π₀ ∧ π.iUnion = π₀.iUnion
state_after: case intro.intro.intro.intro.intro
ι : Type u_1
inst✝ : Fintype ι
I J : Box ι
c c₁ c₂ : ℝ≥0
r✝ r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π✝ π₁ π₂ : TaggedPrepartition I
l✝ l₁ l₂ l : IntegrationParams
π₀ : Prepartition I
hc₁ : π₀.distortion ≤ c
hc₂ : π₀.compl.distortion ≤ c
r : (ι → ℝ) → ↑(Set.Ioi 0)
π : TaggedPrepartition I
hle : π.toPrepartition ≤ π₀
hH : π.IsHenstock
hr : π.IsSubordinate r
hd : π.distortion = π₀.distortion
hU : π.iUnion = π₀.iUnion
x✝ : l.bDistortion = true
⊢ π₀.compl.iUnion = ↑I \ π.iUnion

tactic: exact Prepartition.compl_congr hU ▸ π.toPrepartition.iUnion_compl
state_before: case intro.intro.intro.intro.intro
ι : Type u_1
inst✝ : Fintype ι
I J : Box ι
c c₁ c₂ : ℝ≥0
r✝ r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π✝ π₁ π₂ : TaggedPrepartition I
l✝ l₁ l₂ l : IntegrationParams
π₀ : Prepartition I
hc₁ : π₀.distortion ≤ c
hc₂ : π₀.compl.distortion ≤ c
r : (ι → ℝ) → ↑(Set.Ioi 0)
π : TaggedPrepartition I
hle : π.toPrepartition ≤ π₀
hH : π.IsHenstock
hr : π.IsSubordinate r
hd : π.distortion = π₀.distortion
hU : π.iUnion = π₀.iUnion
x✝ : l.bDistortion = true
⊢ π₀.compl.iUnion = ↑I \ π.iUnion
state_after: no goals
Theorem: Set.image_seq
File: Mathlib/Data/Set/Lattice.lean

tactic: simp only [seq, image_image2, image2_image_left, comp_apply]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : β → γ
s : Set (α → β)
t : Set α
⊢ f '' s.seq t = ((fun x => f ∘ x) '' s).seq t
state_after: no goals
Theorem: Rep.diagonalHomEquiv_symm_partialProd_succ
File: Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean

tactic: simp only [diagonalHomEquiv_symm_apply, Function.comp_apply, Fin.succ_succAbove_zero,
  Fin.partialProd_zero, map_one, Fin.succ_succAbove_succ, LinearMap.one_apply,
  Fin.partialProd_succ]
state_before: k G : Type u
inst✝¹ : CommRing k
n : ℕ
inst✝ : Group G
A : Rep k G
f : (Fin n → G) → CoeSort.coe A
g : Fin (n + 1) → G
a : Fin (n + 1)
⊢ ((diagonalHomEquiv n A).symm f).hom (Finsupp.single (Fin.partialProd g ∘ a.succ.succAbove) 1) =
    f (a.contractNth (fun x x_1 => x * x_1) g)
state_after: k G : Type u
inst✝¹ : CommRing k
n : ℕ
inst✝ : Group G
A : Rep k G
f : (Fin n → G) → CoeSort.coe A
g : Fin (n + 1) → G
a : Fin (n + 1)
⊢ (f fun i =>
      (Fin.partialProd g (a.succ.succAbove i.castSucc))⁻¹ *
        (Fin.partialProd g (a.succAbove i).castSucc * g (a.succAbove i))) =
    f (a.contractNth (fun x x_1 => x * x_1) g)

tactic: congr
state_before: k G : Type u
inst✝¹ : CommRing k
n : ℕ
inst✝ : Group G
A : Rep k G
f : (Fin n → G) → CoeSort.coe A
g : Fin (n + 1) → G
a : Fin (n + 1)
⊢ (f fun i =>
      (Fin.partialProd g (a.succ.succAbove i.castSucc))⁻¹ *
        (Fin.partialProd g (a.succAbove i).castSucc * g (a.succAbove i))) =
    f (a.contractNth (fun x x_1 => x * x_1) g)
state_after: case e_a
k G : Type u
inst✝¹ : CommRing k
n : ℕ
inst✝ : Group G
A : Rep k G
f : (Fin n → G) → CoeSort.coe A
g : Fin (n + 1) → G
a : Fin (n + 1)
⊢ (fun i =>
      (Fin.partialProd g (a.succ.succAbove i.castSucc))⁻¹ *
        (Fin.partialProd g (a.succAbove i).castSucc * g (a.succAbove i))) =
    a.contractNth (fun x x_1 => x * x_1) g

tactic: ext
state_before: case e_a
k G : Type u
inst✝¹ : CommRing k
n : ℕ
inst✝ : Group G
A : Rep k G
f : (Fin n → G) → CoeSort.coe A
g : Fin (n + 1) → G
a : Fin (n + 1)
⊢ (fun i =>
      (Fin.partialProd g (a.succ.succAbove i.castSucc))⁻¹ *
        (Fin.partialProd g (a.succAbove i).castSucc * g (a.succAbove i))) =
    a.contractNth (fun x x_1 => x * x_1) g
state_after: case e_a.h
k G : Type u
inst✝¹ : CommRing k
n : ℕ
inst✝ : Group G
A : Rep k G
f : (Fin n → G) → CoeSort.coe A
g : Fin (n + 1) → G
a : Fin (n + 1)
x✝ : Fin n
⊢ (Fin.partialProd g (a.succ.succAbove x✝.castSucc))⁻¹ *
      (Fin.partialProd g (a.succAbove x✝).castSucc * g (a.succAbove x✝)) =
    a.contractNth (fun x x_1 => x * x_1) g x✝

tactic: rw [← Fin.partialProd_succ, Fin.inv_partialProd_mul_eq_contractNth]
state_before: case e_a.h
k G : Type u
inst✝¹ : CommRing k
n : ℕ
inst✝ : Group G
A : Rep k G
f : (Fin n → G) → CoeSort.coe A
g : Fin (n + 1) → G
a : Fin (n + 1)
x✝ : Fin n
⊢ (Fin.partialProd g (a.succ.succAbove x✝.castSucc))⁻¹ *
      (Fin.partialProd g (a.succAbove x✝).castSucc * g (a.succAbove x✝)) =
    a.contractNth (fun x x_1 => x * x_1) g x✝
state_after: no goals
Theorem: FirstOrder.Language.DirectLimit.funMap_unify_equiv
File: Mathlib/ModelTheory/DirectLimit.lean

tactic: refine ⟨k, ik, jk, ?_⟩
state_before: case intro.intro
L : Language
ι : Type v
inst✝³ : Preorder ι
G : ι → Type w
inst✝² : (i : ι) → L.Structure (G i)
f : (i j : ι) → i ≤ j → G i ↪[L] G j
inst✝¹ : IsDirected ι fun x x_1 => x ≤ x_1
inst✝ : DirectedSystem G fun i j h => ⇑(f i j h)
n : ℕ
F : L.Functions n
x : Fin n → Σˣ f
i j : ι
hi : i ∈ upperBounds (range (Sigma.fst ∘ x))
hj : j ∈ upperBounds (range (Sigma.fst ∘ x))
k : ι
ik : i ≤ k
jk : j ≤ k
⊢ Structure.Sigma.mk f i (funMap F (unify f x i hi)) ≈ Structure.Sigma.mk f j (funMap F (unify f x j hj))
state_after: case intro.intro
L : Language
ι : Type v
inst✝³ : Preorder ι
G : ι → Type w
inst✝² : (i : ι) → L.Structure (G i)
f : (i j : ι) → i ≤ j → G i ↪[L] G j
inst✝¹ : IsDirected ι fun x x_1 => x ≤ x_1
inst✝ : DirectedSystem G fun i j h => ⇑(f i j h)
n : ℕ
F : L.Functions n
x : Fin n → Σˣ f
i j : ι
hi : i ∈ upperBounds (range (Sigma.fst ∘ x))
hj : j ∈ upperBounds (range (Sigma.fst ∘ x))
k : ι
ik : i ≤ k
jk : j ≤ k
⊢ (f i k ik) (funMap F (unify f x i hi)) = (f j k jk) (funMap F (unify f x j hj))

tactic: rw [(f i k ik).map_fun, (f j k jk).map_fun, comp_unify, comp_unify]
state_before: case intro.intro
L : Language
ι : Type v
inst✝³ : Preorder ι
G : ι → Type w
inst✝² : (i : ι) → L.Structure (G i)
f : (i j : ι) → i ≤ j → G i ↪[L] G j
inst✝¹ : IsDirected ι fun x x_1 => x ≤ x_1
inst✝ : DirectedSystem G fun i j h => ⇑(f i j h)
n : ℕ
F : L.Functions n
x : Fin n → Σˣ f
i j : ι
hi : i ∈ upperBounds (range (Sigma.fst ∘ x))
hj : j ∈ upperBounds (range (Sigma.fst ∘ x))
k : ι
ik : i ≤ k
jk : j ≤ k
⊢ (f i k ik) (funMap F (unify f x i hi)) = (f j k jk) (funMap F (unify f x j hj))
state_after: no goals
Theorem: Monotone.map_iSup_of_continuousAt
File: Mathlib/Topology/Order/Monotone.lean

tactic: rw [iSup, Mf.map_sSup_of_continuousAt Cf fbot, ← range_comp, iSup]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁶ : CompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : CompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
ι : Sort u_4
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Mf : Monotone f
fbot : f ⊥ = ⊥
⊢ f (⨆ i, g i) = ⨆ i, f (g i)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁶ : CompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : CompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
ι : Sort u_4
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Mf : Monotone f
fbot : f ⊥ = ⊥
⊢ sSup (range (f ∘ g)) = sSup (range fun i => f (g i))

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁶ : CompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : CompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
ι : Sort u_4
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Mf : Monotone f
fbot : f ⊥ = ⊥
⊢ sSup (range (f ∘ g)) = sSup (range fun i => f (g i))
state_after: no goals