tasksource/leandojo huggingface dataset:
Theorem: ProjectiveSpectrum.vanishingIdeal_iUnion
File: Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean

tactic: convert(gc_ideal 𝒜).u_iInf
state_before: R : Type u_3
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
γ : Sort u_1
t : γ → Set (ProjectiveSpectrum 𝒜)
⊢ HomogeneousIdeal.toIdeal (vanishingIdeal (⋃ (i : γ), t i)) =
    HomogeneousIdeal.toIdeal (⨅ (i : γ), vanishingIdeal (t i))

tactic: exact HomogeneousIdeal.toIdeal_iInf _
state_before: case h.e'_3
R : Type u_3
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
γ : Sort u_1
t : γ → Set (ProjectiveSpectrum 𝒜)
⊢ HomogeneousIdeal.toIdeal (⨅ (i : γ), vanishingIdeal (t i)) =
    ⨅ (i : γ), HomogeneousIdeal.toIdeal (vanishingIdeal (t i))
Theorem: dvd_of_eq
File: Mathlib/Algebra/Divisibility/Basic.lean

tactic: rw [h]
state_before: α : Type u_1
inst✝ : Monoid α
a b : α
h : a = b
⊢ a ∣ b
Theorem: Behrend.norm_of_mem_sphere
File: Mathlib/Combinatorics/Additive/Behrend.lean

tactic: rw [EuclideanSpace.norm_eq]
state_before: α : Type ?u.30416
β : Type ?u.30419
n d k N : ℕ
x✝ x : Fin n → ℕ
hx : x ∈ sphere n d k
⊢ ‖↑(PiLp.equiv 2 fun a => ℝ).symm (Nat.cast ∘ x)‖ = Real.sqrt ↑k

tactic: dsimp
state_before: α : Type ?u.30416
β : Type ?u.30419
n d k N : ℕ
x✝ x : Fin n → ℕ
hx : x ∈ sphere n d k
⊢ Real.sqrt (∑ i : Fin n, ‖↑(PiLp.equiv 2 fun a => ℝ).symm (Nat.cast ∘ x) i‖ ^ 2) = Real.sqrt ↑k

tactic: simp_rw [abs_cast, ← cast_pow, ← cast_sum, (mem_filter.1 hx).2]
state_before: α : Type ?u.30416
β : Type ?u.30419
n d k N : ℕ
x✝ x : Fin n → ℕ
hx : x ∈ sphere n d k
⊢ Real.sqrt (∑ i : Fin n, abs ↑(x i) ^ 2) = Real.sqrt ↑k
Theorem: MvPolynomial.eval₂_C_mk_eq_zero
File: Mathlib/RingTheory/Polynomial/Quotient.lean

tactic: rw [as_sum a]
state_before: R : Type u_1
σ : Type u_2
inst✝ : CommRing R
r : R
I : Ideal R
a : MvPolynomial σ R
ha : a ∈ Ideal.map C I
⊢ ↑(eval₂Hom (RingHom.comp C (Ideal.Quotient.mk I)) X) a = 0

tactic: rw [coe_eval₂Hom, eval₂_sum]
state_before: R : Type u_1
σ : Type u_2
inst✝ : CommRing R
r : R
I : Ideal R
a : MvPolynomial σ R
ha : a ∈ Ideal.map C I
⊢ ↑(eval₂Hom (RingHom.comp C (Ideal.Quotient.mk I)) X) (Finset.sum (support a) fun v => ↑(monomial v) (coeff v a)) = 0

tactic: refine' Finset.sum_eq_zero fun n _ => _
state_before: R : Type u_1
σ : Type u_2
inst✝ : CommRing R
r : R
I : Ideal R
a : MvPolynomial σ R
ha : a ∈ Ideal.map C I
⊢ (Finset.sum (support a) fun x => eval₂ (RingHom.comp C (Ideal.Quotient.mk I)) X (↑(monomial x) (coeff x a))) = 0

tactic: simp only [eval₂_monomial, Function.comp_apply, RingHom.coe_comp]
state_before: R : Type u_1
σ : Type u_2
inst✝ : CommRing R
r : R
I : Ideal R
a : MvPolynomial σ R
ha : a ∈ Ideal.map C I
n : σ →₀ ℕ
x✝ : n ∈ support a
⊢ eval₂ (RingHom.comp C (Ideal.Quotient.mk I)) X (↑(monomial n) (coeff n a)) = 0

