1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Polynomial.one_scaleRoots
File: Mathlib/RingTheory/Polynomial/ScaleRoots.lean

tactic: ext
state_before: R : Type u_1
S : Type u_2
A : Type u_3
K : Type u_4
inst✝¹ : Semiring R
inst✝ : Semiring S
r : R
⊢ scaleRoots 1 r = 1
state_after: case a
R : Type u_1
S : Type u_2
A : Type u_3
K : Type u_4
inst✝¹ : Semiring R
inst✝ : Semiring S
r : R
n✝ : ℕ
⊢ (scaleRoots 1 r).coeff n✝ = coeff 1 n✝

tactic: simp
state_before: case a
R : Type u_1
S : Type u_2
A : Type u_3
K : Type u_4
inst✝¹ : Semiring R
inst✝ : Semiring S
r : R
n✝ : ℕ
⊢ (scaleRoots 1 r).coeff n✝ = coeff 1 n✝
state_after: no goals
Theorem: Submodule.fg_top
File: Mathlib/RingTheory/Finiteness.lean

tactic: rwa [map_top, range_subtype]
state_before: R : Type u_1
M : Type u_2
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
P : Type u_3
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
f : M →ₗ[R] P
N : Submodule R M
h : N.FG
⊢ (map N.subtype ⊤).FG
state_after: no goals
Theorem: Polynomial.roots_of_cyclotomic
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean

