1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: OrderEmbedding.birkhoffFinset_inf
File: Mathlib/Order/Birkhoff.lean

tactic: dsimp [OrderEmbedding.birkhoffFinset]
state_before: α : Type u_1
inst✝⁴ : DistribLattice α
inst✝³ : OrderBot α
inst✝² : Fintype α
inst✝¹ : DecidablePred SupIrred
inst✝ : DecidableEq α
a b : α
⊢ birkhoffFinset (a ⊓ b) = birkhoffFinset a ∩ birkhoffFinset b
state_after: α : Type u_1
inst✝⁴ : DistribLattice α
inst✝³ : OrderBot α
inst✝² : Fintype α
inst✝¹ : DecidablePred SupIrred
inst✝ : DecidableEq α
a b : α
⊢ Fintype.finsetOrderIsoSet.symm.toOrderEmbedding (birkhoffSet (a ⊓ b)) =
    Fintype.finsetOrderIsoSet.symm.toOrderEmbedding (birkhoffSet a) ∩
      Fintype.finsetOrderIsoSet.symm.toOrderEmbedding (birkhoffSet b)

tactic: rw [birkhoffSet_inf, OrderIso.coe_toOrderEmbedding]
state_before: α : Type u_1
inst✝⁴ : DistribLattice α
inst✝³ : OrderBot α
inst✝² : Fintype α
inst✝¹ : DecidablePred SupIrred
inst✝ : DecidableEq α
a b : α
⊢ Fintype.finsetOrderIsoSet.symm.toOrderEmbedding (birkhoffSet (a ⊓ b)) =
    Fintype.finsetOrderIsoSet.symm.toOrderEmbedding (birkhoffSet a) ∩
      Fintype.finsetOrderIsoSet.symm.toOrderEmbedding (birkhoffSet b)
state_after: α : Type u_1
inst✝⁴ : DistribLattice α
inst✝³ : OrderBot α
inst✝² : Fintype α
inst✝¹ : DecidablePred SupIrred
inst✝ : DecidableEq α
a b : α
⊢ Fintype.finsetOrderIsoSet.symm (birkhoffSet a ∩ birkhoffSet b) =
    Fintype.finsetOrderIsoSet.symm (birkhoffSet a) ∩ Fintype.finsetOrderIsoSet.symm (birkhoffSet b)

tactic: simp
state_before: α : Type u_1
inst✝⁴ : DistribLattice α
inst✝³ : OrderBot α
inst✝² : Fintype α
inst✝¹ : DecidablePred SupIrred
inst✝ : DecidableEq α
a b : α
⊢ Fintype.finsetOrderIsoSet.symm (birkhoffSet a ∩ birkhoffSet b) =
    Fintype.finsetOrderIsoSet.symm (birkhoffSet a) ∩ Fintype.finsetOrderIsoSet.symm (birkhoffSet b)
state_after: no goals
Theorem: CategoryTheory.ShortComplex.SnakeInput.w₁₃_τ₃
File: Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean

tactic: rw [← comp_τ₃, S.w₁₃, zero_τ₃]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
S : SnakeInput C
⊢ S.v₁₂.τ₃ ≫ S.v₂₃.τ₃ = 0
state_after: no goals
Theorem: Set.smul_neg
File: Mathlib/Data/Set/Pointwise/SMul.lean

tactic: simp_rw [← image_neg]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Monoid α
inst✝¹ : AddGroup β
inst✝ : DistribMulAction α β
a : α
s : Set α
t : Set β
⊢ s • -t = -(s • t)
state_after: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Monoid α
inst✝¹ : AddGroup β
inst✝ : DistribMulAction α β
a : α
s : Set α
t : Set β
⊢ s • Neg.neg '' t = Neg.neg '' (s • t)