tactic: refine' mul_eq_zero_of_left _ _
state_before: R : Type u_1
σ : Type u_2
inst✝ : CommRing R
r : R
I : Ideal R
a : MvPolynomial σ R
ha : a ∈ Ideal.map C I
n : σ →₀ ℕ
x✝ : n ∈ support a
⊢ (↑C (↑(Ideal.Quotient.mk I) (coeff n a)) * Finsupp.prod n fun n e => X n ^ e) = 0

tactic: suffices coeff n a ∈ I by
  rw [← @Ideal.mk_ker R _ I, RingHom.mem_ker] at this
  simp only [this, C_0]
state_before: R : Type u_1
σ : Type u_2
inst✝ : CommRing R
r : R
I : Ideal R
a : MvPolynomial σ R
ha : a ∈ Ideal.map C I
n : σ →₀ ℕ
x✝ : n ∈ support a
⊢ ↑C (↑(Ideal.Quotient.mk I) (coeff n a)) = 0

tactic: exact mem_map_C_iff.1 ha n
state_before: R : Type u_1
σ : Type u_2
inst✝ : CommRing R
r : R
I : Ideal R
a : MvPolynomial σ R
ha : a ∈ Ideal.map C I
n : σ →₀ ℕ
x✝ : n ∈ support a
⊢ coeff n a ∈ I

tactic: rw [← @Ideal.mk_ker R _ I, RingHom.mem_ker] at this
state_before: R : Type u_1
σ : Type u_2
inst✝ : CommRing R
r : R
I : Ideal R
a : MvPolynomial σ R
ha : a ∈ Ideal.map C I
n : σ →₀ ℕ
x✝ : n ∈ support a
this : coeff n a ∈ I
⊢ ↑C (↑(Ideal.Quotient.mk I) (coeff n a)) = 0

tactic: simp only [this, C_0]
state_before: R : Type u_1
σ : Type u_2
inst✝ : CommRing R
r : R
I : Ideal R
a : MvPolynomial σ R
ha : a ∈ Ideal.map C I
n : σ →₀ ℕ
x✝ : n ∈ support a
this : ↑(Ideal.Quotient.mk I) (coeff n a) = 0
⊢ ↑C (↑(Ideal.Quotient.mk I) (coeff n a)) = 0
Theorem: Geometry.SimplicialComplex.vertices_eq
File: Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean

tactic: ext x
state_before: 𝕜 : Type u_2
E : Type u_1
ι : Type ?u.39096
inst✝² : OrderedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
K : SimplicialComplex 𝕜 E
s t : Finset E
x : E
⊢ vertices K = ⋃ (k : Finset E) (_ : k ∈ K.faces), ↑k

tactic: refine' ⟨fun h => mem_biUnion h <| mem_coe.2 <| mem_singleton_self x, fun h => _⟩
state_before: case h
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.39096
inst✝² : OrderedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
K : SimplicialComplex 𝕜 E
s t : Finset E
x✝ x : E
⊢ x ∈ vertices K ↔ x ∈ ⋃ (k : Finset E) (_ : k ∈ K.faces), ↑k

tactic: obtain ⟨s, hs, hx⟩ := mem_iUnion₂.1 h
state_before: case h
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.39096
inst✝² : OrderedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
K : SimplicialComplex 𝕜 E
s t : Finset E
x✝ x : E
h : x ∈ ⋃ (k : Finset E) (_ : k ∈ K.faces), ↑k
⊢ x ∈ vertices K

tactic: exact K.down_closed hs (Finset.singleton_subset_iff.2 <| mem_coe.1 hx) (singleton_ne_empty _)
state_before: case h.intro.intro
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.39096
inst✝² : OrderedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
K : SimplicialComplex 𝕜 E
s✝ t : Finset E
x✝ x : E
h : x ∈ ⋃ (k : Finset E) (_ : k ∈ K.faces), ↑k
s : Finset E
hs : s ∈ K.faces
hx : x ∈ ↑s
⊢ x ∈ vertices K
Theorem: Cycle.formPerm_reverse
File: Mathlib/GroupTheory/Perm/Cycle/Concrete.lean

