tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.VectorMeasure.zero_le_restrict_not_measurable
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: rw [restrict_zero, restrict_not_measurable _ hi]
state_before: α : Type u_1
β : Type ?u.589378
m : MeasurableSpace α
M : Type u_2
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
v w : VectorMeasure α M
i j : Set α
hi : ¬MeasurableSet i
⊢ restrict 0 i ≤ restrict v i
Theorem: Lists'.mem_cons
File: Mathlib/SetTheory/Lists.lean

tactic: simp [mem_def, or_and_right, exists_or]
state_before: α : Type u_1
a y : Lists α
l : Lists' α true
⊢ a ∈ cons y l ↔ a ~ y ∨ a ∈ l
Theorem: Nat.add_div_eq_of_le_mod_add_mod
File: Mathlib/Data/Nat/ModEq.lean

tactic: rw [add_div hc0, if_pos hc]
state_before: m n a✝ b✝ c✝ d a b c : ℕ
hc : c ≤ a % c + b % c
hc0 : 0 < c
⊢ (a + b) / c = a / c + b / c + 1
Theorem: Measurable.max
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean

tactic: simpa only [max_def'] using hf.piecewise (measurableSet_le hg hf) hg
state_before: α : Type u_2
β : Type ?u.710602
γ : Type ?u.710605
γ₂ : Type ?u.710608
δ : Type u_1
ι : Sort y
s t u : Set α
inst✝¹⁷ : TopologicalSpace α
inst✝¹⁶ : MeasurableSpace α
inst✝¹⁵ : OpensMeasurableSpace α
inst✝¹⁴ : TopologicalSpace β
inst✝¹³ : MeasurableSpace β
inst✝¹² : OpensMeasurableSpace β
inst✝¹¹ : TopologicalSpace γ
inst✝¹⁰ : MeasurableSpace γ
inst✝⁹ : BorelSpace γ
inst✝⁸ : TopologicalSpace γ₂
inst✝⁷ : MeasurableSpace γ₂
inst✝⁶ : BorelSpace γ₂
inst✝⁵ : MeasurableSpace δ
α' : Type ?u.710704
inst✝⁴ : TopologicalSpace α'
inst✝³ : MeasurableSpace α'
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a b : α
inst✝ : SecondCountableTopology α
f g : δ → α
hf : Measurable f
hg : Measurable g
⊢ Measurable fun a => Max.max (f a) (g a)
Theorem: HasCompactMulSupport.exists_pos_le_norm
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: obtain ⟨K, ⟨hK1, hK2⟩⟩ := exists_compact_iff_hasCompactMulSupport.mpr hf
state_before: 𝓕 : Type ?u.1239473
𝕜 : Type ?u.1239476
α : Type u_2
ι : Type ?u.1239482
κ : Type ?u.1239485
E : Type u_1
F : Type ?u.1239491
G : Type ?u.1239494
inst✝¹ : NormedAddGroup α
f : α → E
inst✝ : One E
hf : HasCompactMulSupport f
⊢ ∃ R, 0 < R ∧ ∀ (x : α), R ≤ ‖x‖ → f x = 1

tactic: obtain ⟨S, hS, hS'⟩ := hK1.bounded.exists_pos_norm_le
state_before: case intro.intro
𝓕 : Type ?u.1239473
𝕜 : Type ?u.1239476
α : Type u_2
ι : Type ?u.1239482
κ : Type ?u.1239485
E : Type u_1
F : Type ?u.1239491
G : Type ?u.1239494
inst✝¹ : NormedAddGroup α
f : α → E
inst✝ : One E
hf : HasCompactMulSupport f
K : Set α
hK1 : IsCompact K
hK2 : ∀ (x : α), ¬x ∈ K → f x = 1
⊢ ∃ R, 0 < R ∧ ∀ (x : α), R ≤ ‖x‖ → f x = 1

tactic: refine' ⟨S + 1, by positivity, fun x hx => hK2 x ((mt <| hS' x) _)⟩
state_before: case intro.intro.intro.intro
𝓕 : Type ?u.1239473
𝕜 : Type ?u.1239476
α : Type u_2
ι : Type ?u.1239482
κ : Type ?u.1239485
E : Type u_1
F : Type ?u.1239491
G : Type ?u.1239494
inst✝¹ : NormedAddGroup α
f : α → E
inst✝ : One E
hf : HasCompactMulSupport f
K : Set α
hK1 : IsCompact K
hK2 : ∀ (x : α), ¬x ∈ K → f x = 1
S : ℝ
hS : S > 0
hS' : ∀ (x : α), x ∈ K → ‖x‖ ≤ S
⊢ ∃ R, 0 < R ∧ ∀ (x : α), R ≤ ‖x‖ → f x = 1