tactic: exact image_image2_right_comm smul_neg
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Monoid α
inst✝¹ : AddGroup β
inst✝ : DistribMulAction α β
a : α
s : Set α
t : Set β
⊢ s • Neg.neg '' t = Neg.neg '' (s • t)
state_after: no goals
Theorem: EuclideanGeometry.cos_oangle_right_of_oangle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean

tactic: have hs : (∡ p₂ p₃ p₁).sign = 1 := by rw [oangle_rotate_sign, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ (∡ p₂ p₃ p₁).cos = dist p₃ p₂ / dist p₁ p₃
state_after: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
hs : (∡ p₂ p₃ p₁).sign = 1
⊢ (∡ p₂ p₃ p₁).cos = dist p₃ p₂ / dist p₁ p₃

tactic: rw [oangle_eq_angle_of_sign_eq_one hs, Real.Angle.cos_coe,
  cos_angle_of_angle_eq_pi_div_two (angle_eq_pi_div_two_of_oangle_eq_pi_div_two h)]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
hs : (∡ p₂ p₃ p₁).sign = 1
⊢ (∡ p₂ p₃ p₁).cos = dist p₃ p₂ / dist p₁ p₃
state_after: no goals

tactic: rw [oangle_rotate_sign, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ (∡ p₂ p₃ p₁).sign = 1
state_after: no goals
Theorem: AlgEquiv.arrowCongr_trans
File: Mathlib/Algebra/Algebra/Equiv.lean

tactic: ext
state_before: R : Type uR
A₁ : Type uA₁
A₂ : Type uA₂
A₃ : Type uA₃
A₁' : Type uA₁'
A₂' : Type uA₂'
A₃' : Type uA₃'
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A₁
inst✝¹⁰ : Semiring A₂
inst✝⁹ : Semiring A₃
inst✝⁸ : Semiring A₁'
inst✝⁷ : Semiring A₂'
inst✝⁶ : Semiring A₃'
inst✝⁵ : Algebra R A₁
inst✝⁴ : Algebra R A₂
inst✝³ : Algebra R A₃
inst✝² : Algebra R A₁'
inst✝¹ : Algebra R A₂'
inst✝ : Algebra R A₃'
e e₁ : A₁ ≃ₐ[R] A₂
e₁' : A₁' ≃ₐ[R] A₂'
e₂ : A₂ ≃ₐ[R] A₃
e₂' : A₂' ≃ₐ[R] A₃'
⊢ (e₁.trans e₂).arrowCongr (e₁'.trans e₂') = (e₁.arrowCongr e₁').trans (e₂.arrowCongr e₂')
state_after: case H.H
R : Type uR
A₁ : Type uA₁
A₂ : Type uA₂
A₃ : Type uA₃
A₁' : Type uA₁'
A₂' : Type uA₂'
A₃' : Type uA₃'
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A₁
inst✝¹⁰ : Semiring A₂
inst✝⁹ : Semiring A₃
inst✝⁸ : Semiring A₁'
inst✝⁷ : Semiring A₂'
inst✝⁶ : Semiring A₃'
inst✝⁵ : Algebra R A₁
inst✝⁴ : Algebra R A₂
inst✝³ : Algebra R A₃
inst✝² : Algebra R A₁'
inst✝¹ : Algebra R A₂'
inst✝ : Algebra R A₃'
e e₁ : A₁ ≃ₐ[R] A₂
e₁' : A₁' ≃ₐ[R] A₂'
e₂ : A₂ ≃ₐ[R] A₃
e₂' : A₂' ≃ₐ[R] A₃'
x✝¹ : A₁ →ₐ[R] A₁'
x✝ : A₃
⊢ (((e₁.trans e₂).arrowCongr (e₁'.trans e₂')) x✝¹) x✝ = (((e₁.arrowCongr e₁').trans (e₂.arrowCongr e₂')) x✝¹) x✝

tactic: rfl
state_before: case H.H
R : Type uR
A₁ : Type uA₁
A₂ : Type uA₂
A₃ : Type uA₃
A₁' : Type uA₁'
A₂' : Type uA₂'
A₃' : Type uA₃'
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A₁
inst✝¹⁰ : Semiring A₂
inst✝⁹ : Semiring A₃
inst✝⁸ : Semiring A₁'
inst✝⁷ : Semiring A₂'
inst✝⁶ : Semiring A₃'
inst✝⁵ : Algebra R A₁
inst✝⁴ : Algebra R A₂
inst✝³ : Algebra R A₃
inst✝² : Algebra R A₁'
inst✝¹ : Algebra R A₂'
inst✝ : Algebra R A₃'
e e₁ : A₁ ≃ₐ[R] A₂
e₁' : A₁' ≃ₐ[R] A₂'
e₂ : A₂ ≃ₐ[R] A₃
e₂' : A₂' ≃ₐ[R] A₃'
x✝¹ : A₁ →ₐ[R] A₁'
x✝ : A₃
⊢ (((e₁.trans e₂).arrowCongr (e₁'.trans e₂')) x✝¹) x✝ = (((e₁.arrowCongr e₁').trans (e₂.arrowCongr e₂')) x✝¹) x✝
state_after: no goals
Theorem: RCLike.normSq_pos
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: rw [lt_iff_le_and_ne, Ne, eq_comm]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z : K
⊢ 0 < normSq z ↔ z ≠ 0
state_after: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z : K
⊢ 0 ≤ normSq z ∧ ¬normSq z = 0 ↔ z ≠ 0

tactic: simp [normSq_nonneg]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z : K
⊢ 0 ≤ normSq z ∧ ¬normSq z = 0 ↔ z ≠ 0
state_after: no goals
Theorem: PFunctor.M.iselect_cons
File: Mathlib/Data/PFunctor/Univariate/M.lean

tactic: simp only [iselect, isubtree_cons]
state_before: F : PFunctor.{u}
X : Type u_1
f✝ : X → ↑F X
inst✝¹ : DecidableEq F.A
inst✝ : Inhabited F.M
ps : Path F
a : F.A
f : F.B a → F.M
i : F.B a
⊢ iselect (⟨a, i⟩ :: ps) (M.mk ⟨a, f⟩) = iselect ps (f i)
state_after: no goals
Theorem: AlgebraicIndependent.image
File: Mathlib/RingTheory/AlgebraicIndependent.lean

tactic: convert AlgebraicIndependent.image_of_comp s f id hs
state_before: ι✝ : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι✝ → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
ι : Type u_9
s : Set ι
f : ι → A
hs : AlgebraicIndependent R fun x => f ↑x
⊢ AlgebraicIndependent R fun x => ↑x
state_after: no goals
Theorem: NumberField.mixedEmbedding.convexBodyLT_mem
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean

tactic: simp_rw [mixedEmbedding, RingHom.prod_apply, Set.mem_prod, Set.mem_pi, Set.mem_univ,
  forall_true_left, mem_ball_zero_iff, Pi.ringHom_apply, ← Complex.norm_real,
  embedding_of_isReal_apply, Subtype.forall, ← forall₂_or_left, ← not_isReal_iff_isComplex, em,
  forall_true_left, norm_embedding_eq]
state_before: K : Type u_1
inst✝ : Field K
f : InfinitePlace K → ℝ≥0
x : K
⊢ (mixedEmbedding K) x ∈ convexBodyLT K f ↔ ∀ (w : InfinitePlace K), w x < ↑(f w)
state_after: no goals
Theorem: Filter.coprod_cocompact
File: Mathlib/Topology/Compactness/Compact.lean

tactic: apply le_antisymm
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ (cocompact X).coprod (cocompact Y) = cocompact (X × Y)
state_after: case a
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ (cocompact X).coprod (cocompact Y) ≤ cocompact (X × Y)

case a
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ cocompact (X × Y) ≤ (cocompact X).coprod (cocompact Y)

tactic: exact sup_le (comap_cocompact_le continuous_fst) (comap_cocompact_le continuous_snd)
state_before: case a
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ (cocompact X).coprod (cocompact Y) ≤ cocompact (X × Y)
state_after: no goals

tactic: refine (hasBasis_cocompact.coprod hasBasis_cocompact).ge_iff.2 fun K hK ↦ ?_
state_before: case a
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ cocompact (X × Y) ≤ (cocompact X).coprod (cocompact Y)
state_after: case a
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
K : Set X × Set Y
hK : IsCompact K.1 ∧ IsCompact K.2
⊢ Prod.fst ⁻¹' K.1ᶜ ∪ Prod.snd ⁻¹' K.2ᶜ ∈ cocompact (X × Y)

tactic: rw [← univ_prod, ← prod_univ, ← compl_prod_eq_union]
state_before: case a
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
K : Set X × Set Y
hK : IsCompact K.1 ∧ IsCompact K.2
⊢ Prod.fst ⁻¹' K.1ᶜ ∪ Prod.snd ⁻¹' K.2ᶜ ∈ cocompact (X × Y)
state_after: case a
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
K : Set X × Set Y
hK : IsCompact K.1 ∧ IsCompact K.2
⊢ (K.1 ×ˢ K.2)ᶜ ∈ cocompact (X × Y)

tactic: exact (hK.1.prod hK.2).compl_mem_cocompact
state_before: case a
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
K : Set X × Set Y
hK : IsCompact K.1 ∧ IsCompact K.2
⊢ (K.1 ×ˢ K.2)ᶜ ∈ cocompact (X × Y)
state_after: no goals
Theorem: Real.cos_pi_div_eight
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: trans cos (π / 2 ^ 3)
state_before: x : ℝ
⊢ cos (π / 8) = √(2 + √2) / 2
state_after: x : ℝ
⊢ cos (π / 8) = cos (π / 2 ^ 3)

x : ℝ
⊢ cos (π / 2 ^ 3) = √(2 + √2) / 2

tactic: congr
state_before: x : ℝ
⊢ cos (π / 8) = cos (π / 2 ^ 3)
state_after: case e_x.e_a
x : ℝ
⊢ 8 = 2 ^ 3

tactic: norm_num
state_before: case e_x.e_a
x : ℝ
⊢ 8 = 2 ^ 3
state_after: no goals

tactic: simp
state_before: x : ℝ
⊢ cos (π / 2 ^ 3) = √(2 + √2) / 2
state_after: no goals
Theorem: Equiv.Perm.exists_fixed_point_of_prime
File: Mathlib/GroupTheory/Perm/Cycle/Type.lean

tactic: classical
  contrapose! hα
  simp_rw [← mem_support, ← Finset.eq_univ_iff_forall] at hα
  exact Nat.modEq_zero_iff_dvd.1 ((congr_arg _ (Finset.card_eq_zero.2 (compl_eq_bot.2 hα))).mp
    (card_compl_support_modEq hσ).symm)
state_before: α : Type u_1
inst✝ : Fintype α
p n : ℕ
hp : Fact (Nat.Prime p)
hα : ¬p ∣ Fintype.card α
σ : Perm α
hσ : σ ^ p ^ n = 1
⊢ ∃ a, σ a = a
state_after: no goals

tactic: contrapose! hα
state_before: α : Type u_1
inst✝ : Fintype α
p n : ℕ
hp : Fact (Nat.Prime p)
hα : ¬p ∣ Fintype.card α
σ : Perm α
hσ : σ ^ p ^ n = 1
⊢ ∃ a, σ a = a
state_after: α : Type u_1
inst✝ : Fintype α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
hα : ∀ (a : α), σ a ≠ a
⊢ p ∣ Fintype.card α

tactic: simp_rw [← mem_support, ← Finset.eq_univ_iff_forall] at hα
state_before: α : Type u_1
inst✝ : Fintype α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
hα : ∀ (a : α), σ a ≠ a
⊢ p ∣ Fintype.card α
state_after: α : Type u_1
inst✝ : Fintype α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
hα : σ.support = Finset.univ
⊢ p ∣ Fintype.card α

tactic: exact Nat.modEq_zero_iff_dvd.1 ((congr_arg _ (Finset.card_eq_zero.2 (compl_eq_bot.2 hα))).mp
  (card_compl_support_modEq hσ).symm)
state_before: α : Type u_1
inst✝ : Fintype α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
hα : σ.support = Finset.univ
⊢ p ∣ Fintype.card α
state_after: no goals
Theorem: le_ciSup_iff'
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

tactic: simp [iSup, h, le_csSup_iff', upperBounds]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrderBot α
s✝ : Set α
f : ι → α
a✝ : α
s : ι → α
a : α
h : BddAbove (range s)
⊢ a ≤ iSup s ↔ ∀ (b : α), (∀ (i : ι), s i ≤ b) → a ≤ b
state_after: no goals
Theorem: Real.sign_of_pos
File: Mathlib/Data/Real/Sign.lean

tactic: rw [sign, if_pos hr, if_neg hr.not_lt]
state_before: r : ℝ
hr : 0 < r
⊢ r.sign = 1
state_after: no goals
Theorem: LucasLehmer.X.right_distrib
File: Mathlib/NumberTheory/LucasLehmer.lean

tactic: ext <;> dsimp <;> ring
state_before: q : ℕ+
x y z : X q
⊢ (x + y) * z = x * z + y * z
state_after: no goals
Theorem: Real.pi_lt_31416
File: Mathlib/Data/Real/Pi/Bounds.lean

tactic: pi_upper_bound
    [4756 / 3363, 101211 / 54775, 505534 / 257719, 83289 / 41846, 411278 / 205887,
      438142 / 219137, 451504 / 225769, 265603 / 132804, 849938 / 424971]
state_before: ⊢ π < 3.1416
state_after: no goals
Theorem: ProbabilityTheory.IsRatCondKernelCDFAux.bddBelow_range
File: Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean

tactic: filter_upwards [hf.nonneg a] with c hc
state_before: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α (β × ℝ))
ν : ↥(kernel α β)
f : α × β → ℚ → ℝ
hf : IsRatCondKernelCDFAux f κ ν
a : α
⊢ ∀ᵐ (t : β) ∂ν a, ∀ (q : ℚ), BddBelow (range fun r => f (a, t) ↑r)
state_after: case h
α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α (β × ℝ))
ν : ↥(kernel α β)
f : α × β → ℚ → ℝ
hf : IsRatCondKernelCDFAux f κ ν
a : α
c : β
hc : ∀ (q : ℚ), 0 ≤ f (a, c) q
⊢ ∀ (q : ℚ), BddBelow (range fun r => f (a, c) ↑r)

tactic: refine fun q ↦ ⟨0, ?_⟩
state_before: case h
α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α (β × ℝ))
ν : ↥(kernel α β)
f : α × β → ℚ → ℝ
hf : IsRatCondKernelCDFAux f κ ν
a : α
c : β
hc : ∀ (q : ℚ), 0 ≤ f (a, c) q
⊢ ∀ (q : ℚ), BddBelow (range fun r => f (a, c) ↑r)
state_after: case h
α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α (β × ℝ))
ν : ↥(kernel α β)
f : α × β → ℚ → ℝ
hf : IsRatCondKernelCDFAux f κ ν
a : α
c : β
hc : ∀ (q : ℚ), 0 ≤ f (a, c) q
q : ℚ
⊢ 0 ∈ lowerBounds (range fun r => f (a, c) ↑r)