tactic: induction s using Quot.inductionOn
state_before: α : Type u_1
inst✝ : DecidableEq α
s✝ s' s : Cycle α
h : Nodup s
⊢ formPerm (reverse s) (_ : Nodup (reverse s)) = (formPerm s h)⁻¹

tactic: simpa using formPerm_reverse _ h
state_before: case h
α : Type u_1
inst✝ : DecidableEq α
s s' : Cycle α
a✝ : List α
h : Nodup (Quot.mk Setoid.r a✝)
⊢ formPerm (reverse (Quot.mk Setoid.r a✝)) (_ : Nodup (reverse (Quot.mk Setoid.r a✝))) =
    (formPerm (Quot.mk Setoid.r a✝) h)⁻¹
Theorem: MeasureTheory.ae_uIoc_iff
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp only [uIoc_eq_union, mem_union, or_imp, eventually_and]
state_before: α : Type u_1
β : Type ?u.586
γ : Type ?u.589
δ : Type ?u.592
ι : Type ?u.595
R : Type ?u.598
R' : Type ?u.601
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
inst✝ : LinearOrder α
a b : α
P : α → Prop
⊢ (∀ᵐ (x : α) ∂μ, x ∈ Ι a b → P x) ↔ (∀ᵐ (x : α) ∂μ, x ∈ Ioc a b → P x) ∧ ∀ᵐ (x : α) ∂μ, x ∈ Ioc b a → P x
Theorem: Dfinsupp.extendWith_zero
File: Mathlib/Data/Dfinsupp/Basic.lean

tactic: ext (_ | j)
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
κ : Type ?u.663995
α : Option ι → Type v
inst✝¹ : DecidableEq ι
inst✝ : (i : Option ι) → Zero (α i)
x : α none
⊢ extendWith x 0 = single none x

tactic: rw [extendWith_none, single_eq_same]
state_before: case h.none
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
κ : Type ?u.663995
α : Option ι → Type v
inst✝¹ : DecidableEq ι
inst✝ : (i : Option ι) → Zero (α i)
x : α none
⊢ ↑(extendWith x 0) none = ↑(single none x) none

tactic: rw [extendWith_some, single_eq_of_ne (Option.some_ne_none _).symm, zero_apply]
state_before: case h.some
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
κ : Type ?u.663995
α : Option ι → Type v
inst✝¹ : DecidableEq ι
inst✝ : (i : Option ι) → Zero (α i)
x : α none
j : ι
⊢ ↑(extendWith x 0) (some j) = ↑(single none x) (some j)
Theorem: iteratedFDerivWithin_apply_eq_iteratedDerivWithin_mul_prod
File: Mathlib/Analysis/Calculus/IteratedDeriv.lean

tactic: rw [iteratedDerivWithin_eq_iteratedFDerivWithin, ← ContinuousMultilinearMap.map_smul_univ]
state_before: 𝕜 : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_1
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type ?u.17675
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
m : Fin n → 𝕜
⊢ ↑(iteratedFDerivWithin 𝕜 n f s x) m = (∏ i : Fin n, m i) • iteratedDerivWithin n f s x

tactic: simp
state_before: 𝕜 : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_1
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type ?u.17675
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
m : Fin n → 𝕜
⊢ ↑(iteratedFDerivWithin 𝕜 n f s x) m = ↑(iteratedFDerivWithin 𝕜 n f s x) fun i => m i • 1
Theorem: MeasureTheory.integral_dirac'
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: borelize E
state_before: α : Type u_1
E : Type u_2
F : Type ?u.1479555
𝕜 : Type ?u.1479558
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1482249
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
inst✝ : MeasurableSpace α
f : α → E
a : α
hfm : StronglyMeasurable f
⊢ (∫ (x : α), f x ∂Measure.dirac a) = f a

tactic: calc
  (∫ x, f x ∂Measure.dirac a) = ∫ _, f a ∂Measure.dirac a :=
    integral_congr_ae <| ae_eq_dirac' hfm.measurable
  _ = f a := by simp [Measure.dirac_apply_of_mem]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.1479555
𝕜 : Type ?u.1479558
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1482249
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
inst✝ : MeasurableSpace α
f : α → E
a : α
hfm : StronglyMeasurable f
this✝¹ : MeasurableSpace E := borel E
this✝ : BorelSpace E
⊢ (∫ (x : α), f x ∂Measure.dirac a) = f a