tactic: contrapose! hx
state_before: case intro.intro.intro.intro
𝓕 : Type ?u.1239473
𝕜 : Type ?u.1239476
α : Type u_2
ι : Type ?u.1239482
κ : Type ?u.1239485
E : Type u_1
F : Type ?u.1239491
G : Type ?u.1239494
inst✝¹ : NormedAddGroup α
f : α → E
inst✝ : One E
hf : HasCompactMulSupport f
K : Set α
hK1 : IsCompact K
hK2 : ∀ (x : α), ¬x ∈ K → f x = 1
S : ℝ
hS : S > 0
hS' : ∀ (x : α), x ∈ K → ‖x‖ ≤ S
x : α
hx : S + 1 ≤ ‖x‖
⊢ ¬‖x‖ ≤ S

tactic: exact lt_add_of_le_of_pos hx zero_lt_one
state_before: case intro.intro.intro.intro
𝓕 : Type ?u.1239473
𝕜 : Type ?u.1239476
α : Type u_2
ι : Type ?u.1239482
κ : Type ?u.1239485
E : Type u_1
F : Type ?u.1239491
G : Type ?u.1239494
inst✝¹ : NormedAddGroup α
f : α → E
inst✝ : One E
hf : HasCompactMulSupport f
K : Set α
hK1 : IsCompact K
hK2 : ∀ (x : α), ¬x ∈ K → f x = 1
S : ℝ
hS : S > 0
hS' : ∀ (x : α), x ∈ K → ‖x‖ ≤ S
x : α
hx : ‖x‖ ≤ S
⊢ ‖x‖ < S + 1

tactic: positivity
state_before: 𝓕 : Type ?u.1239473
𝕜 : Type ?u.1239476
α : Type u_2
ι : Type ?u.1239482
κ : Type ?u.1239485
E : Type u_1
F : Type ?u.1239491
G : Type ?u.1239494
inst✝¹ : NormedAddGroup α
f : α → E
inst✝ : One E
hf : HasCompactMulSupport f
K : Set α
hK1 : IsCompact K
hK2 : ∀ (x : α), ¬x ∈ K → f x = 1
S : ℝ
hS : S > 0
hS' : ∀ (x : α), x ∈ K → ‖x‖ ≤ S
⊢ 0 < S + 1
Theorem: Equiv.Perm.IsCycleOn.apply_mem_iff
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: convert hf.1.perm_inv.1 hx
state_before: ι : Type ?u.1652962
α : Type u_1
β : Type ?u.1652968
f g : Perm α
s t : Set α
a b x y : α
hf : IsCycleOn f s
hx : ↑f x ∈ s
⊢ x ∈ s

tactic: rw [inv_apply_self]
state_before: case h.e'_4
ι : Type ?u.1652962
α : Type u_1
β : Type ?u.1652968
f g : Perm α
s t : Set α
a b x y : α
hf : IsCycleOn f s
hx : ↑f x ∈ s
⊢ x = ↑f⁻¹ (↑f x)
Theorem: RingEquiv.coe_nonUnitalRingHom_inj_iff
File: Mathlib/Algebra/Ring/Equiv.lean

tactic: rw [h]
state_before: F : Type ?u.82658
α : Type ?u.82661
β : Type ?u.82664
R✝ : Type ?u.82667
S✝ : Type ?u.82670
S' : Type ?u.82673
inst✝⁴ : NonUnitalNonAssocSemiring R✝
inst✝³ : NonUnitalNonAssocSemiring S✝
inst✝² : NonUnitalNonAssocSemiring S'
R : Type u_1
S : Type u_2
inst✝¹ : NonUnitalNonAssocSemiring R
inst✝ : NonUnitalNonAssocSemiring S
f g : R ≃+* S
h : f = g
⊢ ↑f = ↑g
Theorem: mem_segment_translate
File: Mathlib/Analysis/Convex/Segment.lean

