1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: UpperHalfPlane.image_coe_closedBall
File: Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean

tactic: ext w
state_before: z✝ w : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
⊢ UpperHalfPlane.coe '' closedBall z r = closedBall (↑(z.center r)) (z.im * Real.sinh r)
state_after: case h
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℂ
⊢ w ∈ UpperHalfPlane.coe '' closedBall z r ↔ w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r)

tactic: constructor
state_before: case h
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℂ
⊢ w ∈ UpperHalfPlane.coe '' closedBall z r ↔ w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r)
state_after: case h.mp
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℂ
⊢ w ∈ UpperHalfPlane.coe '' closedBall z r → w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r)

case h.mpr
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℂ
⊢ w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r) → w ∈ UpperHalfPlane.coe '' closedBall z r

tactic: rintro ⟨w, hw, rfl⟩
state_before: case h.mp
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℂ
⊢ w ∈ UpperHalfPlane.coe '' closedBall z r → w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r)
state_after: case h.mp.intro.intro
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℍ
hw : w ∈ closedBall z r
⊢ ↑w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r)

tactic: exact dist_le_iff_dist_coe_center_le.1 hw
state_before: case h.mp.intro.intro
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℍ
hw : w ∈ closedBall z r
⊢ ↑w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r)
state_after: no goals

tactic: intro hw
state_before: case h.mpr
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℂ
⊢ w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r) → w ∈ UpperHalfPlane.coe '' closedBall z r
state_after: case h.mpr
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℂ
hw : w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r)
⊢ w ∈ UpperHalfPlane.coe '' closedBall z r

tactic: lift w to ℍ using im_pos_of_dist_center_le hw
state_before: case h.mpr
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℂ
hw : w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r)
⊢ w ∈ UpperHalfPlane.coe '' closedBall z r
state_after: case h.mpr.intro
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℍ
hw : ↑w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r)
⊢ ↑w ∈ UpperHalfPlane.coe '' closedBall z r

tactic: exact mem_image_of_mem _ (dist_le_iff_dist_coe_center_le.2 hw)
state_before: case h.mpr.intro
z✝ w✝ : ℍ
r✝ R : ℝ
z : ℍ
r : ℝ
w : ℍ
hw : ↑w ∈ closedBall (↑(z.center r)) (z.im * Real.sinh r)
⊢ ↑w ∈ UpperHalfPlane.coe '' closedBall z r
state_after: no goals
Theorem: nilpotent_iff_mem_prime
File: Mathlib/RingTheory/Nilpotent/Lemmas.lean

tactic: rw [← mem_nilradical, nilradical_eq_sInf, Submodule.mem_sInf]
state_before: R : Type u_1
S : Type u_2
x✝ y✝ : R
inst✝ : CommSemiring R
x y : R
⊢ IsNilpotent x ↔ ∀ (J : Ideal R), J.IsPrime → x ∈ J
state_after: R : Type u_1
S : Type u_2
x✝ y✝ : R
inst✝ : CommSemiring R
x y : R
⊢ (∀ p ∈ {J | J.IsPrime}, x ∈ p) ↔ ∀ (J : Ideal R), J.IsPrime → x ∈ J

tactic: rfl
state_before: R : Type u_1
S : Type u_2
x✝ y✝ : R
inst✝ : CommSemiring R
x y : R
⊢ (∀ p ∈ {J | J.IsPrime}, x ∈ p) ↔ ∀ (J : Ideal R), J.IsPrime → x ∈ J
state_after: no goals
Theorem: SimpleGraph.card_incidenceSet_eq_degree
File: Mathlib/Combinatorics/SimpleGraph/Finite.lean