tactic: simp [Measure.dirac_apply_of_mem]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.1479555
𝕜 : Type ?u.1479558
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1482249
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
inst✝ : MeasurableSpace α
f : α → E
a : α
hfm : StronglyMeasurable f
this✝¹ : MeasurableSpace E := borel E
this✝ : BorelSpace E
⊢ (∫ (x : α), f a ∂Measure.dirac a) = f a
Theorem: Quaternion.normSq_rat_cast
File: Mathlib/Algebra/Quaternion.lean

tactic: rw [← coe_rat_cast, normSq_coe, coe_pow]
state_before: R : Type u_1
inst✝ : LinearOrderedField R
a b : ℍ[R]
q : ℚ
⊢ ↑(↑normSq ↑q) = ↑q ^ 2
Theorem: BilinForm.sum_repr_mul_repr_mul
File: Mathlib/LinearAlgebra/BilinearForm.lean

tactic: conv_rhs => rw [← b.total_repr x, ← b.total_repr y]
state_before: R : Type ?u.810929
M : Type ?u.810932
inst✝¹⁸ : Semiring R
inst✝¹⁷ : AddCommMonoid M
inst✝¹⁶ : Module R M
R₁ : Type ?u.810968
M₁ : Type ?u.810971
inst✝¹⁵ : Ring R₁
inst✝¹⁴ : AddCommGroup M₁
inst✝¹³ : Module R₁ M₁
R₂ : Type u_1
M₂ : Type u_3
inst✝¹² : CommSemiring R₂
inst✝¹¹ : AddCommMonoid M₂
inst✝¹⁰ : Module R₂ M₂
R₃ : Type ?u.811770
M₃ : Type ?u.811773
inst✝⁹ : CommRing R₃
inst✝⁸ : AddCommGroup M₃
inst✝⁷ : Module R₃ M₃
V : Type ?u.812361
K : Type ?u.812364
inst✝⁶ : Field K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
B : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
M₂' : Type ?u.813578
M₂'' : Type ?u.813581
inst✝³ : AddCommMonoid M₂'
inst✝² : AddCommMonoid M₂''
inst✝¹ : Module R₂ M₂'
inst✝ : Module R₂ M₂''
F₂ : BilinForm R₂ M₂
ι : Type u_2
b : Basis ι R₂ M₂
x y : M₂
⊢ (Finsupp.sum (↑b.repr x) fun i xi => Finsupp.sum (↑b.repr y) fun j yj => xi • yj • bilin B₂ (↑b i) (↑b j)) =
    bilin B₂ x y

tactic: simp_rw [Finsupp.total_apply, Finsupp.sum, sum_left, sum_right, smul_left, smul_right,
  smul_eq_mul]
state_before: R : Type ?u.810929
M : Type ?u.810932
inst✝¹⁸ : Semiring R
inst✝¹⁷ : AddCommMonoid M
inst✝¹⁶ : Module R M
R₁ : Type ?u.810968
M₁ : Type ?u.810971
inst✝¹⁵ : Ring R₁
inst✝¹⁴ : AddCommGroup M₁
inst✝¹³ : Module R₁ M₁
R₂ : Type u_1
M₂ : Type u_3
inst✝¹² : CommSemiring R₂
inst✝¹¹ : AddCommMonoid M₂
inst✝¹⁰ : Module R₂ M₂
R₃ : Type ?u.811770
M₃ : Type ?u.811773
inst✝⁹ : CommRing R₃
inst✝⁸ : AddCommGroup M₃
inst✝⁷ : Module R₃ M₃
V : Type ?u.812361
K : Type ?u.812364
inst✝⁶ : Field K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
B : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
M₂' : Type ?u.813578
M₂'' : Type ?u.813581
inst✝³ : AddCommMonoid M₂'
inst✝² : AddCommMonoid M₂''
inst✝¹ : Module R₂ M₂'
inst✝ : Module R₂ M₂''
F₂ : BilinForm R₂ M₂
ι : Type u_2
b : Basis ι R₂ M₂
x y : M₂
⊢ (Finsupp.sum (↑b.repr x) fun i xi => Finsupp.sum (↑b.repr y) fun j yj => xi • yj • bilin B₂ (↑b i) (↑b j)) =
    bilin B₂ (↑(Finsupp.total ι M₂ R₂ ↑b) (↑b.repr x)) (↑(Finsupp.total ι M₂ R₂ ↑b) (↑b.repr y))