tactic: rw [cyclotomic']
state_before: R✝ : Type u_1
inst✝³ : CommRing R✝
inst✝² : IsDomain R✝
n : ℕ
R : Type u_2
inst✝¹ : CommRing R
inst✝ : IsDomain R
⊢ (cyclotomic' n R).roots = (primitiveRoots n R).val
state_after: R✝ : Type u_1
inst✝³ : CommRing R✝
inst✝² : IsDomain R✝
n : ℕ
R : Type u_2
inst✝¹ : CommRing R
inst✝ : IsDomain R
⊢ (∏ μ ∈ primitiveRoots n R, (X - C μ)).roots = (primitiveRoots n R).val

tactic: exact roots_prod_X_sub_C (primitiveRoots n R)
state_before: R✝ : Type u_1
inst✝³ : CommRing R✝
inst✝² : IsDomain R✝
n : ℕ
R : Type u_2
inst✝¹ : CommRing R
inst✝ : IsDomain R
⊢ (∏ μ ∈ primitiveRoots n R, (X - C μ)).roots = (primitiveRoots n R).val
state_after: no goals
Theorem: range_two_mul_add_one
File: Mathlib/Algebra/Ring/Parity.lean

tactic: ext x
state_before: F : Type u_1
α✝ : Type u_2
β : Type u_3
R : Type u_4
inst✝² : Semiring α✝
inst✝¹ : Semiring β
a b : α✝
m n : ℕ
α : Type u_5
inst✝ : Semiring α
⊢ (Set.range fun x => 2 * x + 1) = {a | Odd a}
state_after: case h
F : Type u_1
α✝ : Type u_2
β : Type u_3
R : Type u_4
inst✝² : Semiring α✝
inst✝¹ : Semiring β
a b : α✝
m n : ℕ
α : Type u_5
inst✝ : Semiring α
x : α
⊢ (x ∈ Set.range fun x => 2 * x + 1) ↔ x ∈ {a | Odd a}

tactic: simp [Odd, eq_comm]
state_before: case h
F : Type u_1
α✝ : Type u_2
β : Type u_3
R : Type u_4
inst✝² : Semiring α✝
inst✝¹ : Semiring β
a b : α✝
m n : ℕ
α : Type u_5
inst✝ : Semiring α
x : α
⊢ (x ∈ Set.range fun x => 2 * x + 1) ↔ x ∈ {a | Odd a}
state_after: no goals
Theorem: Polynomial.C'_mem_lifts
File: Mathlib/Algebra/Polynomial/Lifts.lean

tactic: obtain ⟨r, rfl⟩ := Set.mem_range.1 h
state_before: R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f✝ f : R →+* S
s : S
h : s ∈ Set.range ⇑f
⊢ C s ∈ lifts f
state_after: case intro
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f✝ f : R →+* S
r : R
h : f r ∈ Set.range ⇑f
⊢ C (f r) ∈ lifts f

tactic: use C r
state_before: case intro
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f✝ f : R →+* S
r : R
h : f r ∈ Set.range ⇑f
⊢ C (f r) ∈ lifts f
state_after: case h
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f✝ f : R →+* S
r : R
h : f r ∈ Set.range ⇑f
⊢ (mapRingHom f) (C r) = C (f r)

tactic: simp only [coe_mapRingHom, map_C, Set.mem_univ, Subsemiring.coe_top, eq_self_iff_true,
  and_self_iff]
state_before: case h
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f✝ f : R →+* S
r : R
h : f r ∈ Set.range ⇑f
⊢ (mapRingHom f) (C r) = C (f r)
state_after: no goals
Theorem: LiouvilleWith.add_rat_iff
File: Mathlib/NumberTheory/Liouville/LiouvilleWith.lean

tactic: simpa using h.add_rat (-r)
state_before: p q x y : ℝ
r : ℚ
m : ℤ
n : ℕ
h : LiouvilleWith p (x + ↑r)
⊢ LiouvilleWith p x
state_after: no goals
Theorem: EReal.toReal_neg
File: Mathlib/Data/Real/EReal.lean

tactic: simp
state_before: ⊢ (-⊤).toReal = -⊤.toReal
state_after: no goals

tactic: simp
state_before: ⊢ (-⊥).toReal = -⊥.toReal
state_after: no goals
Theorem: intervalIntegrable_iff_integrableOn_Icc_of_le
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rw [intervalIntegrable_iff_integrableOn_Ioc_of_le hab, integrableOn_Icc_iff_integrableOn_Ioc]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
f✝ : ℝ → E
a✝ b✝ : ℝ
μ✝ : Measure ℝ
f : ℝ → E
a b : ℝ
hab : a ≤ b
μ : Measure ℝ
inst✝ : NoAtoms μ
⊢ IntervalIntegrable f μ a b ↔ IntegrableOn f (Icc a b) μ
state_after: no goals
Theorem: Order.IsPredLimit.isMin
File: Mathlib/Order/SuccPred/Limit.lean

tactic: by_contra H
state_before: α : Type u_1
inst✝¹ : Preorder α
a : α
inst✝ : PredOrder α
h : IsPredLimit (pred a)
⊢ IsMin a
state_after: α : Type u_1
inst✝¹ : Preorder α
a : α
inst✝ : PredOrder α
h : IsPredLimit (pred a)
H : ¬IsMin a
⊢ False

tactic: exact h a (pred_covBy_of_not_isMin H)
state_before: α : Type u_1
inst✝¹ : Preorder α
a : α
inst✝ : PredOrder α
h : IsPredLimit (pred a)
H : ¬IsMin a
⊢ False
state_after: no goals
Theorem: SimpleGraph.dart_edge_eq_iff
File: Mathlib/Combinatorics/SimpleGraph/Dart.lean

tactic: rintro ⟨p, hp⟩ ⟨q, hq⟩
state_before: V : Type u_1
G : SimpleGraph V
⊢ ∀ (d₁ d₂ : G.Dart), d₁.edge = d₂.edge ↔ d₁ = d₂ ∨ d₁ = d₂.symm
state_after: case mk.mk
V : Type u_1
G : SimpleGraph V
p : V × V
hp : G.Adj p.1 p.2
q : V × V
hq : G.Adj q.1 q.2
⊢ { toProd := p, adj := hp }.edge = { toProd := q, adj := hq }.edge ↔
    { toProd := p, adj := hp } = { toProd := q, adj := hq } ∨
      { toProd := p, adj := hp } = { toProd := q, adj := hq }.symm

tactic: simp
state_before: case mk.mk
V : Type u_1
G : SimpleGraph V
p : V × V
hp : G.Adj p.1 p.2
q : V × V
hq : G.Adj q.1 q.2
⊢ { toProd := p, adj := hp }.edge = { toProd := q, adj := hq }.edge ↔
    { toProd := p, adj := hp } = { toProd := q, adj := hq } ∨
      { toProd := p, adj := hp } = { toProd := q, adj := hq }.symm
state_after: no goals
Theorem: Subgroup.mk_eq_one
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: simp
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
H K : Subgroup G
g : G
h : g ∈ H
⊢ ⟨g, h⟩ = 1 ↔ g = 1
state_after: no goals
Theorem: Equiv.Perm.isCycleOn_inv
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: simp only [IsCycleOn, sameCycle_inv, and_congr_left_iff]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
s t : Set α
a b x y : α
⊢ f⁻¹.IsCycleOn s ↔ f.IsCycleOn s
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
s t : Set α
a b x y : α
⊢ (∀ ⦃x : α⦄, x ∈ s → ∀ ⦃y : α⦄, y ∈ s → f.SameCycle x y) → (Set.BijOn (⇑f⁻¹) s s ↔ Set.BijOn (⇑f) s s)

tactic: exact fun _ ↦ ⟨fun h ↦ Set.BijOn.perm_inv h, fun h ↦ Set.BijOn.perm_inv h⟩
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
s t : Set α
a b x y : α
⊢ (∀ ⦃x : α⦄, x ∈ s → ∀ ⦃y : α⦄, y ∈ s → f.SameCycle x y) → (Set.BijOn (⇑f⁻¹) s s ↔ Set.BijOn (⇑f) s s)
state_after: no goals
Theorem: Turing.TM0.univ_supports
File: Mathlib/Computability/TuringMachine.lean

tactic: constructor <;> intros <;> apply Set.mem_univ
state_before: Γ : Type u_1
inst✝¹ : Inhabited Γ
Λ : Type u_2
inst✝ : Inhabited Λ
M : Machine₀
⊢ Supports M Set.univ
state_after: no goals
Theorem: Set.range_ite_subset
File: Mathlib/Data/Set/Image.lean

tactic: rw [range_subset_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t : Set α
p : α → Prop
inst✝ : DecidablePred p
f g : α → β
⊢ (range fun x => if p x then f x else g x) ⊆ range f ∪ range g
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t : Set α
p : α → Prop
inst✝ : DecidablePred p
f g : α → β
⊢ ∀ (y : α), (if p y then f y else g y) ∈ range f ∪ range g

tactic: intro x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t : Set α
p : α → Prop
inst✝ : DecidablePred p
f g : α → β
⊢ ∀ (y : α), (if p y then f y else g y) ∈ range f ∪ range g
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t : Set α
p : α → Prop
inst✝ : DecidablePred p
f g : α → β
x : α
⊢ (if p x then f x else g x) ∈ range f ∪ range g

tactic: by_cases h : p x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t : Set α
p : α → Prop
inst✝ : DecidablePred p
f g : α → β
x : α
⊢ (if p x then f x else g x) ∈ range f ∪ range g
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t : Set α
p : α → Prop
inst✝ : DecidablePred p
f g : α → β
x : α
h : p x
⊢ (if p x then f x else g x) ∈ range f ∪ range g

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t : Set α
p : α → Prop
inst✝ : DecidablePred p
f g : α → β
x : α
h : ¬p x
⊢ (if p x then f x else g x) ∈ range f ∪ range g

tactic: simp only [if_pos h, mem_union, mem_range, exists_apply_eq_apply, true_or]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t : Set α
p : α → Prop
inst✝ : DecidablePred p
f g : α → β
x : α
h : p x
⊢ (if p x then f x else g x) ∈ range f ∪ range g
state_after: no goals

tactic: simp [if_neg h, mem_union, mem_range_self]
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t : Set α
p : α → Prop
inst✝ : DecidablePred p
f g : α → β
x : α
h : ¬p x
⊢ (if p x then f x else g x) ∈ range f ∪ range g
state_after: no goals
Theorem: variationOnFromTo.eq_zero_iff_of_ge
File: Mathlib/Analysis/BoundedVariation.lean

tactic: rw [variationOnFromTo.eq_of_ge _ _ ba, neg_eq_zero, ENNReal.toReal_eq_zero_iff,
  or_iff_left (hf b a hb ha), eVariationOn.eq_zero_iff]
state_before: α : Type u_1
inst✝¹ : LinearOrder α
E : Type u_2
inst✝ : PseudoEMetricSpace E
f✝ : α → E
s✝ : Set α
f : α → E
s : Set α
hf : LocallyBoundedVariationOn f s
a b : α
ha : a ∈ s
hb : b ∈ s
ba : b ≤ a
⊢ variationOnFromTo f s a b = 0 ↔ ∀ ⦃x : α⦄, x ∈ s ∩ Icc b a → ∀ ⦃y : α⦄, y ∈ s ∩ Icc b a → edist (f x) (f y) = 0
state_after: no goals
Theorem: ProbabilityTheory.gaussianReal_apply_eq_integral
File: Mathlib/Probability/Distributions/Gaussian.lean

tactic: rw [gaussianReal_apply _ hv s, ofReal_integral_eq_lintegral_ofReal]
state_before: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
s : Set ℝ
⊢ (gaussianReal μ v) s = ENNReal.ofReal (∫ (x : ℝ) in s, gaussianPDFReal μ v x)
state_after: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
s : Set ℝ
⊢ ∫⁻ (x : ℝ) in s, gaussianPDF μ v x = ∫⁻ (x : ℝ) in s, ENNReal.ofReal (gaussianPDFReal μ v x)

case hfi
μ : ℝ
v : ℝ≥0
hv : v ≠ 0
s : Set ℝ
⊢ Integrable (gaussianPDFReal μ v) (ℙ.restrict s)

case f_nn
μ : ℝ
v : ℝ≥0
hv : v ≠ 0
s : Set ℝ
⊢ 0 ≤ᶠ[ae (ℙ.restrict s)] gaussianPDFReal μ v

tactic: rfl
state_before: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
s : Set ℝ
⊢ ∫⁻ (x : ℝ) in s, gaussianPDF μ v x = ∫⁻ (x : ℝ) in s, ENNReal.ofReal (gaussianPDFReal μ v x)
state_after: no goals

tactic: exact (integrable_gaussianPDFReal _ _).restrict
state_before: case hfi
μ : ℝ
v : ℝ≥0
hv : v ≠ 0
s : Set ℝ
⊢ Integrable (gaussianPDFReal μ v) (ℙ.restrict s)
state_after: no goals

tactic: exact ae_of_all _ (gaussianPDFReal_nonneg _ _)
state_before: case f_nn
μ : ℝ
v : ℝ≥0
hv : v ≠ 0
s : Set ℝ
⊢ 0 ≤ᶠ[ae (ℙ.restrict s)] gaussianPDFReal μ v
state_after: no goals
Theorem: String.extract_cons_addChar
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: simp only [extract, pos_add_char, ge_iff_le, Nat.add_le_add_iff_right]
state_before: c : Char
cs : List Char
b e : Pos
⊢ { data := c :: cs }.extract (b + c) (e + c) = { data := cs }.extract b e
state_after: c : Char
cs : List Char
b e : Pos
⊢ (if e.byteIdx ≤ b.byteIdx then "" else { data := extract.go₁ (c :: cs) 0 (b + c) (e + c) }) =
    if e.byteIdx ≤ b.byteIdx then "" else { data := extract.go₁ cs 0 b e }

tactic: split <;> [rfl; rw [extract.go₁_cons_addChar]]
state_before: c : Char
cs : List Char
b e : Pos
⊢ (if e.byteIdx ≤ b.byteIdx then "" else { data := extract.go₁ (c :: cs) 0 (b + c) (e + c) }) =
    if e.byteIdx ≤ b.byteIdx then "" else { data := extract.go₁ cs 0 b e }
state_after: no goals
Theorem: Cardinal.mk_Iio_real
File: Mathlib/Data/Real/Cardinality.lean

tactic: refine le_antisymm (mk_real ▸ mk_set_le _) ?_
state_before: c : ℝ
f g : ℕ → Bool
n : ℕ
a : ℝ
⊢ #↑(Iio a) = 𝔠
state_after: c : ℝ
f g : ℕ → Bool
n : ℕ
a : ℝ
⊢ 𝔠 ≤ #↑(Iio a)

tactic: have h2 : (fun x => a + a - x) '' Iio a = Ioi a := by
  simp only [image_const_sub_Iio, add_sub_cancel_right]
state_before: c : ℝ
f g : ℕ → Bool
n : ℕ
a : ℝ
⊢ 𝔠 ≤ #↑(Iio a)
state_after: c : ℝ
f g : ℕ → Bool
n : ℕ
a : ℝ
h2 : (fun x => a + a - x) '' Iio a = Ioi a
⊢ 𝔠 ≤ #↑(Iio a)

tactic: exact mk_Ioi_real a ▸ h2 ▸ mk_image_le
state_before: c : ℝ
f g : ℕ → Bool
n : ℕ
a : ℝ
h2 : (fun x => a + a - x) '' Iio a = Ioi a
⊢ 𝔠 ≤ #↑(Iio a)
state_after: no goals

tactic: simp only [image_const_sub_Iio, add_sub_cancel_right]
state_before: c : ℝ
f g : ℕ → Bool
n : ℕ
a : ℝ
⊢ (fun x => a + a - x) '' Iio a = Ioi a
state_after: no goals
Theorem: Nat.Partrec'.vec_iff
File: Mathlib/Computability/Halting.lean

tactic: simpa only [ofFn_get] using vector_ofFn fun i => to_part (h i)
state_before: m n : ℕ
f : Vector ℕ m → Vector ℕ n
h : Vec f
⊢ Computable f
state_after: no goals
Theorem: derangements.Equiv.RemoveNone.fiber_none
File: Mathlib/Combinatorics/Derangements/Basic.lean

tactic: rw [Set.eq_empty_iff_forall_not_mem]
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
⊢ fiber none = ∅
state_after: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
⊢ ∀ (x : Perm α), x ∉ fiber none

tactic: intro f hyp
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
⊢ ∀ (x : Perm α), x ∉ fiber none
state_after: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
f : Perm α
hyp : f ∈ fiber none
⊢ False

tactic: rw [RemoveNone.mem_fiber] at hyp
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
f : Perm α
hyp : f ∈ fiber none
⊢ False
state_after: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
f : Perm α
hyp : ∃ F ∈ derangements (Option α), F none = none ∧ removeNone F = f
⊢ False

tactic: rcases hyp with ⟨F, F_derangement, F_none, _⟩
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
f : Perm α
hyp : ∃ F ∈ derangements (Option α), F none = none ∧ removeNone F = f
⊢ False
state_after: case intro.intro.intro
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
f : Perm α
F : Perm (Option α)
F_derangement : F ∈ derangements (Option α)
F_none : F none = none
right✝ : removeNone F = f
⊢ False

tactic: exact F_derangement none F_none
state_before: case intro.intro.intro
α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
f : Perm α
F : Perm (Option α)
F_derangement : F ∈ derangements (Option α)
F_none : F none = none
right✝ : removeNone F = f
⊢ False
state_after: no goals
Theorem: nullMeasurableSet_of_tendsto_indicator
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean

tactic: simp_rw [← aemeasurable_indicator_const_iff (1 : ℝ≥0∞)] at As_mble ⊢
state_before: α✝ : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α✝
α : Type u_3
inst✝² : MeasurableSpace α
A : Set α
ι : Type u_4
L : Filter ι
inst✝¹ : L.IsCountablyGenerated
As : ι → Set α
inst✝ : L.NeBot
μ : Measure α
As_mble : ∀ (i : ι), NullMeasurableSet (As i) μ
h_lim : ∀ᵐ (x : α) ∂μ, ∀ᶠ (i : ι) in L, x ∈ As i ↔ x ∈ A
⊢ NullMeasurableSet A μ
state_after: α✝ : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α✝
α : Type u_3
inst✝² : MeasurableSpace α
A : Set α
ι : Type u_4
L : Filter ι
inst✝¹ : L.IsCountablyGenerated
As : ι → Set α
inst✝ : L.NeBot
μ : Measure α
h_lim : ∀ᵐ (x : α) ∂μ, ∀ᶠ (i : ι) in L, x ∈ As i ↔ x ∈ A
As_mble : ∀ (i : ι), AEMeasurable ((As i).indicator fun x => 1) μ
⊢ AEMeasurable (A.indicator fun x => 1) μ

tactic: apply aemeasurable_of_tendsto_metrizable_ae L As_mble
state_before: α✝ : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α✝
α : Type u_3
inst✝² : MeasurableSpace α
A : Set α
ι : Type u_4
L : Filter ι
inst✝¹ : L.IsCountablyGenerated
As : ι → Set α
inst✝ : L.NeBot
μ : Measure α
h_lim : ∀ᵐ (x : α) ∂μ, ∀ᶠ (i : ι) in L, x ∈ As i ↔ x ∈ A
As_mble : ∀ (i : ι), AEMeasurable ((As i).indicator fun x => 1) μ
⊢ AEMeasurable (A.indicator fun x => 1) μ
state_after: α✝ : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α✝
α : Type u_3
inst✝² : MeasurableSpace α
A : Set α
ι : Type u_4
L : Filter ι
inst✝¹ : L.IsCountablyGenerated
As : ι → Set α
inst✝ : L.NeBot
μ : Measure α
h_lim : ∀ᵐ (x : α) ∂μ, ∀ᶠ (i : ι) in L, x ∈ As i ↔ x ∈ A
As_mble : ∀ (i : ι), AEMeasurable ((As i).indicator fun x => 1) μ
⊢ ∀ᵐ (x : α) ∂μ, Tendsto (fun n => (As n).indicator (fun x => 1) x) L (𝓝 (A.indicator (fun x => 1) x))

tactic: simpa [tendsto_indicator_const_apply_iff_eventually] using h_lim
state_before: α✝ : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α✝
α : Type u_3
inst✝² : MeasurableSpace α
A : Set α
ι : Type u_4
L : Filter ι
inst✝¹ : L.IsCountablyGenerated
As : ι → Set α
inst✝ : L.NeBot
μ : Measure α
h_lim : ∀ᵐ (x : α) ∂μ, ∀ᶠ (i : ι) in L, x ∈ As i ↔ x ∈ A
As_mble : ∀ (i : ι), AEMeasurable ((As i).indicator fun x => 1) μ
⊢ ∀ᵐ (x : α) ∂μ, Tendsto (fun n => (As n).indicator (fun x => 1) x) L (𝓝 (A.indicator (fun x => 1) x))
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.comap_iInf
File: Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean

tactic: refine ext_nonempty fun s hs => ?_
state_before: α : Type u_1
ι : Sort u_2
β : Type u_3
f : α → β
m : ι → OuterMeasure β
⊢ (comap f) (⨅ i, m i) = ⨅ i, (comap f) (m i)
state_after: α : Type u_1
ι : Sort u_2
β : Type u_3
f : α → β
m : ι → OuterMeasure β
s : Set α
hs : s.Nonempty
⊢ ((comap f) (⨅ i, m i)) s = (⨅ i, (comap f) (m i)) s

tactic: refine ((comap_mono f).map_iInf_le s).antisymm ?_
state_before: α : Type u_1
ι : Sort u_2
β : Type u_3
f : α → β
m : ι → OuterMeasure β
s : Set α
hs : s.Nonempty
⊢ ((comap f) (⨅ i, m i)) s = (⨅ i, (comap f) (m i)) s
state_after: α : Type u_1
ι : Sort u_2
β : Type u_3
f : α → β
m : ι → OuterMeasure β
s : Set α
hs : s.Nonempty
⊢ (⨅ i, (comap f) (m i)) s ≤ ((comap f) (⨅ i, m i)) s

tactic: simp only [comap_apply, iInf_apply' _ hs, iInf_apply' _ (hs.image _), le_iInf_iff,
  Set.image_subset_iff, preimage_iUnion]
state_before: α : Type u_1
ι : Sort u_2
β : Type u_3
f : α → β
m : ι → OuterMeasure β
s : Set α
hs : s.Nonempty
⊢ (⨅ i, (comap f) (m i)) s ≤ ((comap f) (⨅ i, m i)) s
state_after: α : Type u_1
ι : Sort u_2
β : Type u_3
f : α → β
m : ι → OuterMeasure β
s : Set α
hs : s.Nonempty
⊢ ∀ (i : ℕ → Set β),
    s ⊆ ⋃ i_1, f ⁻¹' i i_1 →
      ⨅ t, ⨅ (_ : s ⊆ iUnion t), ∑' (n : ℕ), ⨅ i, (m i) (f '' t n) ≤ ∑' (n : ℕ), ⨅ i_2, (m i_2) (i n)

tactic: refine fun t ht => iInf_le_of_le _ (iInf_le_of_le ht <| ENNReal.tsum_le_tsum fun k => ?_)
state_before: α : Type u_1
ι : Sort u_2
β : Type u_3
f : α → β
m : ι → OuterMeasure β
s : Set α
hs : s.Nonempty
⊢ ∀ (i : ℕ → Set β),
    s ⊆ ⋃ i_1, f ⁻¹' i i_1 →
      ⨅ t, ⨅ (_ : s ⊆ iUnion t), ∑' (n : ℕ), ⨅ i, (m i) (f '' t n) ≤ ∑' (n : ℕ), ⨅ i_2, (m i_2) (i n)
state_after: α : Type u_1
ι : Sort u_2
β : Type u_3
f : α → β
m : ι → OuterMeasure β
s : Set α
hs : s.Nonempty
t : ℕ → Set β
ht : s ⊆ ⋃ i, f ⁻¹' t i
k : ℕ
⊢ ⨅ i, (m i) (f '' (f ⁻¹' t k)) ≤ ⨅ i, (m i) (t k)

tactic: exact iInf_mono fun i => (m i).mono (image_preimage_subset _ _)
state_before: α : Type u_1
ι : Sort u_2
β : Type u_3
f : α → β
m : ι → OuterMeasure β
s : Set α
hs : s.Nonempty
t : ℕ → Set β
ht : s ⊆ ⋃ i, f ⁻¹' t i
k : ℕ
⊢ ⨅ i, (m i) (f '' (f ⁻¹' t k)) ≤ ⨅ i, (m i) (t k)
state_after: no goals
Theorem: Nat.Primrec.mul
File: Mathlib/Computability/Primrec.lean

tactic: simp
state_before: p : ℕ
⊢ unpaired
      (fun z n =>
        Nat.rec 0
          (fun y IH =>
            unpaired (fun x x_1 => x + x_1)
              (Nat.pair (unpair (Nat.pair z (Nat.pair y IH))).1 (unpair (unpair (Nat.pair z (Nat.pair y IH))).2).2))
          n)
      p =
    unpaired (fun x x_1 => x * x_1) p
state_after: p : ℕ
⊢ Nat.rec 0 (fun y IH => (unpair p).1 + IH) (unpair p).2 = (unpair p).1 * (unpair p).2

tactic: induction p.unpair.2 <;> simp [*, mul_succ, add_comm _ (unpair p).fst]
state_before: p : ℕ
⊢ Nat.rec 0 (fun y IH => (unpair p).1 + IH) (unpair p).2 = (unpair p).1 * (unpair p).2
state_after: no goals
Theorem: LinearMap.coprod_inl_inr
File: Mathlib/LinearAlgebra/Prod.lean

tactic: ext <;>
  simp only [Prod.mk_add_mk, add_zero, id_apply, coprod_apply, inl_apply, inr_apply, zero_add]
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
S : Type u_3
inst✝¹³ : Semiring R
inst✝¹² : Semiring S
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : AddCommMonoid M₅
inst✝⁶ : AddCommMonoid M₆
inst✝⁵ : Module R M
inst✝⁴ : Module R M₂
inst✝³ : Module R M₃
inst✝² : Module R M₄
inst✝¹ : Module R M₅
inst✝ : Module R M₆
f : M →ₗ[R] M₂
⊢ (inl R M M₂).coprod (inr R M M₂) = id
state_after: no goals
Theorem: integrableOn_Ici_iff_integrableOn_Ioi'
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: rw [← Ioi_union_left, integrableOn_union,
  eq_true (integrableOn_singleton_iff.mpr <| Or.inr hb.lt_top), and_true_iff]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : PartialOrder α
inst✝ : MeasurableSingletonClass α
f : α → E
μ : Measure α
a b : α
hb : μ {b} ≠ ⊤
⊢ IntegrableOn f (Ici b) μ ↔ IntegrableOn f (Ioi b) μ
state_after: no goals
Theorem: IsSelfAdjoint.nnnorm_pow_two_pow
File: Mathlib/Analysis/NormedSpace/Star/Basic.lean

tactic: induction' n with k hk
state_before: 𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
n : ℕ
⊢ ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n
state_after: case zero
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
⊢ ‖x ^ 2 ^ 0‖₊ = ‖x‖₊ ^ 2 ^ 0

case succ
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
k : ℕ
hk : ‖x ^ 2 ^ k‖₊ = ‖x‖₊ ^ 2 ^ k
⊢ ‖x ^ 2 ^ (k + 1)‖₊ = ‖x‖₊ ^ 2 ^ (k + 1)

tactic: simp only [pow_zero, pow_one, Nat.zero_eq]
state_before: case zero
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
⊢ ‖x ^ 2 ^ 0‖₊ = ‖x‖₊ ^ 2 ^ 0
state_after: no goals

tactic: rw [pow_succ', pow_mul', sq]
state_before: case succ
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
k : ℕ
hk : ‖x ^ 2 ^ k‖₊ = ‖x‖₊ ^ 2 ^ k
⊢ ‖x ^ 2 ^ (k + 1)‖₊ = ‖x‖₊ ^ 2 ^ (k + 1)
state_after: case succ
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
k : ℕ
hk : ‖x ^ 2 ^ k‖₊ = ‖x‖₊ ^ 2 ^ k
⊢ ‖x ^ 2 ^ k * x ^ 2 ^ k‖₊ = ‖x‖₊ ^ (2 * 2 ^ k)

tactic: nth_rw 1 [← selfAdjoint.mem_iff.mp hx]
state_before: case succ
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
k : ℕ
hk : ‖x ^ 2 ^ k‖₊ = ‖x‖₊ ^ 2 ^ k
⊢ ‖x ^ 2 ^ k * x ^ 2 ^ k‖₊ = ‖x‖₊ ^ (2 * 2 ^ k)
state_after: case succ
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
k : ℕ
hk : ‖x ^ 2 ^ k‖₊ = ‖x‖₊ ^ 2 ^ k
⊢ ‖x⋆ ^ 2 ^ k * x ^ 2 ^ k‖₊ = ‖x‖₊ ^ (2 * 2 ^ k)

tactic: rw [← star_pow, CstarRing.nnnorm_star_mul_self, ← sq, hk, pow_mul']
state_before: case succ
𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
k : ℕ
hk : ‖x ^ 2 ^ k‖₊ = ‖x‖₊ ^ 2 ^ k
⊢ ‖x⋆ ^ 2 ^ k * x ^ 2 ^ k‖₊ = ‖x‖₊ ^ (2 * 2 ^ k)
state_after: no goals
Theorem: Matrix.isUnit_fromBlocks_zero₂₁
File: Mathlib/LinearAlgebra/Matrix/SchurComplement.lean

tactic: simp only [← nonempty_invertible_iff_isUnit, ← nonempty_prod,
  (fromBlocksZero₂₁InvertibleEquiv _ _ _).nonempty_congr]
state_before: l : Type u_1
m : Type u_2
n : Type u_3
α : Type u_4
inst✝⁶ : Fintype l
inst✝⁵ : Fintype m
inst✝⁴ : Fintype n
inst✝³ : DecidableEq l
inst✝² : DecidableEq m
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A : Matrix m m α
B : Matrix m n α
D : Matrix n n α
⊢ IsUnit (fromBlocks A B 0 D) ↔ IsUnit A ∧ IsUnit D
state_after: no goals