tactic: rw [Fintype.card_congr (G.incidenceSetEquivNeighborSet v)]
state_before: V : Type u_1
G : SimpleGraph V
e : Sym2 V
v : V
inst✝¹ : Fintype ↑(G.neighborSet v)
inst✝ : DecidableEq V
⊢ Fintype.card ↑(G.incidenceSet v) = G.degree v
state_after: V : Type u_1
G : SimpleGraph V
e : Sym2 V
v : V
inst✝¹ : Fintype ↑(G.neighborSet v)
inst✝ : DecidableEq V
⊢ Fintype.card ↑(G.neighborSet v) = G.degree v

tactic: simp
state_before: V : Type u_1
G : SimpleGraph V
e : Sym2 V
v : V
inst✝¹ : Fintype ↑(G.neighborSet v)
inst✝ : DecidableEq V
⊢ Fintype.card ↑(G.neighborSet v) = G.degree v
state_after: no goals
Theorem: legendreSym.quadratic_reciprocity_three_mod_four
File: Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean

tactic: let nop := @neg_one_pow_div_two_of_three_mod_four
state_before: p q : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Fact (Nat.Prime q)
hp : p % 4 = 3
hq : q % 4 = 3
⊢ legendreSym q ↑p = -legendreSym p ↑q
state_after: p q : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Fact (Nat.Prime q)
hp : p % 4 = 3
hq : q % 4 = 3
nop : ∀ {n : ℕ}, n % 4 = 3 → (-1) ^ (n / 2) = -1 := @neg_one_pow_div_two_of_three_mod_four
⊢ legendreSym q ↑p = -legendreSym p ↑q