Theorem: Ideal.isPrime_ideal_prod_top
File: Mathlib/RingTheory/Ideal/Prod.lean

tactic: constructor
state_before: R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I' : Ideal R
J J' : Ideal S
I : Ideal R
h : IsPrime I
⊢ IsPrime (prod I ⊤)

tactic: rintro ⟨r₁, s₁⟩ ⟨r₂, s₂⟩ ⟨h₁, _⟩
state_before: case mem_or_mem'
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I' : Ideal R
J J' : Ideal S
I : Ideal R
h : IsPrime I
⊢ ∀ {x y : R × S}, x * y ∈ prod I ⊤ → x ∈ prod I ⊤ ∨ y ∈ prod I ⊤

tactic: cases' h.mem_or_mem h₁ with h h
state_before: case mem_or_mem'.mk.mk.intro
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I' : Ideal R
J J' : Ideal S
I : Ideal R
h : IsPrime I
r₁ : R
s₁ : S
r₂ : R
s₂ : S
h₁ : ((r₁, s₁) * (r₂, s₂)).fst ∈ I
right✝ : ((r₁, s₁) * (r₂, s₂)).snd ∈ ⊤
⊢ (r₁, s₁) ∈ prod I ⊤ ∨ (r₂, s₂) ∈ prod I ⊤

tactic: rcases h with ⟨h, -⟩
state_before: case ne_top'
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I' : Ideal R
J J' : Ideal S
I : Ideal R
h : IsPrime I
⊢ prod I ⊤ ≠ ⊤

tactic: contrapose! h
state_before: case ne_top'.mk
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I' : Ideal R
J J' : Ideal S
I : Ideal R
h : I ≠ ⊤
⊢ prod I ⊤ ≠ ⊤

tactic: rw [← prod_top_top, prod.ext_iff] at h
state_before: case ne_top'.mk
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I' : Ideal R
J J' : Ideal S
I : Ideal R
h : prod I ⊤ = ⊤
⊢ I = ⊤

tactic: exact h.1
state_before: case ne_top'.mk
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I' : Ideal R
J J' : Ideal S
I : Ideal R
h : I = ⊤ ∧ ⊤ = ⊤
⊢ I = ⊤

tactic: exact Or.inl ⟨h, trivial⟩
state_before: case mem_or_mem'.mk.mk.intro.inl
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I' : Ideal R
J J' : Ideal S
I : Ideal R
h✝ : IsPrime I
r₁ : R
s₁ : S
r₂ : R
s₂ : S
h₁ : ((r₁, s₁) * (r₂, s₂)).fst ∈ I
right✝ : ((r₁, s₁) * (r₂, s₂)).snd ∈ ⊤
h : (r₁, s₁).fst ∈ I
⊢ (r₁, s₁) ∈ prod I ⊤ ∨ (r₂, s₂) ∈ prod I ⊤

tactic: exact Or.inr ⟨h, trivial⟩
state_before: case mem_or_mem'.mk.mk.intro.inr
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I' : Ideal R
J J' : Ideal S
I : Ideal R
h✝ : IsPrime I
r₁ : R
s₁ : S
r₂ : R
s₂ : S
h₁ : ((r₁, s₁) * (r₂, s₂)).fst ∈ I
right✝ : ((r₁, s₁) * (r₂, s₂)).snd ∈ ⊤
h : (r₂, s₂).fst ∈ I
⊢ (r₁, s₁) ∈ prod I ⊤ ∨ (r₂, s₂) ∈ prod I ⊤
Theorem: Heyting.IsRegular.inf
File: Mathlib/Order/Heyting/Regular.lean

tactic: rw [IsRegular, compl_compl_inf_distrib, ha.eq, hb.eq]
state_before: α : Type u_1
inst✝ : HeytingAlgebra α
a b : α
ha : IsRegular a
hb : IsRegular b
⊢ IsRegular (a ⊓ b)
Theorem: ENNReal.addLECancellable_iff_ne
File: Mathlib/Data/Real/ENNReal.lean

tactic: constructor
state_before: α : Type ?u.165330
β : Type ?u.165333
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ≥0∞
⊢ AddLECancellable a ↔ a ≠ ⊤