tactic: simp_rw [← vadd_eq_add, ← vadd_segment, vadd_mem_vadd_set_iff]
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.127506
G : Type ?u.127509
ι : Type ?u.127512
π : ι → Type ?u.127517
inst✝⁵ : OrderedRing 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : AddCommGroup F
inst✝² : AddCommGroup G
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
a x b c : E
⊢ a + x ∈ [a + b-[𝕜]a + c] ↔ x ∈ [b-[𝕜]c]
Theorem: UniformEquiv.uniformInducing
File: Mathlib/Topology/UniformSpace/Equiv.lean

tactic: simp only [symm_comp_self, uniformInducing_id]
state_before: α : Type u
β : Type u_1
γ : Type ?u.411266
δ : Type ?u.411269
inst✝³ : UniformSpace α
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : UniformSpace δ
h : α ≃ᵤ β
⊢ UniformInducing (↑(UniformEquiv.symm h) ∘ ↑h)
Theorem: Set.ncard_diff_singleton_add_one
File: Mathlib/Data/Set/Ncard.lean

tactic: have h' : a ∉ s \ {a} := by rw [mem_diff_singleton]; tauto
state_before: α : Type u_1
β : Type ?u.13732
s t : Set α
a b x y : α
f : α → β
h : a ∈ s
hs : autoParam (Set.Finite s) _auto✝
⊢ ncard (s \ {a}) + 1 = ncard s

