1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MvPowerSeries.zero_inv
File: Mathlib/RingTheory/MvPowerSeries/Inverse.lean

tactic: rw [inv_eq_zero, constantCoeff_zero]
state_before: σ : Type u_1
R : Type u_2
k : Type u_3
inst✝ : Field k
⊢ 0⁻¹ = 0
state_after: no goals
Theorem: Set.mem_toFinset
File: Mathlib/Data/Fintype/Basic.lean

tactic: simp [toFinset]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s✝ t s : Set α
inst✝ : Fintype ↑s
a : α
⊢ a ∈ s.toFinset ↔ a ∈ s
state_after: no goals
Theorem: Submodule.range_ker_disjoint
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: rw [LinearIndependent, Finsupp.total_comp, Finsupp.lmapDomain_total R _ f (fun _ ↦ rfl),
  LinearMap.ker_comp] at hv
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
f : M →ₗ[R] M'
hv : LinearIndependent R (⇑f ∘ v)
⊢ Disjoint (span R (range v)) (LinearMap.ker f)
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
f : M →ₗ[R] M'
hv : comap (Finsupp.total ι M R v) (LinearMap.ker f) = ⊥
⊢ Disjoint (span R (range v)) (LinearMap.ker f)

tactic: rw [disjoint_iff_inf_le, ← Set.image_univ, Finsupp.span_image_eq_map_total,
  map_inf_eq_map_inf_comap, hv, inf_bot_eq, map_bot]
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
f : M →ₗ[R] M'
hv : comap (Finsupp.total ι M R v) (LinearMap.ker f) = ⊥
⊢ Disjoint (span R (range v)) (LinearMap.ker f)
state_after: no goals
Theorem: HasSum.star
File: Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean

tactic: simpa only using h.map (starAddEquiv : α ≃+ α) continuous_star
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : AddCommMonoid α
inst✝² : TopologicalSpace α
inst✝¹ : StarAddMonoid α
inst✝ : ContinuousStar α
f : β → α
a : α
h : HasSum f a
⊢ HasSum (fun b => Star.star (f b)) (Star.star a)
state_after: no goals
Theorem: AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.invApp_app
File: Mathlib/Geometry/RingedSpace/OpenImmersion.lean

tactic: simp [Opens.map, Set.preimage_image_eq _ H.base_open.inj]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : PresheafedSpace C
f : X ⟶ Y
H : IsOpenImmersion f
U : Opens ↑↑X
⊢ { unop := U } = (Opens.map f.base).op.obj { unop := (opensFunctor f).obj U }
state_after: no goals

tactic: rw [invApp, Category.assoc, IsIso.inv_hom_id, Category.comp_id]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : PresheafedSpace C
f : X ⟶ Y
H : IsOpenImmersion f
U : Opens ↑↑X
⊢ invApp f U ≫ f.c.app { unop := (opensFunctor f).obj U } = X.presheaf.map (eqToHom ⋯)
state_after: no goals
Theorem: MeasureTheory.ae_restrict_uIoc_eq
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: simp only [uIoc_eq_union, ae_restrict_union_eq]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : LinearOrder α
a b : α
⊢ ae (μ.restrict (Ι a b)) = ae (μ.restrict (Ioc a b)) ⊔ ae (μ.restrict (Ioc b a))
state_after: no goals
Theorem: ModularCyclotomicCharacter.unique
File: Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean

tactic: change c = (ZMod.ringEquivCongr hn) (toFun n g)
state_before: L : Type u
inst✝¹ : CommRing L
inst✝ : IsDomain L
n✝ n : ℕ+
hn : Fintype.card ↥(rootsOfUnity n L) = ↑n
g : L ≃+* L
c : ZMod ↑n
hc : ∀ t ∈ rootsOfUnity n L, g ↑t = ↑t ^ c.val
⊢ c = ↑((ModularCyclotomicCharacter L hn) g)
state_after: L : Type u
inst✝¹ : CommRing L
inst✝ : IsDomain L
n✝ n : ℕ+
hn : Fintype.card ↥(rootsOfUnity n L) = ↑n
g : L ≃+* L
c : ZMod ↑n
hc : ∀ t ∈ rootsOfUnity n L, g ↑t = ↑t ^ c.val
⊢ c = (ZMod.ringEquivCongr hn) (toFun n g)