tactic: rintro h rfl
state_before: case mp
α : Type ?u.165330
β : Type ?u.165333
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ≥0∞
⊢ AddLECancellable a → a ≠ ⊤

tactic: refine' zero_lt_one.not_le (h _)
state_before: case mp
α : Type ?u.165330
β : Type ?u.165333
a b c d : ℝ≥0∞
r p q : ℝ≥0
h : AddLECancellable ⊤
⊢ False

tactic: simp
state_before: case mp
α : Type ?u.165330
β : Type ?u.165333
a b c d : ℝ≥0∞
r p q : ℝ≥0
h : AddLECancellable ⊤
⊢ ⊤ + 1 ≤ ⊤ + 0

tactic: rintro h b c hbc
state_before: case mpr
α : Type ?u.165330
β : Type ?u.165333
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ≥0∞
⊢ a ≠ ⊤ → AddLECancellable a

tactic: apply ENNReal.le_of_add_le_add_left h hbc
state_before: case mpr
α : Type ?u.165330
β : Type ?u.165333
a✝ b✝ c✝ d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ≥0∞
h : a ≠ ⊤
b c : ℝ≥0∞
hbc : a + b ≤ a + c
⊢ b ≤ c
Theorem: Seminorm.ball_zero'
File: Mathlib/Analysis/Seminorm.lean

tactic: rw [Set.eq_univ_iff_forall, ball]
state_before: R : Type ?u.826028
R' : Type ?u.826031
𝕜 : Type u_2
𝕜₂ : Type ?u.826037
𝕜₃ : Type ?u.826040
𝕝 : Type ?u.826043
E : Type u_1
E₂ : Type ?u.826049
E₃ : Type ?u.826052
F : Type ?u.826055
G : Type ?u.826058
ι : Type ?u.826061
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x✝ y : E
r : ℝ
x : E
hr : 0 < r
⊢ ball 0 x r = univ

tactic: simp [hr]
state_before: R : Type ?u.826028
R' : Type ?u.826031
𝕜 : Type u_2
𝕜₂ : Type ?u.826037
𝕜₃ : Type ?u.826040
𝕝 : Type ?u.826043
E : Type u_1
E₂ : Type ?u.826049
E₃ : Type ?u.826052
F : Type ?u.826055
G : Type ?u.826058
ι : Type ?u.826061
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x✝ y : E
r : ℝ
x : E
hr : 0 < r
⊢ ∀ (x_1 : E), x_1 ∈ {y | ↑0 (y - x) < r}
Theorem: List.mem_dlookup
File: Mathlib/Data/List/Sigma.lean

tactic: cases' Option.isSome_iff_exists.mp (dlookup_isSome.mpr (mem_keys_of_mem h)) with b' h'
state_before: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
b : β a
l : List (Sigma β)
nd : NodupKeys l
h : { fst := a, snd := b } ∈ l
⊢ b ∈ dlookup a l