tactic: rw [quadratic_reciprocity', pow_mul, nop hp, nop hq, neg_one_mul] <;>
rwa [← Prime.mod_two_eq_one_iff_ne_two, odd_of_mod_four_eq_three]
state_before: p q : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Fact (Nat.Prime q)
hp : p % 4 = 3
hq : q % 4 = 3
nop : ∀ {n : ℕ}, n % 4 = 3 → (-1) ^ (n / 2) = -1 := @neg_one_pow_div_two_of_three_mod_four
⊢ legendreSym q ↑p = -legendreSym p ↑q
state_after: no goals
Theorem: CategoryTheory.Sheaf.isLocallySurjective_iff_isIso
File: Mathlib/CategoryTheory/Sites/LocallySurjective.lean

tactic: dsimp only [IsLocallySurjective]
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝² : Category.{v', u'} A
inst✝¹ : ConcreteCategory A
F₁ F₂ F₃ : Sheaf J A
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
inst✝ : J.HasSheafCompose (forget A)
F G : Sheaf J (Type w)
f : F ⟶ G
⊢ IsLocallySurjective f ↔ IsIso (imageSheafι f)
state_after: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝² : Category.{v', u'} A
inst✝¹ : ConcreteCategory A
F₁ F₂ F₃ : Sheaf J A
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
inst✝ : J.HasSheafCompose (forget A)
F G : Sheaf J (Type w)
f : F ⟶ G
⊢ Presheaf.IsLocallySurjective J f.val ↔ IsIso (imageSheafι f)

tactic: rw [imageSheafι, Presheaf.isLocallySurjective_iff_imagePresheaf_sheafify_eq_top',
  Subpresheaf.eq_top_iff_isIso]
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝² : Category.{v', u'} A
inst✝¹ : ConcreteCategory A
F₁ F₂ F₃ : Sheaf J A
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
inst✝ : J.HasSheafCompose (forget A)
F G : Sheaf J (Type w)
f : F ⟶ G
⊢ Presheaf.IsLocallySurjective J f.val ↔ IsIso (imageSheafι f)
state_after: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝² : Category.{v', u'} A
inst✝¹ : ConcreteCategory A
F₁ F₂ F₃ : Sheaf J A
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
inst✝ : J.HasSheafCompose (forget A)
F G : Sheaf J (Type w)
f : F ⟶ G
⊢ IsIso (Subpresheaf.sheafify J (imagePresheaf f.val)).ι ↔
    IsIso { val := (Subpresheaf.sheafify J (imagePresheaf f.val)).ι }

tactic: exact isIso_iff_of_reflects_iso (f := imageSheafι f) (F := sheafToPresheaf J (Type w))
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝² : Category.{v', u'} A
inst✝¹ : ConcreteCategory A
F₁ F₂ F₃ : Sheaf J A
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
inst✝ : J.HasSheafCompose (forget A)
F G : Sheaf J (Type w)
f : F ⟶ G
⊢ IsIso (Subpresheaf.sheafify J (imagePresheaf f.val)).ι ↔
    IsIso { val := (Subpresheaf.sheafify J (imagePresheaf f.val)).ι }
state_after: no goals
Theorem: Matrix.StdBasisMatrix.trace_eq
File: Mathlib/Data/Matrix/Basis.lean

tactic: simp [trace, -diag_apply]
state_before: l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁴ : DecidableEq l
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Semiring α
i j : n
c : α
i' j' : n
inst✝ : Fintype n
⊢ (stdBasisMatrix i i c).trace = c
state_after: no goals
Theorem: MeasureTheory.upperCrossingTime_le
File: Mathlib/Probability/Martingale/Upcrossing.lean

tactic: cases n
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝ : ConditionallyCompleteLinearOrderBot ι
a b : ℝ
f : ι → Ω → ℝ
N : ι
n m : ℕ
ω : Ω
⊢ upperCrossingTime a b f N n ω ≤ N
state_after: case zero
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝ : ConditionallyCompleteLinearOrderBot ι
a b : ℝ
f : ι → Ω → ℝ
N : ι
m : ℕ
ω : Ω
⊢ upperCrossingTime a b f N 0 ω ≤ N

case succ
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝ : ConditionallyCompleteLinearOrderBot ι
a b : ℝ
f : ι → Ω → ℝ
N : ι
m : ℕ
ω : Ω
n✝ : ℕ
⊢ upperCrossingTime a b f N (n✝ + 1) ω ≤ N

tactic: simp only [upperCrossingTime_zero, Pi.bot_apply, bot_le, Nat.zero_eq]
state_before: case zero
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝ : ConditionallyCompleteLinearOrderBot ι
a b : ℝ
f : ι → Ω → ℝ
N : ι
m : ℕ
ω : Ω
⊢ upperCrossingTime a b f N 0 ω ≤ N
state_after: no goals

tactic: simp only [upperCrossingTime_succ, hitting_le]
state_before: case succ
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
inst✝ : ConditionallyCompleteLinearOrderBot ι
a b : ℝ
f : ι → Ω → ℝ
N : ι
m : ℕ
ω : Ω
n✝ : ℕ
⊢ upperCrossingTime a b f N (n✝ + 1) ω ≤ N
state_after: no goals
Theorem: MeasureTheory.measure_le_laverage_pos
File: Mathlib/MeasureTheory/Integral/Average.lean

tactic: simpa using
  measure_le_setLaverage_pos (measure_univ_ne_zero.2 hμ) (measure_ne_top _ _) hf.restrict
state_before: α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ ν : Measure α
s t N : Set α
f : α → ℝ≥0∞
inst✝ : IsFiniteMeasure μ
hμ : μ ≠ 0
hf : AEMeasurable f μ
⊢ 0 < μ {x | f x ≤ ⨍⁻ (a : α), f a ∂μ}
state_after: no goals
Theorem: GeneralizedContinuedFraction.convergents'Aux_succ_some
File: Mathlib/Algebra/ContinuedFractions/Translations.lean

tactic: simp [convergents'Aux, h, convergents'Aux.match_1]
state_before: K : Type u_1
g : GeneralizedContinuedFraction K
n✝ : ℕ
inst✝ : DivisionRing K
s : Stream'.Seq (Pair K)
p : Pair K
h : s.head = some p
n : ℕ
⊢ convergents'Aux s (n + 1) = p.a / (p.b + convergents'Aux s.tail n)
state_after: no goals
Theorem: Submodule.prod_map_fst
File: Mathlib/LinearAlgebra/Prod.lean