tactic: rw [← toFun_unique' n g (ZMod.ringEquivCongr hn.symm c)
  (fun t ht ↦ by rw [hc t ht, ZMod.ringEquivCongr_val]), ← ZMod.ringEquivCongr_symm hn,
  RingEquiv.apply_symm_apply]
state_before: L : Type u
inst✝¹ : CommRing L
inst✝ : IsDomain L
n✝ n : ℕ+
hn : Fintype.card ↥(rootsOfUnity n L) = ↑n
g : L ≃+* L
c : ZMod ↑n
hc : ∀ t ∈ rootsOfUnity n L, g ↑t = ↑t ^ c.val
⊢ c = (ZMod.ringEquivCongr hn) (toFun n g)
state_after: no goals

tactic: rw [hc t ht, ZMod.ringEquivCongr_val]
state_before: L : Type u
inst✝¹ : CommRing L
inst✝ : IsDomain L
n✝ n : ℕ+
hn : Fintype.card ↥(rootsOfUnity n L) = ↑n
g : L ≃+* L
c : ZMod ↑n
hc : ∀ t ∈ rootsOfUnity n L, g ↑t = ↑t ^ c.val
t : Lˣ
ht : t ∈ rootsOfUnity n L
⊢ g ↑t = ↑t ^ ((ZMod.ringEquivCongr ⋯) c).val
state_after: no goals
Theorem: CategoryTheory.OverPresheafAux.YonedaCollection.map₁_yonedaEquivFst
File: Mathlib/CategoryTheory/Comma/Presheaf.lean

tactic: simp only [YonedaCollection.yonedaEquivFst_eq, map₁_fst]
state_before: C : Type u
inst✝ : Category.{v, u} C
A : Cᵒᵖ ⥤ Type v
F : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
X : C
G : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
η : F ⟶ G
p : YonedaCollection F X
⊢ (map₁ η p).yonedaEquivFst = p.yonedaEquivFst
state_after: no goals
Theorem: Nat.count_nth_zero
File: Mathlib/Data/Nat/Nth.lean

tactic: rw [count_eq_card_filter_range, card_eq_zero, filter_eq_empty_iff, nth_zero]
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
⊢ count p (nth p 0) = 0
state_after: p : ℕ → Prop
inst✝ : DecidablePred p
⊢ ∀ ⦃x : ℕ⦄, x ∈ range (sInf (setOf p)) → ¬p x

tactic: exact fun n h₁ h₂ => (mem_range.1 h₁).not_le (Nat.sInf_le h₂)
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
⊢ ∀ ⦃x : ℕ⦄, x ∈ range (sInf (setOf p)) → ¬p x
state_after: no goals
Theorem: MeasureTheory.lmarginal_eq_of_subset
File: Mathlib/MeasureTheory/Integral/Marginal.lean