tactic: simp [mem_lowerBounds, hc]
state_before: case h
α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α (β × ℝ))
ν : ↥(kernel α β)
f : α × β → ℚ → ℝ
hf : IsRatCondKernelCDFAux f κ ν
a : α
c : β
hc : ∀ (q : ℚ), 0 ≤ f (a, c) q
q : ℚ
⊢ 0 ∈ lowerBounds (range fun r => f (a, c) ↑r)
state_after: no goals
Theorem: Cubic.monic_of_d_eq_one
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: rw [Monic, leadingCoeff_of_c_eq_zero ha hb hc, hd]
state_before: R : Type u_1
S : Type u_2
F : Type u_3
K : Type u_4
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
ha : P.a = 0
hb : P.b = 0
hc : P.c = 0
hd : P.d = 1
⊢ P.toPoly.Monic
state_after: no goals
Theorem: quasiIso_of_comp_right
File: Mathlib/Algebra/Homology/QuasiIso.lean

tactic: rw [← quasiIso_iff_comp_right φ φ']
state_before: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
c : ComplexShape ι
K L M K' L' : HomologicalComplex C c
φ : K ⟶ L
φ' : L ⟶ M
inst✝² : ∀ (i : ι), K.HasHomology i
inst✝¹ : ∀ (i : ι), L.HasHomology i
inst✝ : ∀ (i : ι), M.HasHomology i
hφ : QuasiIso φ'
hφφ' : QuasiIso (φ ≫ φ')
⊢ QuasiIso φ
state_after: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
c : ComplexShape ι
K L M K' L' : HomologicalComplex C c
φ : K ⟶ L
φ' : L ⟶ M
inst✝² : ∀ (i : ι), K.HasHomology i
inst✝¹ : ∀ (i : ι), L.HasHomology i
inst✝ : ∀ (i : ι), M.HasHomology i
hφ : QuasiIso φ'
hφφ' : QuasiIso (φ ≫ φ')
⊢ QuasiIso (φ ≫ φ')

tactic: infer_instance
state_before: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
c : ComplexShape ι
K L M K' L' : HomologicalComplex C c
φ : K ⟶ L
φ' : L ⟶ M
inst✝² : ∀ (i : ι), K.HasHomology i
inst✝¹ : ∀ (i : ι), L.HasHomology i
inst✝ : ∀ (i : ι), M.HasHomology i
hφ : QuasiIso φ'
hφφ' : QuasiIso (φ ≫ φ')
⊢ QuasiIso (φ ≫ φ')
state_after: no goals
Theorem: Right.inv_le_one_iff
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [← mul_le_mul_iff_right a]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
⊢ a⁻¹ ≤ 1 ↔ 1 ≤ a
state_after: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
⊢ a⁻¹ * a ≤ 1 * a ↔ 1 ≤ a

tactic: simp
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
⊢ a⁻¹ * a ≤ 1 * a ↔ 1 ≤ a
state_after: no goals
Theorem: MeasureTheory.mul_meas_ge_le_lintegral₀
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: simpa only [lintegral_zero, zero_add] using
  lintegral_add_mul_meas_add_le_le_lintegral (ae_of_all _ fun x => zero_le (f x)) hf ε
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
hf : AEMeasurable f μ
ε : ℝ≥0∞
⊢ ε * μ {x | ε ≤ f x} ≤ ∫⁻ (a : α), f a ∂μ
state_after: no goals
Theorem: Complex.AbsTheory.abs_add
File: Mathlib/Data/Complex/Abs.lean

tactic: rw [mul_self_abs, add_mul_self_eq, mul_self_abs, mul_self_abs, add_right_comm, normSq_add,
  add_le_add_iff_left, mul_assoc, mul_le_mul_left (zero_lt_two' ℝ), ←
  Real.sqrt_mul <| normSq_nonneg z, ← normSq_conj w, ← map_mul]
state_before: z w : ℂ
⊢ ((abs z + w) * abs z + w) ≤ ((abs z) + abs w) * ((abs z) + abs w)
state_after: z w : ℂ
⊢ (z * (starRingEnd ℂ) w).re ≤ abs z * (starRingEnd ℂ) w

tactic: exact re_le_abs (z * conj w)
state_before: z w : ℂ
⊢ (z * (starRingEnd ℂ) w).re ≤ abs z * (starRingEnd ℂ) w
state_after: no goals
Theorem: Multiset.count_inter
File: Mathlib/Data/Multiset/Basic.lean

tactic: apply @Nat.add_left_cancel (count a (s - t))
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
a : α
s t : Multiset α
⊢ count a (s ∩ t) = min (count a s) (count a t)
state_after: case a
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
a : α
s t : Multiset α
⊢ count a (s - t) + count a (s ∩ t) = count a (s - t) + min (count a s) (count a t)

tactic: rw [← count_add, sub_add_inter, count_sub, Nat.sub_add_min_cancel]
state_before: case a
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
a : α
s t : Multiset α
⊢ count a (s - t) + count a (s ∩ t) = count a (s - t) + min (count a s) (count a t)
state_after: no goals
Theorem: ConvexOn.smul
File: Mathlib/Analysis/Convex/Function.lean

tactic: rw [smul_add, smul_comm c, smul_comm c]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
α : Type u_4
β : Type u_5
ι : Type u_6
inst✝⁵ : OrderedCommSemiring 𝕜
inst✝⁴ : AddCommMonoid E
inst✝³ : OrderedAddCommMonoid β
inst✝² : SMul 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f : E → β
c : 𝕜
hc : 0 ≤ c
hf : ConvexOn 𝕜 s f
x : E
hx : x ∈ s
y : E
hy : y ∈ s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ c • (a • f x + b • f y) = a • c • f x + b • c • f y
state_after: no goals
Theorem: Pullback.continuous_totalSpaceMk
File: Mathlib/Topology/FiberBundle/Constructions.lean

tactic: simp only [continuous_iff_le_induced, Pullback.TotalSpace.topologicalSpace, induced_compose,
  induced_inf, Function.comp, induced_const, top_inf_eq, pullbackTopology_def]
state_before: B : Type u
F : Type v
E : B → Type w₁
B' : Type w₂
f✝ : B' → B
inst✝⁵ : TopologicalSpace B'
inst✝⁴ : TopologicalSpace (TotalSpace F E)
inst✝³ : TopologicalSpace F
inst✝² : TopologicalSpace B
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
f : B' → B
x : B'
⊢ Continuous (TotalSpace.mk x)
state_after: B : Type u
F : Type v
E : B → Type w₁
B' : Type w₂
f✝ : B' → B
inst✝⁵ : TopologicalSpace B'
inst✝⁴ : TopologicalSpace (TotalSpace F E)
inst✝³ : TopologicalSpace F
inst✝² : TopologicalSpace B
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
f : B' → B
x : B'
⊢ instTopologicalSpacePullback E f x ≤ induced (fun x_1 => Pullback.lift f { proj := x, snd := x_1 }) inst✝⁴

tactic: exact le_of_eq (FiberBundle.totalSpaceMk_inducing F E (f x)).induced
state_before: B : Type u
F : Type v
E : B → Type w₁
B' : Type w₂
f✝ : B' → B
inst✝⁵ : TopologicalSpace B'
inst✝⁴ : TopologicalSpace (TotalSpace F E)
inst✝³ : TopologicalSpace F
inst✝² : TopologicalSpace B
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
f : B' → B
x : B'
⊢ instTopologicalSpacePullback E f x ≤ induced (fun x_1 => Pullback.lift f { proj := x, snd := x_1 }) inst✝⁴
state_after: no goals
Theorem: Multiset.prod_map_sum
File: Mathlib/Algebra/BigOperators/Ring/Multiset.lean

tactic: simp
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : CommSemiring α
s : Multiset (Multiset α)
⊢ (map sum 0).prod = (map prod (Sections 0)).sum
state_after: no goals

tactic: simp [ih, map_bind, sum_map_mul_left, sum_map_mul_right]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : CommSemiring α
s✝ : Multiset (Multiset α)
a : Multiset α
s : Multiset (Multiset α)
ih : (map sum s).prod = (map prod s.Sections).sum
⊢ (map sum (a ::ₘ s)).prod = (map prod (a ::ₘ s).Sections).sum
state_after: no goals
Theorem: Polynomial.prod_cyclotomic_eq_X_pow_sub_one
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean

tactic: have integer : ∏ i ∈ Nat.divisors n, cyclotomic i ℤ = X ^ n - 1 := by
  apply map_injective (Int.castRingHom ℂ) Int.cast_injective
  simp only [Polynomial.map_prod, int_cyclotomic_spec, Polynomial.map_pow, map_X,
    Polynomial.map_one, Polynomial.map_sub]
  exact prod_cyclotomic'_eq_X_pow_sub_one hpos (Complex.isPrimitiveRoot_exp n hpos.ne')
state_before: n : ℕ
hpos : 0 < n
R : Type u_1
inst✝ : CommRing R
⊢ ∏ i ∈ n.divisors, cyclotomic i R = X ^ n - 1
state_after: n : ℕ
hpos : 0 < n
R : Type u_1
inst✝ : CommRing R
integer : ∏ i ∈ n.divisors, cyclotomic i ℤ = X ^ n - 1
⊢ ∏ i ∈ n.divisors, cyclotomic i R = X ^ n - 1

tactic: simpa only [Polynomial.map_prod, map_cyclotomic_int, Polynomial.map_sub, Polynomial.map_one,
  Polynomial.map_pow, Polynomial.map_X] using congr_arg (map (Int.castRingHom R)) integer
state_before: n : ℕ
hpos : 0 < n
R : Type u_1
inst✝ : CommRing R
integer : ∏ i ∈ n.divisors, cyclotomic i ℤ = X ^ n - 1
⊢ ∏ i ∈ n.divisors, cyclotomic i R = X ^ n - 1
state_after: no goals

tactic: apply map_injective (Int.castRingHom ℂ) Int.cast_injective
state_before: n : ℕ
hpos : 0 < n
R : Type u_1
inst✝ : CommRing R
⊢ ∏ i ∈ n.divisors, cyclotomic i ℤ = X ^ n - 1
state_after: case a
n : ℕ
hpos : 0 < n
R : Type u_1
inst✝ : CommRing R
⊢ map (Int.castRingHom ℂ) (∏ i ∈ n.divisors, cyclotomic i ℤ) = map (Int.castRingHom ℂ) (X ^ n - 1)

tactic: simp only [Polynomial.map_prod, int_cyclotomic_spec, Polynomial.map_pow, map_X,
  Polynomial.map_one, Polynomial.map_sub]
state_before: case a
n : ℕ
hpos : 0 < n
R : Type u_1
inst✝ : CommRing R
⊢ map (Int.castRingHom ℂ) (∏ i ∈ n.divisors, cyclotomic i ℤ) = map (Int.castRingHom ℂ) (X ^ n - 1)
state_after: case a
n : ℕ
hpos : 0 < n
R : Type u_1
inst✝ : CommRing R
⊢ ∏ x ∈ n.divisors, cyclotomic' x ℂ = X ^ n - 1

tactic: exact prod_cyclotomic'_eq_X_pow_sub_one hpos (Complex.isPrimitiveRoot_exp n hpos.ne')
state_before: case a
n : ℕ
hpos : 0 < n
R : Type u_1
inst✝ : CommRing R
⊢ ∏ x ∈ n.divisors, cyclotomic' x ℂ = X ^ n - 1
state_after: no goals