tactic: ext x
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
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M
inst✝ : Module R M₂
p : Submodule R M
q : Submodule R M₂
⊢ map (fst R M M₂) (p.prod q) = p
state_after: case h
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
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M
inst✝ : Module R M₂
p : Submodule R M
q : Submodule R M₂
x : M
⊢ x ∈ map (fst R M M₂) (p.prod q) ↔ x ∈ p

tactic: simp [(⟨0, zero_mem _⟩ : ∃ x, x ∈ q)]
state_before: case h
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
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M
inst✝ : Module R M₂
p : Submodule R M
q : Submodule R M₂
x : M
⊢ x ∈ map (fst R M M₂) (p.prod q) ↔ x ∈ p
state_after: no goals
Theorem: padicValRat.self_pow_inv
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: rw [padicValRat.inv, neg_inj, padicValRat.pow (Nat.cast_ne_zero.mpr hp.elim.ne_zero),
    padicValRat.self hp.elim.one_lt, mul_one]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
r : ℕ
⊢ padicValRat p (↑p ^ r)⁻¹ = -↑r
state_after: no goals
Theorem: MeasureTheory.withDensity_mono
File: Mathlib/MeasureTheory/Measure/WithDensity.lean

tactic: refine le_iff.2 fun s hs ↦ ?_
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
hfg : f ≤ᶠ[ae μ] g
⊢ μ.withDensity f ≤ μ.withDensity g
state_after: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
hfg : f ≤ᶠ[ae μ] g
s : Set α
hs : MeasurableSet s
⊢ (μ.withDensity f) s ≤ (μ.withDensity g) s

tactic: rw [withDensity_apply _ hs, withDensity_apply _ hs]
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
hfg : f ≤ᶠ[ae μ] g
s : Set α
hs : MeasurableSet s
⊢ (μ.withDensity f) s ≤ (μ.withDensity g) s
state_after: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
hfg : f ≤ᶠ[ae μ] g
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (a : α) in s, f a ∂μ ≤ ∫⁻ (a : α) in s, g a ∂μ

tactic: refine setLIntegral_mono_ae' hs ?_
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
hfg : f ≤ᶠ[ae μ] g
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (a : α) in s, f a ∂μ ≤ ∫⁻ (a : α) in s, g a ∂μ
state_after: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
hfg : f ≤ᶠ[ae μ] g
s : Set α
hs : MeasurableSet s
⊢ ∀ᵐ (x : α) ∂μ, x ∈ s → f x ≤ g x

tactic: filter_upwards [hfg] with x h_le using fun _ ↦ h_le
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
hfg : f ≤ᶠ[ae μ] g
s : Set α
hs : MeasurableSet s
⊢ ∀ᵐ (x : α) ∂μ, x ∈ s → f x ≤ g x
state_after: no goals
Theorem: Ideal.annihilator_quotient
File: Mathlib/RingTheory/Ideal/Colon.lean

tactic: rw [Submodule.annihilator_quotient, colon_top]
state_before: R : Type u_1
M : Type u_2
M' : Type u_3
F : Type u_4
G : Type u_5
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
N N₁ N₂ P P₁ P₂ : Submodule R M
I : Ideal R
⊢ Module.annihilator R (R ⧸ I) = I
state_after: no goals
Theorem: EuclideanGeometry.angle_le_pi_div_two_of_angle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean

tactic: rw [angle, ← inner_eq_zero_iff_angle_eq_pi_div_two, real_inner_comm, ← neg_eq_zero, ←
  inner_neg_left, neg_vsub_eq_vsub_rev] at h
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ∠ p₁ p₂ p₃ = π / 2
⊢ ∠ p₂ p₃ p₁ ≤ π / 2
state_after: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ⟪p₂ -ᵥ p₃, p₁ -ᵥ p₂⟫_ℝ = 0
⊢ ∠ p₂ p₃ p₁ ≤ π / 2