tactic: rw [← ncard_insert_of_not_mem h' (hs.diff {a})]
state_before: α : Type u_1
β : Type ?u.13732
s t : Set α
a b x y : α
f : α → β
h : a ∈ s
hs : autoParam (Set.Finite s) _auto✝
h' : ¬a ∈ s \ {a}
⊢ ncard (s \ {a}) + 1 = ncard s

tactic: congr
state_before: α : Type u_1
β : Type ?u.13732
s t : Set α
a b x y : α
f : α → β
h : a ∈ s
hs : autoParam (Set.Finite s) _auto✝
h' : ¬a ∈ s \ {a}
⊢ ncard (insert a (s \ {a})) = ncard s

tactic: simpa
state_before: case e_s
α : Type u_1
β : Type ?u.13732
s t : Set α
a b x y : α
f : α → β
h : a ∈ s
hs : autoParam (Set.Finite s) _auto✝
h' : ¬a ∈ s \ {a}
⊢ insert a (s \ {a}) = s

tactic: rw [mem_diff_singleton]
state_before: α : Type u_1
β : Type ?u.13732
s t : Set α
a b x y : α
f : α → β
h : a ∈ s
hs : autoParam (Set.Finite s) _auto✝
⊢ ¬a ∈ s \ {a}

tactic: tauto
state_before: α : Type u_1
β : Type ?u.13732
s t : Set α
a b x y : α
f : α → β
h : a ∈ s
hs : autoParam (Set.Finite s) _auto✝
⊢ ¬(a ∈ s ∧ a ≠ a)
Theorem: Pi.le_toLex_update_self_iff
File: Mathlib/Data/Pi/Lex.lean

tactic: simp_rw [le_iff_lt_or_eq, lt_toLex_update_self_iff, toLex_inj, eq_update_self_iff]
state_before: ι : Type u_1
β : ι → Type u_2
r : ι → ι → Prop
s : {i : ι} → β i → β i → Prop
inst✝² : LinearOrder ι
inst✝¹ : IsWellOrder ι fun x x_1 => x < x_1
inst✝ : (i : ι) → PartialOrder (β i)
x y : (i : ι) → β i
i : ι
a : β i
⊢ ↑toLex x ≤ ↑toLex (update x i a) ↔ x i ≤ a
Theorem: CategoryTheory.Limits.fst_of_isColimit
File: Mathlib/CategoryTheory/Preadditive/Biproducts.lean

tactic: apply ht.uniq (BinaryCofan.mk (𝟙 X) 0)
state_before: C : Type u
inst✝² : Category C
inst✝¹ : Preadditive C
J : Type
inst✝ : Fintype J
X Y : C
t : BinaryBicone X Y
ht : IsColimit (BinaryBicone.toCocone t)
⊢ t.fst = IsColimit.desc ht (BinaryCofan.mk (𝟙 X) 0)

tactic: rintro ⟨⟨⟩⟩ <;> dsimp <;> simp
state_before: case x
C : Type u
inst✝² : Category C
inst✝¹ : Preadditive C
J : Type
inst✝ : Fintype J
X Y : C
t : BinaryBicone X Y
ht : IsColimit (BinaryBicone.toCocone t)
⊢ ∀ (j : Discrete WalkingPair), (BinaryBicone.toCocone t).ι.app j ≫ t.fst = (BinaryCofan.mk (𝟙 X) 0).ι.app j
Theorem: toIxxMod_total'
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simp only [add_add_add_comm] at this
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
this :
  (fun x x_1 => x + x_1) (toIcoMod hp 0 (a - b) + toIocMod hp 0 (b - a))
      (toIcoMod hp 0 (c - b) + toIocMod hp 0 (b - c)) =
    (fun x x_1 => x + x_1) p p
⊢ toIcoMod hp b a ≤ toIocMod hp b c ∨ toIcoMod hp b c ≤ toIocMod hp b a

tactic: rw [_root_.add_comm (toIocMod _ _ _), add_add_add_comm, ← two_nsmul] at this
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
this : toIcoMod hp 0 (a - b) + toIcoMod hp 0 (c - b) + (toIocMod hp 0 (b - a) + toIocMod hp 0 (b - c)) = p + p
⊢ toIcoMod hp b a ≤ toIocMod hp b c ∨ toIcoMod hp b c ≤ toIocMod hp b a

tactic: replace := min_le_of_add_le_two_nsmul this.le
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
this : toIcoMod hp 0 (a - b) + toIocMod hp 0 (b - c) + (toIcoMod hp 0 (c - b) + toIocMod hp 0 (b - a)) = 2 • p
⊢ toIcoMod hp b a ≤ toIocMod hp b c ∨ toIcoMod hp b c ≤ toIocMod hp b a

tactic: rw [min_le_iff] at this
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
this : min (toIcoMod hp 0 (a - b) + toIocMod hp 0 (b - c)) (toIcoMod hp 0 (c - b) + toIocMod hp 0 (b - a)) ≤ p
⊢ toIcoMod hp b a ≤ toIocMod hp b c ∨ toIcoMod hp b c ≤ toIocMod hp b a

tactic: rw [toIxxMod_iff, toIxxMod_iff]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
this : toIcoMod hp 0 (a - b) + toIocMod hp 0 (b - c) ≤ p ∨ toIcoMod hp 0 (c - b) + toIocMod hp 0 (b - a) ≤ p
⊢ toIcoMod hp b a ≤ toIocMod hp b c ∨ toIcoMod hp b c ≤ toIocMod hp b a

tactic: refine' this.imp (le_trans <| add_le_add_left _ _) (le_trans <| add_le_add_left _ _)
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
this : toIcoMod hp 0 (a - b) + toIocMod hp 0 (b - c) ≤ p ∨ toIcoMod hp 0 (c - b) + toIocMod hp 0 (b - a) ≤ p
⊢ toIcoMod hp 0 (a - b) + toIcoMod hp 0 (b - c) ≤ p ∨ toIcoMod hp 0 (c - b) + toIcoMod hp 0 (b - a) ≤ p

tactic: apply toIcoMod_le_toIocMod
state_before: case refine'_1
α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
this : toIcoMod hp 0 (a - b) + toIocMod hp 0 (b - c) ≤ p ∨ toIcoMod hp 0 (c - b) + toIocMod hp 0 (b - a) ≤ p
⊢ toIcoMod hp 0 (b - c) ≤ toIocMod hp 0 (b - c)

tactic: apply toIcoMod_le_toIocMod
state_before: case refine'_2
α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
this : toIcoMod hp 0 (a - b) + toIocMod hp 0 (b - c) ≤ p ∨ toIcoMod hp 0 (c - b) + toIocMod hp 0 (b - a) ≤ p
⊢ toIcoMod hp 0 (b - a) ≤ toIocMod hp 0 (b - a)
Theorem: Int.mul_le_mul_of_nonneg_right
File: Std/Data/Int/Lemmas.lean

tactic: rw [Int.mul_comm, Int.mul_comm b]
state_before: a b c : Int
h₁ : a ≤ b
h₂ : 0 ≤ c
⊢ a * c ≤ b * c

tactic: exact Int.mul_le_mul_of_nonneg_left h₁ h₂
state_before: a b c : Int
h₁ : a ≤ b
h₂ : 0 ≤ c
⊢ c * a ≤ c * b
Theorem: Pretrivialization.mem_target
File: Mathlib/Topology/FiberBundle/Trivialization.lean

tactic: rw [e.target_eq, prod_univ, mem_preimage]
state_before: ι : Type ?u.6519
B : Type u_1
F : Type u_2
E : B → Type ?u.6530
Z : Type u_3
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
x : B × F
⊢ x ∈ e.target ↔ x.fst ∈ e.baseSet
Theorem: Seminorm.smul_sup
File: Mathlib/Analysis/Seminorm.lean

tactic: simpa only [← smul_eq_mul, ← NNReal.smul_def, smul_one_smul ℝ≥0 r (_ : ℝ)] using
  mul_max_of_nonneg x y (r • (1 : ℝ≥0) : ℝ≥0).coe_nonneg
state_before: R : Type u_1
R' : Type ?u.213053
𝕜 : Type u_2
𝕜₂ : Type ?u.213059
𝕜₃ : Type ?u.213062
𝕝 : Type ?u.213065
E : Type u_3
E₂ : Type ?u.213071
E₃ : Type ?u.213074
F : Type ?u.213077
G : Type ?u.213080
ι : Type ?u.213083
inst✝⁵ : SeminormedRing 𝕜
inst✝⁴ : AddGroup E
inst✝³ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
c : 𝕜
x✝ y✝ : E
r✝ : ℝ
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
r : R
p q : Seminorm 𝕜 E
x y : ℝ
⊢ r • max x y = max (r • x) (r • y)
Theorem: Polynomial.degree_neg
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: unfold degree
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Ring R
p : R[X]
⊢ degree (-p) = degree p

tactic: rw [support_neg]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Ring R
p : R[X]
⊢ Finset.max (support (-p)) = Finset.max (support p)
Theorem: Irreducible.separable
File: Mathlib/FieldTheory/Separable.lean

tactic: rw [separable_iff_derivative_ne_zero hf, Ne, ← degree_eq_bot, degree_derivative_eq]
state_before: F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
inst✝ : CharZero F
f : F[X]
hf : Irreducible f
⊢ Separable f

tactic: rw [pos_iff_ne_zero, Ne, natDegree_eq_zero_iff_degree_le_zero, degree_le_zero_iff]
state_before: case hp
F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
inst✝ : CharZero F
f : F[X]
hf : Irreducible f
⊢ 0 < natDegree f

tactic: refine' fun hf1 => hf.not_unit _
state_before: case hp
F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
inst✝ : CharZero F
f : F[X]
hf : Irreducible f
⊢ ¬f = ↑C (coeff f 0)

tactic: rw [hf1, isUnit_C, isUnit_iff_ne_zero]
state_before: case hp
F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
inst✝ : CharZero F
f : F[X]
hf : Irreducible f
hf1 : f = ↑C (coeff f 0)
⊢ IsUnit f

tactic: intro hf2
state_before: case hp
F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
inst✝ : CharZero F
f : F[X]
hf : Irreducible f
hf1 : f = ↑C (coeff f 0)
⊢ coeff f 0 ≠ 0

tactic: rw [hf2, C_0] at hf1
state_before: case hp
F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
inst✝ : CharZero F
f : F[X]
hf : Irreducible f
hf1 : f = ↑C (coeff f 0)
hf2 : coeff f 0 = 0
⊢ False

tactic: exact absurd hf1 hf.ne_zero
state_before: case hp
F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
inst✝ : CharZero F
f : F[X]
hf : Irreducible f
hf1 : f = 0
hf2 : coeff f 0 = 0
⊢ False

tactic: rintro ⟨⟩
state_before: F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
inst✝ : CharZero F
f : F[X]
hf : Irreducible f
⊢ ¬↑(natDegree f - 1) = ⊥
Theorem: le_iff_le_of_cmp_eq_cmp
File: Mathlib/Order/Compare.lean

tactic: rw [← not_lt, ← not_lt]
state_before: α : Type u_1
β✝ : Type ?u.20401
inst✝¹ : LinearOrder α
x y : α
β : Type u_2
inst✝ : LinearOrder β
x' y' : β
h : cmp x y = cmp x' y'
⊢ x ≤ y ↔ x' ≤ y'

tactic: apply not_congr
state_before: α : Type u_1
β✝ : Type ?u.20401
inst✝¹ : LinearOrder α
x y : α
β : Type u_2
inst✝ : LinearOrder β
x' y' : β
h : cmp x y = cmp x' y'
⊢ ¬y < x ↔ ¬y' < x'

tactic: apply lt_iff_lt_of_cmp_eq_cmp
state_before: case h
α : Type u_1
β✝ : Type ?u.20401
inst✝¹ : LinearOrder α
x y : α
β : Type u_2
inst✝ : LinearOrder β
x' y' : β
h : cmp x y = cmp x' y'
⊢ y < x ↔ y' < x'

tactic: rwa [cmp_eq_cmp_symm]
state_before: case h.h
α : Type u_1
β✝ : Type ?u.20401
inst✝¹ : LinearOrder α
x y : α
β : Type u_2
inst✝ : LinearOrder β
x' y' : β
h : cmp x y = cmp x' y'
⊢ cmp y x = cmp y' x'
Theorem: Polynomial.eq_one_of_roots_le
File: Mathlib/Topology/Algebra/Polynomial.lean

tactic: contrapose! hB
state_before: α : Type ?u.181042
R : Type ?u.181045
inst✝³ : NormedRing R
inst✝² : IsAbsoluteValue norm
F : Type u_1
K : Type u_2
inst✝¹ : CommRing F
inst✝ : NormedField K
p : F[X]
f : F →+* K
B : ℝ
hB : B < 0
h1 : Monic p
h2 : Splits f p
h3 : ∀ (z : K), z ∈ roots (map f p) → ‖z‖ ≤ B
⊢ natDegree p = 0

tactic: rw [← h1.natDegree_map f, natDegree_eq_card_roots' h2] at hB
state_before: α : Type ?u.181042
R : Type ?u.181045
inst✝³ : NormedRing R
inst✝² : IsAbsoluteValue norm
F : Type u_1
K : Type u_2
inst✝¹ : CommRing F
inst✝ : NormedField K
p : F[X]
f : F →+* K
B : ℝ
h1 : Monic p
h2 : Splits f p
h3 : ∀ (z : K), z ∈ roots (map f p) → ‖z‖ ≤ B
hB : natDegree p ≠ 0
⊢ 0 ≤ B

tactic: obtain ⟨z, hz⟩ := card_pos_iff_exists_mem.mp (zero_lt_iff.mpr hB)
state_before: α : Type ?u.181042
R : Type ?u.181045
inst✝³ : NormedRing R
inst✝² : IsAbsoluteValue norm
F : Type u_1
K : Type u_2
inst✝¹ : CommRing F
inst✝ : NormedField K
p : F[X]
f : F →+* K
B : ℝ
h1 : Monic p
h2 : Splits f p
h3 : ∀ (z : K), z ∈ roots (map f p) → ‖z‖ ≤ B
hB : ↑card (roots (map f p)) ≠ 0
⊢ 0 ≤ B

tactic: exact le_trans (norm_nonneg _) (h3 z hz)
state_before: case intro
α : Type ?u.181042
R : Type ?u.181045
inst✝³ : NormedRing R
inst✝² : IsAbsoluteValue norm
F : Type u_1
K : Type u_2
inst✝¹ : CommRing F
inst✝ : NormedField K
p : F[X]
f : F →+* K
B : ℝ
h1 : Monic p
h2 : Splits f p
h3 : ∀ (z : K), z ∈ roots (map f p) → ‖z‖ ≤ B
hB : ↑card (roots (map f p)) ≠ 0
z : K
hz : z ∈ roots (map f p)
⊢ 0 ≤ B
Theorem: Ordinal.familyOfBFamily_enum
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: convert hi
state_before: α : Type ?u.272202
β : Type ?u.272205
γ : Type ?u.272208
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
f : (a : Ordinal) → a < o → α
i : Ordinal
hi : i < o
⊢ i < type fun x x_1 => x < x_1

tactic: exact type_lt _
state_before: case h.e'_4
α : Type ?u.272202
β : Type ?u.272205
γ : Type ?u.272208
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
f : (a : Ordinal) → a < o → α
i : Ordinal
hi : i < o
⊢ (type fun x x_1 => x < x_1) = o
Theorem: Nat.prod_div_divisors
File: Mathlib/NumberTheory/Divisors.lean

tactic: by_cases hn : n = 0
state_before: n✝ : ℕ
α : Type u_1
inst✝ : CommMonoid α
n : ℕ
f : ℕ → α
⊢ ∏ d in divisors n, f (n / d) = Finset.prod (divisors n) f

tactic: rw [← prod_image]
state_before: case neg
n✝ : ℕ
α : Type u_1
inst✝ : CommMonoid α
n : ℕ
f : ℕ → α
hn : ¬n = 0
⊢ ∏ d in divisors n, f (n / d) = Finset.prod (divisors n) f

tactic: simp [hn]
state_before: case pos
n✝ : ℕ
α : Type u_1
inst✝ : CommMonoid α
n : ℕ
f : ℕ → α
hn : n = 0
⊢ ∏ d in divisors n, f (n / d) = Finset.prod (divisors n) f

tactic: exact prod_congr (image_div_divisors_eq_divisors n) (by simp)
state_before: case neg
n✝ : ℕ
α : Type u_1
inst✝ : CommMonoid α
n : ℕ
f : ℕ → α
hn : ¬n = 0
⊢ ∏ x in image (fun d => n / d) (divisors n), f x = Finset.prod (divisors n) f

tactic: simp
state_before: n✝ : ℕ
α : Type u_1
inst✝ : CommMonoid α
n : ℕ
f : ℕ → α
hn : ¬n = 0
⊢ ∀ (x : ℕ), x ∈ divisors n → f x = f x

tactic: intro x hx y hy h
state_before: case neg
n✝ : ℕ
α : Type u_1
inst✝ : CommMonoid α
n : ℕ
f : ℕ → α
hn : ¬n = 0
⊢ ∀ (x : ℕ), x ∈ divisors n → ∀ (y : ℕ), y ∈ divisors n → n / x = n / y → x = y

tactic: rw [mem_divisors] at hx hy
state_before: case neg
n✝ : ℕ
α : Type u_1
inst✝ : CommMonoid α
n : ℕ
f : ℕ → α
hn : ¬n = 0
x : ℕ
hx : x ∈ divisors n
y : ℕ
hy : y ∈ divisors n
h : n / x = n / y
⊢ x = y

tactic: exact (div_eq_iff_eq_of_dvd_dvd hn hx.1 hy.1).mp h
state_before: case neg
n✝ : ℕ
α : Type u_1
inst✝ : CommMonoid α
n : ℕ
f : ℕ → α
hn : ¬n = 0
x : ℕ
hx : x ∣ n ∧ n ≠ 0
y : ℕ
hy : y ∣ n ∧ n ≠ 0
h : n / x = n / y
⊢ x = y
Theorem: Algebra.mem_sInf
File: Mathlib/Algebra/Algebra/Subalgebra/Basic.lean

tactic: simp only [← SetLike.mem_coe, coe_sInf, Set.mem_iInter₂]
state_before: R : Type u
A : Type v
B : Type w
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : Semiring B
inst✝ : Algebra R B
S : Set (Subalgebra R A)
x : A
⊢ x ∈ sInf S ↔ ∀ (p : Subalgebra R A), p ∈ S → x ∈ p
Theorem: Hyperreal.not_infinite_real
File: Mathlib/Data/Real/Hyperreal.lean

tactic: rw [not_infinite_iff_exist_lt_gt]
state_before: r : ℝ
⊢ ¬Infinite ↑r

tactic: exact ⟨r - 1, r + 1, coe_lt_coe.2 <| sub_one_lt r, coe_lt_coe.2 <| lt_add_one r⟩
state_before: r : ℝ
⊢ ∃ r_1 s, ↑r_1 < ↑r ∧ ↑r < ↑s
Theorem: CochainComplex.prev_nat_zero
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

tactic: classical
  refine' dif_neg _
  push_neg
  intro
  apply Nat.noConfusion
state_before: ι : Type ?u.8519
V : Type u
inst✝¹ : Category V
inst✝ : HasZeroMorphisms V
⊢ ComplexShape.prev (ComplexShape.up ℕ) 0 = 0

tactic: refine' dif_neg _
state_before: ι : Type ?u.8519
V : Type u
inst✝¹ : Category V
inst✝ : HasZeroMorphisms V
⊢ ComplexShape.prev (ComplexShape.up ℕ) 0 = 0

tactic: push_neg
state_before: ι : Type ?u.8519
V : Type u
inst✝¹ : Category V
inst✝ : HasZeroMorphisms V
⊢ ¬∃ i, ComplexShape.Rel (ComplexShape.up ℕ) i 0

tactic: intro
state_before: ι : Type ?u.8519
V : Type u
inst✝¹ : Category V
inst✝ : HasZeroMorphisms V
⊢ ∀ (i : ℕ), ¬ComplexShape.Rel (ComplexShape.up ℕ) i 0

tactic: apply Nat.noConfusion
state_before: ι : Type ?u.8519
V : Type u
inst✝¹ : Category V
inst✝ : HasZeroMorphisms V
i✝ : ℕ
⊢ ¬ComplexShape.Rel (ComplexShape.up ℕ) i✝ 0
Theorem: ContinuousMap.polynomial_comp_attachBound
File: Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean

tactic: ext
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : CompactSpace X
A : Subalgebra ℝ C(X, ℝ)
f : { x // x ∈ A }
g : ℝ[X]
⊢ comp (Polynomial.toContinuousMapOn g (Set.Icc (-‖f‖) ‖f‖)) (attachBound ↑f) = ↑(↑(Polynomial.aeval f) g)

tactic: simp only [ContinuousMap.coe_comp, Function.comp_apply, ContinuousMap.attachBound_apply_coe,
  Polynomial.toContinuousMapOn_apply, Polynomial.aeval_subalgebra_coe,
  Polynomial.aeval_continuousMap_apply, Polynomial.toContinuousMap_apply]
state_before: case h
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : CompactSpace X
A : Subalgebra ℝ C(X, ℝ)
f : { x // x ∈ A }
g : ℝ[X]
a✝ : X
⊢ ↑(comp (Polynomial.toContinuousMapOn g (Set.Icc (-‖f‖) ‖f‖)) (attachBound ↑f)) a✝ = ↑↑(↑(Polynomial.aeval f) g) a✝
Theorem: Set.IsWf.min_mul
File: Mathlib/Data/Finset/MulAntidiagonal.lean

tactic: refine' le_antisymm (IsWf.min_le _ _ (mem_mul.2 ⟨_, _, hs.min_mem _, ht.min_mem _, rfl⟩)) _
state_before: α : Type u_1
s t : Set α
inst✝ : LinearOrderedCancelCommMonoid α
hs : IsWf s
ht : IsWf t
hsn : Set.Nonempty s
htn : Set.Nonempty t
⊢ min (_ : IsWf (s * t)) (_ : Set.Nonempty (s * t)) = min hs hsn * min ht htn

tactic: rw [IsWf.le_min_iff]
state_before: α : Type u_1
s t : Set α
inst✝ : LinearOrderedCancelCommMonoid α
hs : IsWf s
ht : IsWf t
hsn : Set.Nonempty s
htn : Set.Nonempty t
⊢ min hs hsn * min ht htn ≤ min (_ : IsWf (s * t)) (_ : Set.Nonempty (s * t))

tactic: rintro _ ⟨x, y, hx, hy, rfl⟩
state_before: α : Type u_1
s t : Set α
inst✝ : LinearOrderedCancelCommMonoid α
hs : IsWf s
ht : IsWf t
hsn : Set.Nonempty s
htn : Set.Nonempty t
⊢ ∀ (b : α), b ∈ s * t → min hs hsn * min ht htn ≤ b

tactic: exact mul_le_mul' (hs.min_le _ hx) (ht.min_le _ hy)
state_before: case intro.intro.intro.intro
α : Type u_1
s t : Set α
inst✝ : LinearOrderedCancelCommMonoid α
hs : IsWf s
ht : IsWf t
hsn : Set.Nonempty s
htn : Set.Nonempty t
x y : α
hx : x ∈ s
hy : y ∈ t
⊢ min hs hsn * min ht htn ≤ (fun x x_1 => x * x_1) x y
Theorem: EReal.embedding_coe
File: Mathlib/Topology/Instances/EReal.lean

tactic: rw [range_coe_eq_Ioo]
state_before: α : Type ?u.1666
inst✝ : TopologicalSpace α
⊢ OrdConnected (range Real.toEReal)

tactic: exact ordConnected_Ioo
state_before: α : Type ?u.1666
inst✝ : TopologicalSpace α
⊢ OrdConnected (Ioo ⊥ ⊤)