tactic: rw [← union_sdiff_of_subset hst, lmarginal_union' μ f hf disjoint_sdiff,
  lmarginal_union' μ g hg disjoint_sdiff, hfg]
state_before: δ : Type u_1
δ' : Type u_2
π : δ → Type u_3
inst✝² : (x : δ) → MeasurableSpace (π x)
μ : (i : δ) → Measure (π i)
inst✝¹ : ∀ (i : δ), SigmaFinite (μ i)
inst✝ : DecidableEq δ
s t : Finset δ
f✝ g✝ : ((i : δ) → π i) → ℝ≥0∞
x y : (i : δ) → π i
i : δ
f g : ((i : δ) → π i) → ℝ≥0∞
hst : s ⊆ t
hf : Measurable f
hg : Measurable g
hfg : ∫⋯∫⁻_s, f ∂μ = ∫⋯∫⁻_s, g ∂μ
⊢ ∫⋯∫⁻_t, f ∂μ = ∫⋯∫⁻_t, g ∂μ
state_after: no goals
Theorem: ENNReal.inv_zero
File: Mathlib/Data/ENNReal/Inv.lean

tactic: simp
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ sInf {b | 1 ≤ 0 * b} = ⊤
state_after: no goals
Theorem: Ring.toNonUnitalRing_injective
File: Mathlib/Algebra/Ring/Ext.lean

tactic: intro _ _ h
state_before: R : Type u
⊢ Function.Injective (@toNonUnitalRing R)
state_after: R : Type u
a₁✝ a₂✝ : Ring R
h : toNonUnitalRing = toNonUnitalRing
⊢ a₁✝ = a₂✝

tactic: ext x y
state_before: R : Type u
a₁✝ a₂✝ : Ring R
h : toNonUnitalRing = toNonUnitalRing
⊢ a₁✝ = a₂✝
state_after: case h_add.h.h
R : Type u
a₁✝ a₂✝ : Ring R
h : toNonUnitalRing = toNonUnitalRing
x y : R
⊢ x + y = x + y

case h_mul.h.h
R : Type u
a₁✝ a₂✝ : Ring R
h : toNonUnitalRing = toNonUnitalRing
x y : R
⊢ x * y = x * y
Theorem: mul_le_of_le_one_left
File: Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean

tactic: simpa only [one_mul] using mul_le_mul_of_nonneg_right h hb
state_before: α : Type u_1
a b c d : α
inst✝³ : MulOneClass α
inst✝² : Zero α
inst✝¹ : Preorder α
inst✝ : MulPosMono α
hb : 0 ≤ b
h : a ≤ 1
⊢ a * b ≤ b
state_after: no goals
Theorem: Submodule.torsionBy_le_torsionBy_of_dvd
File: Mathlib/Algebra/Module/Torsion.lean

tactic: rw [← torsionBySet_span_singleton_eq, ← torsionBySet_singleton_eq]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a b : R
dvd : a ∣ b
⊢ torsionBy R M a ≤ torsionBy R M b
state_after: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a b : R
dvd : a ∣ b
⊢ torsionBySet R M ↑(span R {a}) ≤ torsionBySet R M {b}

tactic: apply torsionBySet_le_torsionBySet_of_subset
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a b : R
dvd : a ∣ b
⊢ torsionBySet R M ↑(span R {a}) ≤ torsionBySet R M {b}
state_after: case st
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a b : R
dvd : a ∣ b
⊢ {b} ⊆ ↑(span R {a})

tactic: rintro c (rfl : c = b)
state_before: case st
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a b : R
dvd : a ∣ b
⊢ {b} ⊆ ↑(span R {a})
state_after: case st
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a c : R
dvd : a ∣ c
⊢ c ∈ ↑(span R {a})

tactic: exact Ideal.mem_span_singleton.mpr dvd
state_before: case st
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a c : R
dvd : a ∣ c
⊢ c ∈ ↑(span R {a})
state_after: no goals
Theorem: IsIntegral.mem_range_algHom_of_minpoly_splits
File: Mathlib/RingTheory/Adjoin/Field.lean

tactic: rw [image_rootSet h f, mem_rootSet']
state_before: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : CommRing M
inst✝² : Algebra R K
inst✝¹ : Algebra R L
inst✝ : Algebra R M
x : L
int : IsIntegral R x
h : Splits (algebraMap R K) (minpoly R x)
f : K →ₐ[R] L
⊢ x ∈ ⇑f '' ?m.29591
state_after: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : CommRing M
inst✝² : Algebra R K
inst✝¹ : Algebra R L
inst✝ : Algebra R M
x : L
int : IsIntegral R x
h : Splits (algebraMap R K) (minpoly R x)
f : K →ₐ[R] L
⊢ Polynomial.map (algebraMap R L) (minpoly R x) ≠ 0 ∧ (aeval x) (minpoly R x) = 0

tactic: exact ⟨((minpoly.monic int).map _).ne_zero, minpoly.aeval R x⟩
state_before: R : Type u_1
K : Type u_2
L : Type u_3
M : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : CommRing M
inst✝² : Algebra R K
inst✝¹ : Algebra R L
inst✝ : Algebra R M
x : L
int : IsIntegral R x
h : Splits (algebraMap R K) (minpoly R x)
f : K →ₐ[R] L
⊢ Polynomial.map (algebraMap R L) (minpoly R x) ≠ 0 ∧ (aeval x) (minpoly R x) = 0
state_after: no goals
Theorem: Metric.infDist_le_infDist_add_dist
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: rw [infDist, infDist, dist_edist]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
⊢ infDist x s ≤ infDist y s + dist x y
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
⊢ (infEdist x s).toReal ≤ (infEdist y s).toReal + (edist x y).toReal

tactic: refine ENNReal.toReal_le_add' infEdist_le_infEdist_add_edist ?_ (flip absurd (edist_ne_top _ _))
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
⊢ (infEdist x s).toReal ≤ (infEdist y s).toReal + (edist x y).toReal
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
⊢ infEdist y s = ⊤ → infEdist x s = ⊤

tactic: simp only [infEdist_eq_top_iff, imp_self]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
⊢ infEdist y s = ⊤ → infEdist x s = ⊤
state_after: no goals
Theorem: AlgebraicGeometry.IsAffineOpen.fromSpec_image_basicOpen
File: Mathlib/AlgebraicGeometry/AffineScheme.lean

tactic: rw [← hU.fromSpec_preimage_basicOpen]
state_before: X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ hU.fromSpec ''ᵁ PrimeSpectrum.basicOpen f = X.basicOpen f
state_after: X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ hU.fromSpec ''ᵁ hU.fromSpec ⁻¹ᵁ X.basicOpen f = X.basicOpen f

tactic: ext1
state_before: X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ hU.fromSpec ''ᵁ hU.fromSpec ⁻¹ᵁ X.basicOpen f = X.basicOpen f
state_after: case h
X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ ↑(hU.fromSpec ''ᵁ hU.fromSpec ⁻¹ᵁ X.basicOpen f) = ↑(X.basicOpen f)

tactic: change hU.fromSpec.val.base '' (hU.fromSpec.val.base ⁻¹' (X.basicOpen f : Set X)) = _
state_before: case h
X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ ↑(hU.fromSpec ''ᵁ hU.fromSpec ⁻¹ᵁ X.basicOpen f) = ↑(X.basicOpen f)
state_after: case h
X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ ⇑hU.fromSpec.val.base '' (⇑hU.fromSpec.val.base ⁻¹' ↑(X.basicOpen f)) = ↑(X.basicOpen f)

tactic: rw [Set.image_preimage_eq_inter_range, Set.inter_eq_left, hU.range_fromSpec]
state_before: case h
X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ ⇑hU.fromSpec.val.base '' (⇑hU.fromSpec.val.base ⁻¹' ↑(X.basicOpen f)) = ↑(X.basicOpen f)
state_after: case h
X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ ↑(X.basicOpen f) ⊆ ↑U

tactic: exact Scheme.basicOpen_le _ _
state_before: case h
X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ ↑(X.basicOpen f) ⊆ ↑U
state_after: no goals
Theorem: lowerSemicontinuousOn_iff_le_liminf
File: Mathlib/Topology/Semicontinuous.lean

tactic: simp only [← lowerSemicontinuousWithinAt_iff_le_liminf, LowerSemicontinuousOn]
state_before: α : Type u_1
inst✝³ : TopologicalSpace α
β : Type u_2
inst✝² : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
γ : Type u_3
inst✝¹ : CompleteLinearOrder γ
inst✝ : DenselyOrdered γ
f : α → γ
⊢ LowerSemicontinuousOn f s ↔ ∀ x ∈ s, f x ≤ liminf f (𝓝[s] x)
state_after: no goals
Theorem: Function.Embedding.invOfMemRange_surjective
File: Mathlib/Data/Fintype/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq β
f : α ↪ β
b : ↑(Set.range ⇑f)
a : α
⊢ f.invOfMemRange ⟨f a, ⋯⟩ = a
state_after: no goals
Theorem: dist_smul₀
File: Mathlib/Analysis/Normed/MulAction.lean

tactic: simp_rw [dist_eq_norm, (norm_smul s (x - y)).symm, smul_sub]
state_before: α : Type u_1
β : Type u_2
inst✝³ : NormedDivisionRing α
inst✝² : SeminormedAddCommGroup β
inst✝¹ : Module α β
inst✝ : BoundedSMul α β
s : α
x y : β
⊢ dist (s • x) (s • y) = ‖s‖ * dist x y
state_after: no goals
Theorem: CategoryTheory.Discrete.functor_map
File: Mathlib/CategoryTheory/DiscreteCategory.lean

tactic: aesop_cat
state_before: α : Type u₁
C : Type u₂
inst✝ : Category.{v₂, u₂} C
I : Type u₁
F : I → C
i : Discrete I
f : i ⟶ i
⊢ (functor F).map f = 𝟙 (F i.as)
state_after: no goals
Theorem: IsGLB.insert
File: Mathlib/Order/Bounds/Basic.lean

tactic: rw [insert_eq]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝² : Preorder α
inst✝¹ : Preorder β
s✝ t : Set α
a✝ b✝ : α
inst✝ : SemilatticeInf γ
a b : γ
s : Set γ
hs : IsGLB s b
⊢ IsGLB (insert a s) (a ⊓ b)
state_after: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝² : Preorder α
inst✝¹ : Preorder β
s✝ t : Set α
a✝ b✝ : α
inst✝ : SemilatticeInf γ
a b : γ
s : Set γ
hs : IsGLB s b
⊢ IsGLB ({a} ∪ s) (a ⊓ b)

tactic: exact isGLB_singleton.union hs
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝² : Preorder α
inst✝¹ : Preorder β
s✝ t : Set α
a✝ b✝ : α
inst✝ : SemilatticeInf γ
a b : γ
s : Set γ
hs : IsGLB s b
⊢ IsGLB ({a} ∪ s) (a ⊓ b)
state_after: no goals
Theorem: Set.nonempty_biUnion
File: Mathlib/Data/Set/Lattice.lean

tactic: simp
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
s✝ : ι → Set α
t : Set α
s : α → Set β
⊢ (⋃ i ∈ t, s i).Nonempty ↔ ∃ i ∈ t, (s i).Nonempty
state_after: no goals
Theorem: TopCat.GlueData.MkCore.t_inv
File: Mathlib/Topology/Gluing.lean

tactic: have := h.cocycle j i j x ?_
state_before: D : GlueData
h : MkCore
i j : h.J
x : ↥(h.V j i)
⊢ (h.t i j) ((h.t j i) x) = x
state_after: case refine_2
D : GlueData
h : MkCore
i j : h.J
x : ↥(h.V j i)
this : ↑((h.t i j) ⟨↑((h.t j i) x), ⋯⟩) = ↑((h.t j j) ⟨↑x, ?refine_1⟩)
⊢ (h.t i j) ((h.t j i) x) = x

case refine_1
D : GlueData
h : MkCore
i j : h.J
x : ↥(h.V j i)
⊢ ↑x ∈ h.V j j

tactic: rw [h.V_id]
state_before: case refine_1
D : GlueData
h : MkCore
i j : h.J
x : ↥(h.V j i)
⊢ ↑x ∈ h.V j j
state_after: case refine_1
D : GlueData
h : MkCore
i j : h.J
x : ↥(h.V j i)
⊢ ↑x ∈ ⊤

tactic: trivial
state_before: case refine_1
D : GlueData
h : MkCore
i j : h.J
x : ↥(h.V j i)
⊢ ↑x ∈ ⊤
state_after: no goals

tactic: rw [h.t_id] at this
state_before: case refine_2
D : GlueData
h : MkCore
i j : h.J
x : ↥(h.V j i)
this : ↑((h.t i j) ⟨↑((h.t j i) x), ⋯⟩) = ↑((h.t j j) ⟨↑x, ?refine_1⟩)
⊢ (h.t i j) ((h.t j i) x) = x
state_after: case refine_2
D : GlueData
h : MkCore
i j : h.J
x : ↥(h.V j i)
this : ↑((h.t i j) ⟨↑((h.t j i) x), ⋯⟩) = ↑(id ⟨↑x, ?refine_1⟩)
⊢ (h.t i j) ((h.t j i) x) = x

tactic: convert Subtype.eq this
state_before: case refine_2
D : GlueData
h : MkCore
i j : h.J
x : ↥(h.V j i)
this : ↑((h.t i j) ⟨↑((h.t j i) x), ⋯⟩) = ↑(id ⟨↑x, ?refine_1⟩)
⊢ (h.t i j) ((h.t j i) x) = x
state_after: no goals
Theorem: Complex.norm_rat
File: Mathlib/Analysis/Complex/Basic.lean

tactic: rw [← ofReal_ratCast]
state_before: z : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
r : ℚ
⊢ ‖↑r‖ = |↑r|
state_after: z : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
r : ℚ
⊢ ‖↑↑r‖ = |↑r|

tactic: exact norm_real _
state_before: z : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
r : ℚ
⊢ ‖↑↑r‖ = |↑r|
state_after: no goals
Theorem: smooth_one
File: Mathlib/Geometry/Manifold/ContMDiff/Basic.lean

tactic: simp only [Pi.one_def, smooth_const]
state_before: 𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_3
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹⁴ : TopologicalSpace M
inst✝¹³ : ChartedSpace H M
inst✝¹² : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁹ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝⁸ : TopologicalSpace M'
inst✝⁷ : ChartedSpace H' M'
inst✝⁶ : SmoothManifoldWithCorners I' M'
E'' : Type u_8
inst✝⁵ : NormedAddCommGroup E''
inst✝⁴ : NormedSpace 𝕜 E''
H'' : Type u_9
inst✝³ : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M'' : Type u_10
inst✝² : TopologicalSpace M''
inst✝¹ : ChartedSpace H'' M''
e : PartialHomeomorph M H
e' : PartialHomeomorph M' H'
f f₁ : M → M'
s s₁ t : Set M
x : M
m n : ℕ∞
c : M'
inst✝ : One M'
⊢ Smooth I I' 1
state_after: no goals
Theorem: CategoryTheory.ProjectiveResolution.complex_exactAt_succ
File: Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean

tactic: rw [← quasiIsoAt_iff_exactAt' P.π (n + 1) (exactAt_succ_single_obj _ _)]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
Z : C
P : ProjectiveResolution Z
n : ℕ
⊢ ExactAt P.complex (n + 1)
state_after: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
Z : C
P : ProjectiveResolution Z
n : ℕ
⊢ QuasiIsoAt P.π (n + 1)

tactic: infer_instance
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
Z : C
P : ProjectiveResolution Z
n : ℕ
⊢ QuasiIsoAt P.π (n + 1)
state_after: no goals
Theorem: Batteries.RBNode.foldlM_eq_foldlM_toList
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: induction t generalizing init <;> simp [*]
state_before: m : Type u_1 → Type u_2
α : Type u_3
a✝ : Type u_1
f : a✝ → α → m a✝
init : a✝
inst✝¹ : Monad m
inst✝ : LawfulMonad m
t : RBNode α
⊢ foldlM f init t = List.foldlM f init t.toList
state_after: no goals
Theorem: Submodule.triorthogonal_eq_orthogonal
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: rw [Kᗮ.orthogonal_orthogonal_eq_closure]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : CompleteSpace E
⊢ Kᗮᗮᗮ = Kᗮ
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : CompleteSpace E
⊢ Kᗮ.topologicalClosure = Kᗮ

tactic: exact K.isClosed_orthogonal.submodule_topologicalClosure_eq
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : CompleteSpace E
⊢ Kᗮ.topologicalClosure = Kᗮ
state_after: no goals
Theorem: List.chain_split
File: Mathlib/Data/List/Chain.lean

tactic: induction' l₁ with x l₁ IH generalizing a <;>
  simp only [*, nil_append, cons_append, Chain.nil, chain_cons, and_true_iff, and_assoc]
state_before: α : Type u
β : Type v
R r : α → α → Prop
l l₁✝ l₂✝ : List α
a✝ b✝ a b : α
l₁ l₂ : List α
⊢ Chain R a (l₁ ++ b :: l₂) ↔ Chain R a (l₁ ++ [b]) ∧ Chain R b l₂
state_after: no goals
Theorem: Homeomorph.symm_trans_self
File: Mathlib/Topology/Homeomorph.lean

tactic: ext
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝¹ : TopologicalSpace X'
inst✝ : TopologicalSpace Y'
h : X ≃ₜ Y
⊢ h.symm.trans h = Homeomorph.refl Y
state_after: case H
X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝¹ : TopologicalSpace X'
inst✝ : TopologicalSpace Y'
h : X ≃ₜ Y
x✝ : Y
⊢ (h.symm.trans h) x✝ = (Homeomorph.refl Y) x✝

tactic: apply apply_symm_apply
state_before: case H
X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝¹ : TopologicalSpace X'
inst✝ : TopologicalSpace Y'
h : X ≃ₜ Y
x✝ : Y
⊢ (h.symm.trans h) x✝ = (Homeomorph.refl Y) x✝
state_after: no goals
Theorem: Filter.HasBasis.limsup_eq_iInf_iSup
File: Mathlib/Order/LiminfLimsup.lean

tactic: simp only [sSup_image, id]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
p : ι → Prop
s : ι → Set β
f : Filter β
u : β → α
h : f.HasBasis p s
⊢ ⨅ i, ⨅ (_ : p i), sSup (u '' s i) = ⨅ i, ⨅ (_ : p i), ⨆ a ∈ s i, u a
state_after: no goals