tactic: rw [angle, ← vsub_add_vsub_cancel p₁ p₂ p₃, add_comm]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ⟪p₂ -ᵥ p₃, p₁ -ᵥ p₂⟫_ℝ = 0
⊢ ∠ p₂ p₃ p₁ ≤ π / 2
state_after: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ⟪p₂ -ᵥ p₃, p₁ -ᵥ p₂⟫_ℝ = 0
⊢ InnerProductGeometry.angle (p₂ -ᵥ p₃) (p₂ -ᵥ p₃ + (p₁ -ᵥ p₂)) ≤ π / 2

tactic: exact angle_add_le_pi_div_two_of_inner_eq_zero h
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ⟪p₂ -ᵥ p₃, p₁ -ᵥ p₂⟫_ℝ = 0
⊢ InnerProductGeometry.angle (p₂ -ᵥ p₃) (p₂ -ᵥ p₃ + (p₁ -ᵥ p₂)) ≤ π / 2
state_after: no goals
Theorem: MultilinearMap.mkContinuousMultilinear_norm_le'
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

tactic: dsimp only [mkContinuousMultilinear]
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : MultilinearMap 𝕜 E (MultilinearMap 𝕜 E' G)
C : ℝ
H : ∀ (m₁ : (i : ι) → E i) (m₂ : (i : ι') → E' i), ‖(f m₁) m₂‖ ≤ (C * ∏ i : ι, ‖m₁ i‖) * ∏ i : ι', ‖m₂ i‖
⊢ ‖f.mkContinuousMultilinear C H‖ ≤ max C 0
state_after: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : MultilinearMap 𝕜 E (MultilinearMap 𝕜 E' G)
C : ℝ
H : ∀ (m₁ : (i : ι) → E i) (m₂ : (i : ι') → E' i), ‖(f m₁) m₂‖ ≤ (C * ∏ i : ι, ‖m₁ i‖) * ∏ i : ι', ‖m₂ i‖
⊢ ‖{ toFun := fun m => (f m).mkContinuous (C * ∏ i : ι, ‖m i‖) ⋯, map_add' := ⋯, map_smul' := ⋯ }.mkContinuous (max C 0)
        ⋯‖ ≤
    max C 0

tactic: exact mkContinuous_norm_le _ (le_max_right _ _) _
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : MultilinearMap 𝕜 E (MultilinearMap 𝕜 E' G)
C : ℝ
H : ∀ (m₁ : (i : ι) → E i) (m₂ : (i : ι') → E' i), ‖(f m₁) m₂‖ ≤ (C * ∏ i : ι, ‖m₁ i‖) * ∏ i : ι', ‖m₂ i‖
⊢ ‖{ toFun := fun m => (f m).mkContinuous (C * ∏ i : ι, ‖m i‖) ⋯, map_add' := ⋯, map_smul' := ⋯ }.mkContinuous (max C 0)
        ⋯‖ ≤
    max C 0
state_after: no goals
Theorem: convexOn_of_deriv2_nonneg
File: Mathlib/Analysis/Convex/Deriv.lean

tactic: rwa [interior_interior]
state_before: D : Set ℝ
hD : Convex ℝ D
f : ℝ → ℝ
hf : ContinuousOn f D
hf' : DifferentiableOn ℝ f (interior D)
hf'' : DifferentiableOn ℝ (deriv f) (interior D)
hf''_nonneg : ∀ x ∈ interior D, 0 ≤ deriv^[2] f x
⊢ DifferentiableOn ℝ (deriv f) (interior (interior D))
state_after: no goals

tactic: rwa [interior_interior]
state_before: D : Set ℝ
hD : Convex ℝ D
f : ℝ → ℝ
hf : ContinuousOn f D
hf' : DifferentiableOn ℝ f (interior D)
hf'' : DifferentiableOn ℝ (deriv f) (interior D)
hf''_nonneg : ∀ x ∈ interior D, 0 ≤ deriv^[2] f x
⊢ ∀ x ∈ interior (interior D), 0 ≤ deriv (deriv f) x
state_after: no goals
Theorem: Dilation.ratio_mul
File: Mathlib/Topology/MetricSpace/Dilation.lean

tactic: by_cases h : ∀ x y : α, edist x y = 0 ∨ edist x y = ∞
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
F : Type u_4
G : Type u_5
inst✝⁶ : PseudoEMetricSpace α
inst✝⁵ : PseudoEMetricSpace β
inst✝⁴ : PseudoEMetricSpace γ
inst✝³ : FunLike F α β
inst✝² : DilationClass F α β
inst✝¹ : FunLike G β γ
inst✝ : DilationClass G β γ
f✝ : F
g✝ : G
x y z : α
s : Set α
f g : α →ᵈ α
⊢ ratio (f * g) = ratio f * ratio g
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
F : Type u_4
G : Type u_5
inst✝⁶ : PseudoEMetricSpace α
inst✝⁵ : PseudoEMetricSpace β
inst✝⁴ : PseudoEMetricSpace γ
inst✝³ : FunLike F α β
inst✝² : DilationClass F α β
inst✝¹ : FunLike G β γ
inst✝ : DilationClass G β γ
f✝ : F
g✝ : G
x y z : α
s : Set α
f g : α →ᵈ α
h : ∀ (x y : α), edist x y = 0 ∨ edist x y = ⊤
⊢ ratio (f * g) = ratio f * ratio g

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
F : Type u_4
G : Type u_5
inst✝⁶ : PseudoEMetricSpace α
inst✝⁵ : PseudoEMetricSpace β
inst✝⁴ : PseudoEMetricSpace γ
inst✝³ : FunLike F α β
inst✝² : DilationClass F α β
inst✝¹ : FunLike G β γ
inst✝ : DilationClass G β γ
f✝ : F
g✝ : G
x y z : α
s : Set α
f g : α →ᵈ α
h : ¬∀ (x y : α), edist x y = 0 ∨ edist x y = ⊤
⊢ ratio (f * g) = ratio f * ratio g

tactic: push_neg at h
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
F : Type u_4
G : Type u_5
inst✝⁶ : PseudoEMetricSpace α
inst✝⁵ : PseudoEMetricSpace β
inst✝⁴ : PseudoEMetricSpace γ
inst✝³ : FunLike F α β
inst✝² : DilationClass F α β
inst✝¹ : FunLike G β γ
inst✝ : DilationClass G β γ
f✝ : F
g✝ : G
x y z : α
s : Set α
f g : α →ᵈ α
h : ¬∀ (x y : α), edist x y = 0 ∨ edist x y = ⊤
⊢ ratio (f * g) = ratio f * ratio g
state_after: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
F : Type u_4
G : Type u_5
inst✝⁶ : PseudoEMetricSpace α
inst✝⁵ : PseudoEMetricSpace β
inst✝⁴ : PseudoEMetricSpace γ
inst✝³ : FunLike F α β
inst✝² : DilationClass F α β
inst✝¹ : FunLike G β γ
inst✝ : DilationClass G β γ
f✝ : F
g✝ : G
x y z : α
s : Set α
f g : α →ᵈ α
h : ∃ x y, edist x y ≠ 0 ∧ edist x y ≠ ⊤
⊢ ratio (f * g) = ratio f * ratio g

tactic: exact ratio_comp' h
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
F : Type u_4
G : Type u_5
inst✝⁶ : PseudoEMetricSpace α
inst✝⁵ : PseudoEMetricSpace β
inst✝⁴ : PseudoEMetricSpace γ
inst✝³ : FunLike F α β
inst✝² : DilationClass F α β
inst✝¹ : FunLike G β γ
inst✝ : DilationClass G β γ
f✝ : F
g✝ : G
x y z : α
s : Set α
f g : α →ᵈ α
h : ∃ x y, edist x y ≠ 0 ∧ edist x y ≠ ⊤
⊢ ratio (f * g) = ratio f * ratio g
state_after: no goals

tactic: simp [ratio_of_trivial, h]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
F : Type u_4
G : Type u_5
inst✝⁶ : PseudoEMetricSpace α
inst✝⁵ : PseudoEMetricSpace β
inst✝⁴ : PseudoEMetricSpace γ
inst✝³ : FunLike F α β
inst✝² : DilationClass F α β
inst✝¹ : FunLike G β γ
inst✝ : DilationClass G β γ
f✝ : F
g✝ : G
x y z : α
s : Set α
f g : α →ᵈ α
h : ∀ (x y : α), edist x y = 0 ∨ edist x y = ⊤
⊢ ratio (f * g) = ratio f * ratio g
state_after: no goals
Theorem: Polynomial.natDegree_X_pow_le
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: nontriviality R
state_before: R✝ : Type u
S : Type v
a b c d : R✝
n✝¹ m : ℕ
inst✝² : Semiring R✝
inst✝¹ : Nontrivial R✝
p q : R✝[X]
n✝ : ℕ
R : Type u_1
inst✝ : Semiring R
n : ℕ
⊢ (X ^ n).natDegree ≤ n
state_after: R✝ : Type u
S : Type v
a b c d : R✝
n✝¹ m : ℕ
inst✝² : Semiring R✝
inst✝¹ : Nontrivial R✝
p q : R✝[X]
n✝ : ℕ
R : Type u_1
inst✝ : Semiring R
n : ℕ
a✝ : Nontrivial R
⊢ (X ^ n).natDegree ≤ n

tactic: rw [Polynomial.natDegree_X_pow]
state_before: R✝ : Type u
S : Type v
a b c d : R✝
n✝¹ m : ℕ
inst✝² : Semiring R✝
inst✝¹ : Nontrivial R✝
p q : R✝[X]
n✝ : ℕ
R : Type u_1
inst✝ : Semiring R
n : ℕ
a✝ : Nontrivial R
⊢ (X ^ n).natDegree ≤ n
state_after: no goals
Theorem: AffineMap.apply_lineMap
File: Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean

tactic: simp [lineMap_apply]
state_before: k : Type u_1
V1 : Type u_2
P1 : Type u_3
V2 : Type u_4
P2 : Type u_5
V3 : Type u_6
P3 : Type u_7
V4 : Type u_8
P4 : Type u_9
inst✝¹² : Ring k
inst✝¹¹ : AddCommGroup V1
inst✝¹⁰ : Module k V1
inst✝⁹ : AffineSpace V1 P1
inst✝⁸ : AddCommGroup V2
inst✝⁷ : Module k V2
inst✝⁶ : AffineSpace V2 P2
inst✝⁵ : AddCommGroup V3
inst✝⁴ : Module k V3
inst✝³ : AffineSpace V3 P3
inst✝² : AddCommGroup V4
inst✝¹ : Module k V4
inst✝ : AffineSpace V4 P4
f : P1 →ᵃ[k] P2
p₀ p₁ : P1
c : k
⊢ f ((lineMap p₀ p₁) c) = (lineMap (f p₀) (f p₁)) c
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.map_polynomialZ
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: simp [polynomialZ, map_polynomial, pderiv_map]
state_before: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
S : Type u_1
inst✝ : CommRing S
f : R →+* S
P Q : Fin 3 → R
⊢ (map W' f).toJacobian.polynomialZ = (MvPolynomial.map f) W'.polynomialZ
state_after: no goals