1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Set.chainHeight_eq_iSup_Iic
File: Mathlib/Order/Height.lean

tactic: simp_rw [← chainHeight_dual (_ ∩ _)]
state_before: α : Type u_1
β : Type u_2
s t : Set α
inst✝ : Preorder α
⊢ s.chainHeight = ⨆ i ∈ s, (s ∩ Iic i).chainHeight
state_after: α : Type u_1
β : Type u_2
s t : Set α
inst✝ : Preorder α
⊢ s.chainHeight = ⨆ i ∈ s, (⇑ofDual ⁻¹' (s ∩ Iic i)).chainHeight

tactic: rw [← chainHeight_dual, chainHeight_eq_iSup_Ici]
state_before: α : Type u_1
β : Type u_2
s t : Set α
inst✝ : Preorder α
⊢ s.chainHeight = ⨆ i ∈ s, (⇑ofDual ⁻¹' (s ∩ Iic i)).chainHeight
state_after: α : Type u_1
β : Type u_2
s t : Set α
inst✝ : Preorder α
⊢ ⨆ i ∈ ⇑ofDual ⁻¹' s, (⇑ofDual ⁻¹' s ∩ Ici i).chainHeight = ⨆ i ∈ s, (⇑ofDual ⁻¹' (s ∩ Iic i)).chainHeight

tactic: rfl
state_before: α : Type u_1
β : Type u_2
s t : Set α
inst✝ : Preorder α
⊢ ⨆ i ∈ ⇑ofDual ⁻¹' s, (⇑ofDual ⁻¹' s ∩ Ici i).chainHeight = ⨆ i ∈ s, (⇑ofDual ⁻¹' (s ∩ Iic i)).chainHeight
state_after: no goals
Theorem: CategoryTheory.GrothendieckTopology.W_sheafToPreheaf_map_iff_isIso
File: Mathlib/CategoryTheory/Sites/Localization.lean

tactic: rw [W_eq_W_range_sheafToPresheaf_obj, LeftBousfield.W_iff_isIso _ _ ⟨_, rfl⟩ ⟨_, rfl⟩,
  isIso_iff_of_reflects_iso]
state_before: C : Type u_1
inst✝¹ : Category.{u_3, u_1} C
J : GrothendieckTopology C
A : Type u_2
inst✝ : Category.{u_4, u_2} A
F₁ F₂ : Sheaf J A
φ : F₁ ⟶ F₂
⊢ J.W ((sheafToPresheaf J A).map φ) ↔ IsIso φ
state_after: no goals
Theorem: aemeasurable_restrict_iff_comap_subtype
File: Mathlib/MeasureTheory/Measure/AEMeasurable.lean

tactic: rw [← map_comap_subtype_coe hs, (MeasurableEmbedding.subtype_coe hs).aemeasurable_map_iff]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
R : Type u_6
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
f✝ g : α → β
μ✝ ν : Measure α
s : Set α
hs : MeasurableSet s
μ : Measure α
f : α → β
⊢ AEMeasurable f (μ.restrict s) ↔ AEMeasurable (f ∘ Subtype.val) (Measure.comap Subtype.val μ)
state_after: no goals
Theorem: symmDiff_bot
File: Mathlib/Order/SymmDiff.lean

tactic: rw [symmDiff, sdiff_bot, bot_sdiff, sup_bot_eq]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ a ∆ ⊥ = a
state_after: no goals
Theorem: FreeAbelianGroup.mem_support_iff
File: Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean

tactic: rw [support, Finsupp.mem_support_iff]
state_before: X : Type u_1
x : X
a : FreeAbelianGroup X
⊢ x ∈ a.support ↔ (coeff x) a ≠ 0
state_after: X : Type u_1
x : X
a : FreeAbelianGroup X
⊢ (toFinsupp a) x ≠ 0 ↔ (coeff x) a ≠ 0

tactic: exact Iff.rfl
state_before: X : Type u_1
x : X
a : FreeAbelianGroup X
⊢ (toFinsupp a) x ≠ 0 ↔ (coeff x) a ≠ 0
state_after: no goals
Theorem: Real.volume_pi_le_diam_pow
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

tactic: simp only [ENNReal.coe_one, one_mul, Finset.prod_const, Fintype.card]
state_before: ι : Type u_1
inst✝ : Fintype ι
s : Set (ι → ℝ)
⊢ ∏ _i : ι, ↑1 * EMetric.diam s = EMetric.diam s ^ Fintype.card ι
state_after: no goals
Theorem: Set.union_prod
File: Mathlib/Data/Set/Prod.lean

tactic: ext ⟨x, y⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
⊢ (s₁ ∪ s₂) ×ˢ t = s₁ ×ˢ t ∪ s₂ ×ˢ t
state_after: case h.mk
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
x : α
y : β
⊢ (x, y) ∈ (s₁ ∪ s₂) ×ˢ t ↔ (x, y) ∈ s₁ ×ˢ t ∪ s₂ ×ˢ t

tactic: simp [or_and_right]
state_before: case h.mk
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
x : α
y : β
⊢ (x, y) ∈ (s₁ ∪ s₂) ×ˢ t ↔ (x, y) ∈ s₁ ×ˢ t ∪ s₂ ×ˢ t
state_after: no goals
Theorem: Rat.num_div_eq_of_coprime
File: Mathlib/Data/Rat/Lemmas.lean

tactic: rw [← Int.natAbs_of_nonneg hb0.le, ← Rat.divInt_eq_div,
  ← mk_eq_divInt _ _ (Int.natAbs_ne_zero.mpr hb0.ne') h]
state_before: a b : ℤ
hb0 : 0 < b
h : a.natAbs.Coprime b.natAbs
⊢ (↑a / ↑b).num = a
state_after: no goals
Theorem: Set.Finite.toFinset_offDiag
File: Mathlib/Data/Set/Finite.lean

tactic: simp
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
inst✝ : DecidableEq α
hs : s.Finite
⊢ ∀ (a : α × α), a ∈ ⋯.toFinset ↔ a ∈ hs.toFinset.offDiag
state_after: no goals
Theorem: Set.image_subtype_val_Ioo
File: Mathlib/Order/Interval/Set/OrdConnected.lean

tactic: simpa
state_before: α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : Preorder β
s✝ t s : Set α
inst✝ : s.OrdConnected
x y : ↑s
⊢ (range ⇑(OrderEmbedding.subtype fun x => x ∈ s)).OrdConnected
state_after: no goals
Theorem: Pretrivialization.linearMapAt_symmₗ
File: Mathlib/Topology/VectorBundle/Basic.lean

tactic: rw [e.linearMapAt_def_of_mem hb]
state_before: R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
y : F
⊢ (Pretrivialization.linearMapAt R e b) ((Pretrivialization.symmₗ R e b) y) = y
state_after: R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
y : F
⊢ ↑(linearEquivAt R e b hb) ((Pretrivialization.symmₗ R e b) y) = y

tactic: exact (e.linearEquivAt R b hb).right_inv y
state_before: R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
y : F
⊢ ↑(linearEquivAt R e b hb) ((Pretrivialization.symmₗ R e b) y) = y
state_after: no goals
Theorem: List.rotate_replicate
File: Mathlib/Data/List/Rotate.lean

tactic: rw [length_rotate, length_replicate]
state_before: α : Type u
a : α
n k : ℕ
⊢ ((replicate n a).rotate k).length = n
state_after: no goals
Theorem: Mon_.mul_leftUnitor
File: Mathlib/CategoryTheory/Monoidal/Mon_.lean

tactic: rw [← Category.comp_id (λ_ (𝟙_ C)).hom, ← Category.id_comp M.mul, tensor_comp]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ (tensor_μ C (𝟙_ C, M.X) (𝟙_ C, M.X) ≫ ((λ_ (𝟙_ C)).hom ⊗ M.mul)) ≫ (λ_ M.X).hom =
    ((λ_ M.X).hom ⊗ (λ_ M.X).hom) ≫ M.mul
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ (tensor_μ C (𝟙_ C, M.X) (𝟙_ C, M.X) ≫ ((λ_ (𝟙_ C)).hom ⊗ 𝟙 (M.X ⊗ M.X)) ≫ (𝟙 (𝟙_ C) ⊗ M.mul)) ≫ (λ_ M.X).hom =
    ((λ_ M.X).hom ⊗ (λ_ M.X).hom) ≫ 𝟙 (M.X ⊗ M.X) ≫ M.mul

tactic: simp only [tensorHom_id, id_tensorHom]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ (tensor_μ C (𝟙_ C, M.X) (𝟙_ C, M.X) ≫ ((λ_ (𝟙_ C)).hom ⊗ 𝟙 (M.X ⊗ M.X)) ≫ (𝟙 (𝟙_ C) ⊗ M.mul)) ≫ (λ_ M.X).hom =
    ((λ_ M.X).hom ⊗ (λ_ M.X).hom) ≫ 𝟙 (M.X ⊗ M.X) ≫ M.mul
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ (tensor_μ C (𝟙_ C, M.X) (𝟙_ C, M.X) ≫ (λ_ (𝟙_ C)).hom ▷ (M.X ⊗ M.X) ≫ 𝟙_ C ◁ M.mul) ≫ (λ_ M.X).hom =
    ((λ_ M.X).hom ⊗ (λ_ M.X).hom) ≫ 𝟙 (M.X ⊗ M.X) ≫ M.mul

tactic: slice_lhs 3 4 => rw [leftUnitor_naturality]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ (tensor_μ C (𝟙_ C, M.X) (𝟙_ C, M.X) ≫ (λ_ (𝟙_ C)).hom ▷ (M.X ⊗ M.X) ≫ 𝟙_ C ◁ M.mul) ≫ (λ_ M.X).hom =
    ((λ_ M.X).hom ⊗ (λ_ M.X).hom) ≫ 𝟙 (M.X ⊗ M.X) ≫ M.mul
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ tensor_μ C (𝟙_ C, M.X) (𝟙_ C, M.X) ≫ (λ_ (𝟙_ C)).hom ▷ (M.X ⊗ M.X) ≫ (λ_ (M.X ⊗ M.X)).hom ≫ M.mul =
    ((λ_ M.X).hom ⊗ (λ_ M.X).hom) ≫ 𝟙 (M.X ⊗ M.X) ≫ M.mul

tactic: slice_lhs 1 3 => rw [← leftUnitor_monoidal]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ tensor_μ C (𝟙_ C, M.X) (𝟙_ C, M.X) ≫ (λ_ (𝟙_ C)).hom ▷ (M.X ⊗ M.X) ≫ (λ_ (M.X ⊗ M.X)).hom ≫ M.mul =
    ((λ_ M.X).hom ⊗ (λ_ M.X).hom) ≫ 𝟙 (M.X ⊗ M.X) ≫ M.mul
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ ((λ_ M.X).hom ⊗ (λ_ M.X).hom) ≫ M.mul = ((λ_ M.X).hom ⊗ (λ_ M.X).hom) ≫ 𝟙 (M.X ⊗ M.X) ≫ M.mul

tactic: simp only [Category.assoc, Category.id_comp]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ C
⊢ ((λ_ M.X).hom ⊗ (λ_ M.X).hom) ≫ M.mul = ((λ_ M.X).hom ⊗ (λ_ M.X).hom) ≫ 𝟙 (M.X ⊗ M.X) ≫ M.mul
state_after: no goals
Theorem: jacobiTheta_eq_jacobiTheta₂
File: Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean

tactic: simp [jacobiTheta₂_term]
state_before: τ : ℂ
⊢ ∀ (b : ℤ), cexp (↑π * I * ↑b ^ 2 * τ) = jacobiTheta₂_term b 0 τ
state_after: no goals
Theorem: FirstOrder.Language.Substructure.CG.sup
File: Mathlib/ModelTheory/FinitelyGenerated.lean

tactic: rw [closure_union, ht₁.2, ht₂.2]
state_before: L : Language
M : Type u_1
inst✝ : L.Structure M
N₁ N₂ : L.Substructure M
hN₁ : N₁.CG
hN₂ : N₂.CG
t₁ : Set M
ht₁ : t₁.Countable ∧ (closure L).toFun t₁ = N₁
t₂ : Set M
ht₂ : t₂.Countable ∧ (closure L).toFun t₂ = N₂
⊢ (closure L).toFun (t₁ ∪ t₂) = N₁ ⊔ N₂
state_after: no goals
Theorem: ONote.NFBelow.snd
File: Mathlib/SetTheory/Ordinal/Notation.lean

tactic: cases' h with _ _ _ _ eb _ h₁ h₂ h₃
state_before: e : ONote
n : ℕ+
a : ONote
b : Ordinal.{0}
h : (e.oadd n a).NFBelow b
⊢ a.NFBelow e.repr
state_after: case oadd'
e : ONote
n : ℕ+
a : ONote
b eb : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
⊢ a.NFBelow e.repr

tactic: exact h₂
state_before: case oadd'
e : ONote
n : ℕ+
a : ONote
b eb : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
⊢ a.NFBelow e.repr
state_after: no goals
Theorem: MeasurableEquiv.image_symm
File: Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean

tactic: rw [← symm_symm e, preimage_symm, symm_symm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t u : Set α
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
e : α ≃ᵐ β
s : Set β
⊢ ⇑e.symm '' s = ⇑e ⁻¹' s
state_after: no goals
Theorem: Behrend.threeAPFree_sphere
File: Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean

tactic: set f : (Fin n → ℕ) →+ EuclideanSpace ℝ (Fin n) :=
  { toFun := fun f => ((↑) : ℕ → ℝ) ∘ f
    map_zero' := funext fun _ => cast_zero
    map_add' := fun _ _ => funext fun _ => cast_add _ _ }
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
⊢ ThreeAPFree ↑(sphere n d k)
state_after: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
f : (Fin n → ℕ) →+ EuclideanSpace ℝ (Fin n) := { toFun := fun f => Nat.cast ∘ f, map_zero' := ⋯, map_add' := ⋯ }
⊢ ThreeAPFree ↑(sphere n d k)

tactic: refine ThreeAPFree.of_image (AddMonoidHomClass.isAddFreimanHom f (Set.mapsTo_image _ _))
  cast_injective.comp_left.injOn (Set.subset_univ _) ?_
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
f : (Fin n → ℕ) →+ EuclideanSpace ℝ (Fin n) := { toFun := fun f => Nat.cast ∘ f, map_zero' := ⋯, map_add' := ⋯ }
⊢ ThreeAPFree ↑(sphere n d k)
state_after: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
f : (Fin n → ℕ) →+ EuclideanSpace ℝ (Fin n) := { toFun := fun f => Nat.cast ∘ f, map_zero' := ⋯, map_add' := ⋯ }
⊢ ThreeAPFree (⇑f '' ↑(sphere n d k))

tactic: refine (threeAPFree_sphere 0 (√↑k)).mono (Set.image_subset_iff.2 fun x => ?_)
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
f : (Fin n → ℕ) →+ EuclideanSpace ℝ (Fin n) := { toFun := fun f => Nat.cast ∘ f, map_zero' := ⋯, map_add' := ⋯ }
⊢ ThreeAPFree (⇑f '' ↑(sphere n d k))
state_after: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
f : (Fin n → ℕ) →+ EuclideanSpace ℝ (Fin n) := { toFun := fun f => Nat.cast ∘ f, map_zero' := ⋯, map_add' := ⋯ }
x : Fin n → ℕ
⊢ x ∈ ↑(sphere n d k) → x ∈ ⇑f ⁻¹' Metric.sphere 0 √↑k

tactic: rw [Set.mem_preimage, mem_sphere_zero_iff_norm]
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
f : (Fin n → ℕ) →+ EuclideanSpace ℝ (Fin n) := { toFun := fun f => Nat.cast ∘ f, map_zero' := ⋯, map_add' := ⋯ }
x : Fin n → ℕ
⊢ x ∈ ↑(sphere n d k) → x ∈ ⇑f ⁻¹' Metric.sphere 0 √↑k
state_after: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
f : (Fin n → ℕ) →+ EuclideanSpace ℝ (Fin n) := { toFun := fun f => Nat.cast ∘ f, map_zero' := ⋯, map_add' := ⋯ }
x : Fin n → ℕ
⊢ x ∈ ↑(sphere n d k) → ‖f x‖ = √↑k

tactic: exact norm_of_mem_sphere
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x✝ : Fin n → ℕ
f : (Fin n → ℕ) →+ EuclideanSpace ℝ (Fin n) := { toFun := fun f => Nat.cast ∘ f, map_zero' := ⋯, map_add' := ⋯ }
x : Fin n → ℕ
⊢ x ∈ ↑(sphere n d k) → ‖f x‖ = √↑k
state_after: no goals
Theorem: Subtype.dense_iff
File: Mathlib/Topology/Constructions.lean

tactic: rw [inducing_subtype_val.dense_iff, SetCoe.forall]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
p : X → Prop
s : Set X
t : Set ↑s
⊢ Dense t ↔ s ⊆ closure (val '' t)
state_after: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
p : X → Prop
s : Set X
t : Set ↑s
⊢ (∀ (x : X) (h : x ∈ s), ↑⟨x, h⟩ ∈ closure (val '' t)) ↔ s ⊆ closure (val '' t)

tactic: rfl
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
p : X → Prop
s : Set X
t : Set ↑s
⊢ (∀ (x : X) (h : x ∈ s), ↑⟨x, h⟩ ∈ closure (val '' t)) ↔ s ⊆ closure (val '' t)
state_after: no goals
Theorem: MeasureTheory.zero_memℒp
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: rw [snorm_zero]
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
⊢ snorm 0 p μ < ⊤
state_after: α : 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
⊢ 0 < ⊤

tactic: exact ENNReal.coe_lt_top
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
⊢ 0 < ⊤
state_after: no goals
Theorem: CategoryTheory.PreGaloisCategory.endEquivAutGalois_π
File: Mathlib/CategoryTheory/Galois/Prorepresentability.lean

tactic: dsimp [endEquivAutGalois, AutGalois.π_apply]
state_before: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
f : End F
A : PointedGaloisObject F
⊢ F.map ((AutGalois.π F A) ((endEquivAutGalois F) f)).hom A.pt = f.app A.obj A.pt
state_after: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
f : End F
A : PointedGaloisObject F
⊢ F.map
      (↑(((sectionsFunctor (PointedGaloisObject F)).mapIso (autIsoFibers F)).symm.toEquiv
              ((endEquivSectionsFibers F) f))
          A).hom
      A.pt =
    f.app A.obj A.pt

tactic: change F.map ((((sectionsFunctor _).map (autIsoFibers F).inv) _).val A).hom A.pt = _
state_before: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
f : End F
A : PointedGaloisObject F
⊢ F.map
      (↑(((sectionsFunctor (PointedGaloisObject F)).mapIso (autIsoFibers F)).symm.toEquiv
              ((endEquivSectionsFibers F) f))
          A).hom
      A.pt =
    f.app A.obj A.pt
state_after: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
f : End F
A : PointedGaloisObject F
⊢ F.map (↑((sectionsFunctor (PointedGaloisObject F)).map (autIsoFibers F).inv ((endEquivSectionsFibers F) f)) A).hom
      A.pt =
    f.app A.obj A.pt

tactic: dsimp [autIsoFibers]
state_before: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
f : End F
A : PointedGaloisObject F
⊢ F.map (↑((sectionsFunctor (PointedGaloisObject F)).map (autIsoFibers F).inv ((endEquivSectionsFibers F) f)) A).hom
      A.pt =
    f.app A.obj A.pt
state_after: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
f : End F
A : PointedGaloisObject F
⊢ F.map ((evaluationEquivOfIsGalois F A.obj A.pt).symm (↑((endEquivSectionsFibers F) f) A)).hom A.pt = f.app A.obj A.pt

tactic: simp only [endEquivSectionsFibers_π]
state_before: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
f : End F
A : PointedGaloisObject F
⊢ F.map ((evaluationEquivOfIsGalois F A.obj A.pt).symm (↑((endEquivSectionsFibers F) f) A)).hom A.pt = f.app A.obj A.pt
state_after: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
f : End F
A : PointedGaloisObject F
⊢ F.map ((evaluationEquivOfIsGalois F A.obj A.pt).symm (f.app A.obj A.pt)).hom A.pt = f.app A.obj A.pt

tactic: erw [evaluationEquivOfIsGalois_symm_fiber]
state_before: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
f : End F
A : PointedGaloisObject F
⊢ F.map ((evaluationEquivOfIsGalois F A.obj A.pt).symm (f.app A.obj A.pt)).hom A.pt = f.app A.obj A.pt
state_after: no goals
Theorem: MeasureTheory.IsStoppingTime.measurableSet_gt'
File: Mathlib/Probability/Process/Stopping.lean

tactic: have : {ω : Ω | i < τ ω} = {ω : Ω | τ ω ≤ i}ᶜ := by ext1 ω; simp
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : LinearOrder ι
f : Filtration ι m
τ π : Ω → ι
hτ : IsStoppingTime f τ
i : ι
⊢ MeasurableSet {ω | i < τ ω}
state_after: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : LinearOrder ι
f : Filtration ι m
τ π : Ω → ι
hτ : IsStoppingTime f τ
i : ι
this : {ω | i < τ ω} = {ω | τ ω ≤ i}ᶜ
⊢ MeasurableSet {ω | i < τ ω}

tactic: rw [this]
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : LinearOrder ι
f : Filtration ι m
τ π : Ω → ι
hτ : IsStoppingTime f τ
i : ι
this : {ω | i < τ ω} = {ω | τ ω ≤ i}ᶜ
⊢ MeasurableSet {ω | i < τ ω}
state_after: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : LinearOrder ι
f : Filtration ι m
τ π : Ω → ι
hτ : IsStoppingTime f τ
i : ι
this : {ω | i < τ ω} = {ω | τ ω ≤ i}ᶜ
⊢ MeasurableSet {ω | τ ω ≤ i}ᶜ

tactic: exact (hτ.measurableSet_le' i).compl
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : LinearOrder ι
f : Filtration ι m
τ π : Ω → ι
hτ : IsStoppingTime f τ
i : ι
this : {ω | i < τ ω} = {ω | τ ω ≤ i}ᶜ
⊢ MeasurableSet {ω | τ ω ≤ i}ᶜ
state_after: no goals

tactic: ext1 ω
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : LinearOrder ι
f : Filtration ι m
τ π : Ω → ι
hτ : IsStoppingTime f τ
i : ι
⊢ {ω | i < τ ω} = {ω | τ ω ≤ i}ᶜ
state_after: case h
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : LinearOrder ι
f : Filtration ι m
τ π : Ω → ι
hτ : IsStoppingTime f τ
i : ι
ω : Ω
⊢ ω ∈ {ω | i < τ ω} ↔ ω ∈ {ω | τ ω ≤ i}ᶜ

tactic: simp
state_before: case h
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : LinearOrder ι
f : Filtration ι m
τ π : Ω → ι
hτ : IsStoppingTime f τ
i : ι
ω : Ω
⊢ ω ∈ {ω | i < τ ω} ↔ ω ∈ {ω | τ ω ≤ i}ᶜ
state_after: no goals
Theorem: Polynomial.exists_root_of_degree_eq_one
File: Mathlib/Algebra/Polynomial/FieldDivision.lean

tactic: have : p.coeff 1 ≠ 0 := by
  have h' := natDegree_eq_of_degree_eq_some h
  change natDegree p = 1 at h'; rw [← h']
  exact mt leadingCoeff_eq_zero.1 fun h0 => by simp [h0] at h
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
⊢ p.IsRoot (-(p.coeff 0 / p.coeff 1))
state_after: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
this : p.coeff 1 ≠ 0
⊢ p.IsRoot (-(p.coeff 0 / p.coeff 1))

tactic: conv in p => rw [eq_X_add_C_of_degree_le_one (show degree p ≤ 1 by rw [h])]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
this : p.coeff 1 ≠ 0
⊢ p.IsRoot (-(p.coeff 0 / p.coeff 1))
state_after: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
this : p.coeff 1 ≠ 0
⊢ (C (p.coeff 1) * X + C (p.coeff 0)).IsRoot (-(p.coeff 0 / p.coeff 1))

tactic: simp [IsRoot, mul_div_cancel₀ _ this]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
this : p.coeff 1 ≠ 0
⊢ (C (p.coeff 1) * X + C (p.coeff 0)).IsRoot (-(p.coeff 0 / p.coeff 1))
state_after: no goals

tactic: have h' := natDegree_eq_of_degree_eq_some h
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
⊢ p.coeff 1 ≠ 0
state_after: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
h' : p.natDegree = One.one
⊢ p.coeff 1 ≠ 0

tactic: change natDegree p = 1 at h'
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
h' : p.natDegree = One.one
⊢ p.coeff 1 ≠ 0
state_after: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
h' : p.natDegree = 1
⊢ p.coeff 1 ≠ 0

tactic: rw [← h']
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
h' : p.natDegree = 1
⊢ p.coeff 1 ≠ 0
state_after: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
h' : p.natDegree = 1
⊢ p.coeff p.natDegree ≠ 0

tactic: exact mt leadingCoeff_eq_zero.1 fun h0 => by simp [h0] at h
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
h' : p.natDegree = 1
⊢ p.coeff p.natDegree ≠ 0
state_after: no goals

tactic: simp [h0] at h
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
h' : p.natDegree = 1
h0 : p = 0
⊢ False
state_after: no goals

tactic: rw [h]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
h : p.degree = 1
this : p.coeff 1 ≠ 0
⊢ p.degree ≤ 1
state_after: no goals