tactic: cases nd.eq_of_mk_mem h (of_mem_dlookup h')
state_before: case intro
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
b : β a
l : List (Sigma β)
nd : NodupKeys l
h : { fst := a, snd := b } ∈ l
b' : β { fst := a, snd := b }.fst
h' : dlookup { fst := a, snd := b }.fst l = some b'
⊢ b ∈ dlookup a l

tactic: exact h'
state_before: case intro.refl
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
b : β a
l : List (Sigma β)
nd : NodupKeys l
h : { fst := a, snd := b } ∈ l
h' : dlookup { fst := a, snd := b }.fst l = some b
⊢ b ∈ dlookup a l
Theorem: ContinuousOn.image_uIcc
File: Mathlib/Topology/Algebra/Order/Compact.lean

tactic: refine' h.image_uIcc_eq_Icc.trans (uIcc_of_le _).symm
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.70879
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : DenselyOrdered α
inst✝¹ : ConditionallyCompleteLinearOrder β
inst✝ : OrderTopology β
f : α → β
a b c : α
h : ContinuousOn f [[a, b]]
⊢ f '' [[a, b]] = [[sInf (f '' [[a, b]]), sSup (f '' [[a, b]])]]

tactic: refine' csInf_le_csSup _ _ (nonempty_uIcc.image _) <;> rw [h.image_uIcc_eq_Icc]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.70879
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : DenselyOrdered α
inst✝¹ : ConditionallyCompleteLinearOrder β
inst✝ : OrderTopology β
f : α → β
a b c : α
h : ContinuousOn f [[a, b]]
⊢ sInf (f '' [[a, b]]) ≤ sSup (f '' [[a, b]])

tactic: exacts [bddBelow_Icc, bddAbove_Icc]
state_before: case refine'_1
α : Type u_1
β : Type u_2
γ : Type ?u.70879
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : DenselyOrdered α
inst✝¹ : ConditionallyCompleteLinearOrder β
inst✝ : OrderTopology β
f : α → β
a b c : α
h : ContinuousOn f [[a, b]]
⊢ BddBelow (Icc (sInf (f '' [[a, b]])) (sSup (f '' [[a, b]])))

case refine'_2
α : Type u_1
β : Type u_2
γ : Type ?u.70879
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : DenselyOrdered α
inst✝¹ : ConditionallyCompleteLinearOrder β
inst✝ : OrderTopology β
f : α → β
a b c : α
h : ContinuousOn f [[a, b]]
⊢ BddAbove (Icc (sInf (f '' [[a, b]])) (sSup (f '' [[a, b]])))
Theorem: List.sum_zipWith_distrib_left
File: Mathlib/Data/List/Zip.lean

tactic: induction' l with hd tl hl generalizing f n l'
state_before: α : Type u
β : Type u_2
γ✝ : Type ?u.177919
δ : Type ?u.177922
ε : Type ?u.177925
γ : Type u_1
inst✝ : Semiring γ
f : α → β → γ
n : γ
l : List α
l' : List β
⊢ sum (zipWith (fun x y => n * f x y) l l') = n * sum (zipWith f l l')

tactic: simp
state_before: case nil
α : Type u
β : Type u_2
γ✝ : Type ?u.177919
δ : Type ?u.177922
ε : Type ?u.177925
γ : Type u_1
inst✝ : Semiring γ
f✝ : α → β → γ
n✝ : γ
l'✝ : List β
f : α → β → γ
n : γ
l' : List β
⊢ sum (zipWith (fun x y => n * f x y) [] l') = n * sum (zipWith f [] l')

tactic: cases' l' with hd' tl'
state_before: case cons
α : Type u
β : Type u_2
γ✝ : Type ?u.177919
δ : Type ?u.177922
ε : Type ?u.177925
γ : Type u_1
inst✝ : Semiring γ
f✝ : α → β → γ
n✝ : γ
l'✝ : List β
hd : α
tl : List α
hl : ∀ (f : α → β → γ) (n : γ) (l' : List β), sum (zipWith (fun x y => n * f x y) tl l') = n * sum (zipWith f tl l')
f : α → β → γ
n : γ
l' : List β
⊢ sum (zipWith (fun x y => n * f x y) (hd :: tl) l') = n * sum (zipWith f (hd :: tl) l')

tactic: simp
state_before: case cons.nil
α : Type u
β : Type u_2
γ✝ : Type ?u.177919
δ : Type ?u.177922
ε : Type ?u.177925
γ : Type u_1
inst✝ : Semiring γ
f✝ : α → β → γ
n✝ : γ
l' : List β
hd : α
tl : List α
hl : ∀ (f : α → β → γ) (n : γ) (l' : List β), sum (zipWith (fun x y => n * f x y) tl l') = n * sum (zipWith f tl l')
f : α → β → γ
n : γ
⊢ sum (zipWith (fun x y => n * f x y) (hd :: tl) []) = n * sum (zipWith f (hd :: tl) [])

tactic: simp [hl, mul_add]
state_before: case cons.cons
α : Type u
β : Type u_2
γ✝ : Type ?u.177919
δ : Type ?u.177922
ε : Type ?u.177925
γ : Type u_1
inst✝ : Semiring γ
f✝ : α → β → γ
n✝ : γ
l' : List β
hd : α
tl : List α
hl : ∀ (f : α → β → γ) (n : γ) (l' : List β), sum (zipWith (fun x y => n * f x y) tl l') = n * sum (zipWith f tl l')
f : α → β → γ
n : γ
hd' : β
tl' : List β
⊢ sum (zipWith (fun x y => n * f x y) (hd :: tl) (hd' :: tl')) = n * sum (zipWith f (hd :: tl) (hd' :: tl'))