1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Nat.dvd_ofDigits_sub_ofDigits
File: Mathlib/Data/Nat/Digits.lean

tactic: induction' L with d L ih
state_before: n : ℕ
α : Type u_1
inst✝ : CommRing α
a b k : α
h : k ∣ a - b
L : List ℕ
⊢ k ∣ ofDigits a L - ofDigits b L
state_after: case nil
n : ℕ
α : Type u_1
inst✝ : CommRing α
a b k : α
h : k ∣ a - b
⊢ k ∣ ofDigits a [] - ofDigits b []

case cons
n : ℕ
α : Type u_1
inst✝ : CommRing α
a b k : α
h : k ∣ a - b
d : ℕ
L : List ℕ
ih : k ∣ ofDigits a L - ofDigits b L
⊢ k ∣ ofDigits a (d :: L) - ofDigits b (d :: L)

tactic: change k ∣ 0 - 0
state_before: case nil
n : ℕ
α : Type u_1
inst✝ : CommRing α
a b k : α
h : k ∣ a - b
⊢ k ∣ ofDigits a [] - ofDigits b []
state_after: case nil
n : ℕ
α : Type u_1
inst✝ : CommRing α
a b k : α
h : k ∣ a - b
⊢ k ∣ 0 - 0

tactic: simp
state_before: case nil
n : ℕ
α : Type u_1
inst✝ : CommRing α
a b k : α
h : k ∣ a - b
⊢ k ∣ 0 - 0
state_after: no goals

tactic: simp only [ofDigits, add_sub_add_left_eq_sub]
state_before: case cons
n : ℕ
α : Type u_1
inst✝ : CommRing α
a b k : α
h : k ∣ a - b
d : ℕ
L : List ℕ
ih : k ∣ ofDigits a L - ofDigits b L
⊢ k ∣ ofDigits a (d :: L) - ofDigits b (d :: L)
state_after: case cons
n : ℕ
α : Type u_1
inst✝ : CommRing α
a b k : α
h : k ∣ a - b
d : ℕ
L : List ℕ
ih : k ∣ ofDigits a L - ofDigits b L
⊢ k ∣ a * ofDigits a L - b * ofDigits b L

tactic: exact dvd_mul_sub_mul h ih
state_before: case cons
n : ℕ
α : Type u_1
inst✝ : CommRing α
a b k : α
h : k ∣ a - b
d : ℕ
L : List ℕ
ih : k ∣ ofDigits a L - ofDigits b L
⊢ k ∣ a * ofDigits a L - b * ofDigits b L
state_after: no goals
Theorem: Nat.bitCasesOn_bit
File: Mathlib/Data/Nat/Bits.lean

tactic: rw [bodd_bit, div2_bit]
state_before: m n✝ : ℕ
C : ℕ → Sort u
H : (b : Bool) → (n : ℕ) → C (bit b n)
b : Bool
n : ℕ
⊢ HEq (H (bit b n).bodd (bit b n).div2) (H b n)
state_after: no goals
Theorem: MeasureTheory.MeasurePreserving.integrable_comp
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: rw [← hf.map_eq] at hg ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν✝ : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
ν : Measure δ
g : δ → β
f : α → δ
hf : MeasurePreserving f μ ν
hg : AEStronglyMeasurable g ν
⊢ Integrable (g ∘ f) μ ↔ Integrable g ν
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν✝ : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
ν : Measure δ
g : δ → β
f : α → δ
hf : MeasurePreserving f μ ν
hg : AEStronglyMeasurable g (Measure.map f μ)
⊢ Integrable (g ∘ f) μ ↔ Integrable g (Measure.map f μ)

tactic: exact (integrable_map_measure hg hf.measurable.aemeasurable).symm
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν✝ : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
ν : Measure δ
g : δ → β
f : α → δ
hf : MeasurePreserving f μ ν
hg : AEStronglyMeasurable g (Measure.map f μ)
⊢ Integrable (g ∘ f) μ ↔ Integrable g (Measure.map f μ)
state_after: no goals
Theorem: Metric.infEdist_le_infEdist_cthickening_add
File: Mathlib/Topology/MetricSpace/Thickening.lean

tactic: refine le_of_forall_lt' fun r h => ?_
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ ε : ℝ
s t : Set α
x : α
⊢ infEdist x s ≤ infEdist x (cthickening δ s) + ENNReal.ofReal δ
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ ε : ℝ
s t : Set α
x : α
r : ℝ≥0∞
h : infEdist x (cthickening δ s) + ENNReal.ofReal δ < r
⊢ infEdist x s < r

tactic: simp_rw [← lt_tsub_iff_right, infEdist_lt_iff, mem_cthickening_iff] at h
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ ε : ℝ
s t : Set α
x : α
r : ℝ≥0∞
h : infEdist x (cthickening δ s) + ENNReal.ofReal δ < r
⊢ infEdist x s < r
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ ε : ℝ
s t : Set α
x : α
r : ℝ≥0∞
h : ∃ y, infEdist y s ≤ ENNReal.ofReal δ ∧ edist x y < r - ENNReal.ofReal δ
⊢ infEdist x s < r

tactic: obtain ⟨y, hy, hxy⟩ := h
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ ε : ℝ
s t : Set α
x : α
r : ℝ≥0∞
h : ∃ y, infEdist y s ≤ ENNReal.ofReal δ ∧ edist x y < r - ENNReal.ofReal δ
⊢ infEdist x s < r
state_after: case intro.intro
ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ ε : ℝ
s t : Set α
x : α
r : ℝ≥0∞
y : α
hy : infEdist y s ≤ ENNReal.ofReal δ
hxy : edist x y < r - ENNReal.ofReal δ
⊢ infEdist x s < r

tactic: exact infEdist_le_edist_add_infEdist.trans_lt
  ((ENNReal.add_lt_add_of_lt_of_le (hy.trans_lt ENNReal.ofReal_lt_top).ne hxy hy).trans_eq
    (tsub_add_cancel_of_le <| le_self_add.trans (lt_tsub_iff_left.1 hxy).le))
state_before: case intro.intro
ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ ε : ℝ
s t : Set α
x : α
r : ℝ≥0∞
y : α
hy : infEdist y s ≤ ENNReal.ofReal δ
hxy : edist x y < r - ENNReal.ofReal δ
⊢ infEdist x s < r
state_after: no goals
Theorem: ofMul_multiset_prod
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: simp [ofMul]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid α
s : Multiset α
⊢ ofMul s.prod = (Multiset.map (⇑ofMul) s).sum
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid α
s : Multiset α
⊢ s.prod = s.sum

tactic: rfl
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid α
s : Multiset α
⊢ s.prod = s.sum
state_after: no goals
Theorem: algebraMap_galRestrictHom_apply
File: Mathlib/RingTheory/IntegralRestrict.lean

tactic: simp [galRestrictHom, Subalgebra.algebraMap_eq]
state_before: A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝¹³ : CommRing A
inst✝¹² : CommRing B
inst✝¹¹ : Algebra A B
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Algebra A K
inst✝⁷ : IsFractionRing A K
inst✝⁶ : Algebra B L
inst✝⁵ : Algebra K L
inst✝⁴ : Algebra A L
inst✝³ : IsScalarTower A B L
inst✝² : IsScalarTower A K L
inst✝¹ : IsIntegralClosure B A L
inst✝ : FiniteDimensional K L
σ : L →ₐ[K] L
x : B
⊢ (algebraMap B L) (((galRestrictHom A K L B) σ) x) = σ ((algebraMap B L) x)
state_after: no goals
Theorem: ENNReal.toNNReal_mul_top
File: Mathlib/Data/ENNReal/Real.lean

tactic: simp
state_before: a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ≥0∞
⊢ (a * ⊤).toNNReal = 0
state_after: no goals
Theorem: Matrix.range_cons
File: Mathlib/Data/Fin/VecNotation.lean

tactic: simp [Fin.exists_fin_succ, eq_comm]
state_before: α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
x : α
u : Fin n → α
y : α
⊢ y ∈ Set.range (vecCons x u) ↔ y ∈ {x} ∪ Set.range u
state_after: no goals
Theorem: Cardinal.ciSup_add_ciSup
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: simp_rw [Cardinal.ciSup_add f hf, Cardinal.add_ciSup g hg]
state_before: ι : Type u
ι' : Type w
f : ι → Cardinal.{v}
inst✝¹ : Nonempty ι
inst✝ : Nonempty ι'
hf : BddAbove (range f)
g : ι' → Cardinal.{v}
hg : BddAbove (range g)
⊢ (⨆ i, f i) + ⨆ j, g j = ⨆ i, ⨆ j, f i + g j
state_after: no goals
Theorem: RingOfIntegers.norm_norm
File: Mathlib/NumberTheory/NumberField/Norm.lean

tactic: rw [RingOfIntegers.ext_iff, coe_norm, coe_norm, coe_norm, Algebra.norm_norm]
state_before: L : Type u_1
K : Type u_2
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : Algebra K L
inst✝⁹ : FiniteDimensional K L
F : Type u_3
inst✝⁸ : Field F
inst✝⁷ : Algebra K F
inst✝⁶ : IsSeparable K F
inst✝⁵ : FiniteDimensional K F
inst✝⁴ : IsSeparable K L
inst✝³ : Algebra F L
inst✝² : IsSeparable F L
inst✝¹ : FiniteDimensional F L
inst✝ : IsScalarTower K F L
x : 𝓞 L
⊢ (norm K) ((norm F) x) = (norm K) x
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.OpenCover.glued_cover_cocycle_fst
File: Mathlib/AlgebraicGeometry/Gluing.lean

tactic: apply pullback.hom_ext <;> simp
state_before: X : Scheme
𝒰 : X.OpenCover
x y z : 𝒰.J
⊢ 𝒰.gluedCoverT' x y z ≫ 𝒰.gluedCoverT' y z x ≫ 𝒰.gluedCoverT' z x y ≫ pullback.fst = pullback.fst
state_after: no goals
Theorem: List.kerase_append_left
File: Mathlib/Data/List/Sigma.lean

tactic: cases h
state_before: α : Type u
β : α → Type v
l l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
x✝ : List (Sigma β)
h : a ∈ [].keys
⊢ kerase a ([] ++ x✝) = kerase a [] ++ x✝
state_after: no goals

tactic: if h₂ : a = s.1 then simp [h₂]
else simp at h₁; cases' h₁ with h₁ h₁ <;> [exact absurd h₁ h₂; simp [h₂, kerase_append_left h₁]]
state_before: α : Type u
β : α → Type v
l l₁✝ l₂✝ : List (Sigma β)
inst✝ : DecidableEq α
a : α
s : Sigma β
l₁ : List (Sigma β)
l₂ : List (Sigma β)
h₁ : a ∈ (s :: l₁).keys
⊢ kerase a (s :: l₁ ++ l₂) = kerase a (s :: l₁) ++ l₂
state_after: no goals

tactic: simp [h₂]
state_before: α : Type u
β : α → Type v
l l₁✝ l₂✝ : List (Sigma β)
inst✝ : DecidableEq α
a : α
s : Sigma β
l₁ : List (Sigma β)
l₂ : List (Sigma β)
h₁ : a ∈ (s :: l₁).keys
h₂ : a = s.fst
⊢ kerase a (s :: l₁ ++ l₂) = kerase a (s :: l₁) ++ l₂
state_after: no goals

tactic: simp at h₁
state_before: α : Type u
β : α → Type v
l l₁✝ l₂✝ : List (Sigma β)
inst✝ : DecidableEq α
a : α
s : Sigma β
l₁ : List (Sigma β)
l₂ : List (Sigma β)
h₁ : a ∈ (s :: l₁).keys
h₂ : ¬a = s.fst
⊢ kerase a (s :: l₁ ++ l₂) = kerase a (s :: l₁) ++ l₂
state_after: α : Type u
β : α → Type v
l l₁✝ l₂✝ : List (Sigma β)
inst✝ : DecidableEq α
a : α
s : Sigma β
l₁ : List (Sigma β)
l₂ : List (Sigma β)
h₂ : ¬a = s.fst
h₁ : a = s.fst ∨ a ∈ l₁.keys
⊢ kerase a (s :: l₁ ++ l₂) = kerase a (s :: l₁) ++ l₂

tactic: cases' h₁ with h₁ h₁ <;> [exact absurd h₁ h₂; simp [h₂, kerase_append_left h₁]]
state_before: α : Type u
β : α → Type v
l l₁✝ l₂✝ : List (Sigma β)
inst✝ : DecidableEq α
a : α
s : Sigma β
l₁ : List (Sigma β)
l₂ : List (Sigma β)
h₂ : ¬a = s.fst
h₁ : a = s.fst ∨ a ∈ l₁.keys
⊢ kerase a (s :: l₁ ++ l₂) = kerase a (s :: l₁) ++ l₂
state_after: no goals
Theorem: IsIntegral.pow
File: Mathlib/RingTheory/IntegralClosure.lean

tactic: exact Algebra.subset_adjoin rfl
state_before: R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : CommRing S
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f✝¹ : R →+* S
f✝ : R →+* B
f : R →+* S
x : B
h : IsIntegral R x
n : ℕ
⊢ x ∈ Algebra.adjoin R {x}
state_after: no goals
Theorem: Set.chainHeight_eq_top_iff
File: Mathlib/Order/Height.lean

tactic: refine ⟨fun h n ↦ le_chainHeight_iff.1 (le_top.trans_eq h.symm), fun h ↦ ?_⟩
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LT α
inst✝ : LT β
s t : Set α
l : List α
a : α
⊢ s.chainHeight = ⊤ ↔ ∀ (n : ℕ), ∃ l ∈ s.subchain, l.length = n
state_after: α : Type u_1
β : Type u_2
inst✝¹ : LT α
inst✝ : LT β
s t : Set α
l : List α
a : α
h : ∀ (n : ℕ), ∃ l ∈ s.subchain, l.length = n
⊢ s.chainHeight = ⊤

tactic: contrapose! h
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LT α
inst✝ : LT β
s t : Set α
l : List α
a : α
h : ∀ (n : ℕ), ∃ l ∈ s.subchain, l.length = n
⊢ s.chainHeight = ⊤
state_after: α : Type u_1
β : Type u_2
inst✝¹ : LT α
inst✝ : LT β
s t : Set α
l : List α
a : α
h : s.chainHeight ≠ ⊤
⊢ ∃ n, ∀ l ∈ s.subchain, l.length ≠ n

tactic: obtain ⟨n, hn⟩ := WithTop.ne_top_iff_exists.1 h
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LT α
inst✝ : LT β
s t : Set α
l : List α
a : α
h : s.chainHeight ≠ ⊤
⊢ ∃ n, ∀ l ∈ s.subchain, l.length ≠ n
state_after: case intro
α : Type u_1
β : Type u_2
inst✝¹ : LT α
inst✝ : LT β
s t : Set α
l : List α
a : α
h : s.chainHeight ≠ ⊤
n : ℕ
hn : ↑n = s.chainHeight
⊢ ∃ n, ∀ l ∈ s.subchain, l.length ≠ n

tactic: exact ⟨n + 1, fun l hs ↦ (Nat.lt_succ_iff.2 <| Nat.cast_le.1 <|
  (length_le_chainHeight_of_mem_subchain hs).trans_eq hn.symm).ne⟩
state_before: case intro
α : Type u_1
β : Type u_2
inst✝¹ : LT α
inst✝ : LT β
s t : Set α
l : List α
a : α
h : s.chainHeight ≠ ⊤
n : ℕ
hn : ↑n = s.chainHeight
⊢ ∃ n, ∀ l ∈ s.subchain, l.length ≠ n
state_after: no goals
Theorem: Trivialization.coordChange_same_apply
File: Mathlib/Topology/FiberBundle/Trivialization.lean

tactic: rw [coordChange, e.apply_symm_apply' h]
state_before: ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e : Trivialization F proj
b : B
h : b ∈ e.baseSet
x : F
⊢ e.coordChange e b x = x
state_after: no goals
Theorem: mabs_inv
File: Mathlib/Algebra/Order/Group/Abs.lean

tactic: simp [mabs, sup_comm]
state_before: α : Type u_1
inst✝¹ : Lattice α
inst✝ : Group α
a✝ b a : α
⊢ mabs a⁻¹ = mabs a
state_after: no goals
Theorem: List.IsPrefix.getElem
File: Mathlib/Data/List/Infix.lean

tactic: obtain ⟨_, rfl⟩ := h
state_before: α : Type u_1
β : Type u_2
l l₁ l₂ l₃ : List α
a b : α
m n✝ : ℕ
x y : List α
h : x <+: y
n : ℕ
hn : n < x.length
⊢ x[n] = y[n]
state_after: case intro
α : Type u_1
β : Type u_2
l l₁ l₂ l₃ : List α
a b : α
m n✝ : ℕ
x : List α
n : ℕ
hn : n < x.length
w✝ : List α
⊢ x[n] = (x ++ w✝)[n]

tactic: exact (List.getElem_append n hn).symm
state_before: case intro
α : Type u_1
β : Type u_2
l l₁ l₂ l₃ : List α
a b : α
m n✝ : ℕ
x : List α
n : ℕ
hn : n < x.length
w✝ : List α
⊢ x[n] = (x ++ w✝)[n]
state_after: no goals
Theorem: Ordinal.left_le_opow
File: Mathlib/SetTheory/Ordinal/Exponential.lean

tactic: nth_rw 1 [← opow_one a]
state_before: a b : Ordinal.{u_1}
b1 : 0 < b
⊢ a ≤ a ^ b
state_after: a b : Ordinal.{u_1}
b1 : 0 < b
⊢ a ^ 1 ≤ a ^ b

tactic: cases' le_or_gt a 1 with a1 a1
state_before: a b : Ordinal.{u_1}
b1 : 0 < b
⊢ a ^ 1 ≤ a ^ b
state_after: case inl
a b : Ordinal.{u_1}
b1 : 0 < b
a1 : a ≤ 1
⊢ a ^ 1 ≤ a ^ b

case inr
a b : Ordinal.{u_1}
b1 : 0 < b
a1 : a > 1
⊢ a ^ 1 ≤ a ^ b

tactic: rwa [opow_le_opow_iff_right a1, one_le_iff_pos]
state_before: case inr
a b : Ordinal.{u_1}
b1 : 0 < b
a1 : a > 1
⊢ a ^ 1 ≤ a ^ b
state_after: no goals

tactic: rcases lt_or_eq_of_le a1 with a0 | a1
state_before: case inl
a b : Ordinal.{u_1}
b1 : 0 < b
a1 : a ≤ 1
⊢ a ^ 1 ≤ a ^ b
state_after: case inl.inl
a b : Ordinal.{u_1}
b1 : 0 < b
a1 : a ≤ 1
a0 : a < 1
⊢ a ^ 1 ≤ a ^ b

case inl.inr
a b : Ordinal.{u_1}
b1 : 0 < b
a1✝ : a ≤ 1
a1 : a = 1
⊢ a ^ 1 ≤ a ^ b

tactic: rw [a1, one_opow, one_opow]
state_before: case inl.inr
a b : Ordinal.{u_1}
b1 : 0 < b
a1✝ : a ≤ 1
a1 : a = 1
⊢ a ^ 1 ≤ a ^ b
state_after: no goals

tactic: rw [lt_one_iff_zero] at a0
state_before: case inl.inl
a b : Ordinal.{u_1}
b1 : 0 < b
a1 : a ≤ 1
a0 : a < 1
⊢ a ^ 1 ≤ a ^ b
state_after: case inl.inl
a b : Ordinal.{u_1}
b1 : 0 < b
a1 : a ≤ 1
a0 : a = 0
⊢ a ^ 1 ≤ a ^ b

tactic: rw [a0, zero_opow Ordinal.one_ne_zero]
state_before: case inl.inl
a b : Ordinal.{u_1}
b1 : 0 < b
a1 : a ≤ 1
a0 : a = 0
⊢ a ^ 1 ≤ a ^ b
state_after: case inl.inl
a b : Ordinal.{u_1}
b1 : 0 < b
a1 : a ≤ 1
a0 : a = 0
⊢ 0 ≤ 0 ^ b

tactic: exact Ordinal.zero_le _
state_before: case inl.inl
a b : Ordinal.{u_1}
b1 : 0 < b
a1 : a ≤ 1
a0 : a = 0
⊢ 0 ≤ 0 ^ b
state_after: no goals
Theorem: LieSubalgebra.subsingleton_bot
File: Mathlib/Algebra/Lie/Subalgebra.lean

tactic: simp
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
⊢ Subsingleton ↑↑⊥
state_after: no goals
Theorem: pathComponentIn_univ
File: Mathlib/Topology/Connected/PathConnected.lean

tactic: simp [pathComponentIn, pathComponent, JoinedIn, Joined, exists_true_iff_nonempty]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y z : X
ι : Type u_3
F : Set X
x : X
⊢ pathComponentIn x univ = pathComponent x
state_after: no goals
Theorem: Irrational.beattySeq'_pos_eq
File: Mathlib/NumberTheory/Rayleigh.lean

tactic: dsimp only [beattySeq, beattySeq']
state_before: r : ℝ
hr : Irrational r
⊢ {x | ∃ k > 0, beattySeq' r k = x} = {x | ∃ k > 0, beattySeq r k = x}
state_after: r : ℝ
hr : Irrational r
⊢ {x | ∃ k > 0, ⌈↑k * r⌉ - 1 = x} = {x | ∃ k > 0, ⌊↑k * r⌋ = x}

tactic: congr! 4
state_before: r : ℝ
hr : Irrational r
⊢ {x | ∃ k > 0, ⌈↑k * r⌉ - 1 = x} = {x | ∃ k > 0, ⌊↑k * r⌋ = x}
state_after: case h.e'_2.h.h.e'_2.h.a
r : ℝ
hr : Irrational r
x✝¹ x✝ : ℤ
⊢ x✝ > 0 ∧ ⌈↑x✝ * r⌉ - 1 = x✝¹ ↔ x✝ > 0 ∧ ⌊↑x✝ * r⌋ = x✝¹

tactic: rename_i k
state_before: case h.e'_2.h.h.e'_2.h.a
r : ℝ
hr : Irrational r
x✝¹ x✝ : ℤ
⊢ x✝ > 0 ∧ ⌈↑x✝ * r⌉ - 1 = x✝¹ ↔ x✝ > 0 ∧ ⌊↑x✝ * r⌋ = x✝¹
state_after: case h.e'_2.h.h.e'_2.h.a
r : ℝ
hr : Irrational r
x✝ k : ℤ
⊢ k > 0 ∧ ⌈↑k * r⌉ - 1 = x✝ ↔ k > 0 ∧ ⌊↑k * r⌋ = x✝

tactic: rw [and_congr_right_iff]
state_before: case h.e'_2.h.h.e'_2.h.a
r : ℝ
hr : Irrational r
x✝ k : ℤ
⊢ k > 0 ∧ ⌈↑k * r⌉ - 1 = x✝ ↔ k > 0 ∧ ⌊↑k * r⌋ = x✝
state_after: case h.e'_2.h.h.e'_2.h.a
r : ℝ
hr : Irrational r
x✝ k : ℤ
⊢ k > 0 → (⌈↑k * r⌉ - 1 = x✝ ↔ ⌊↑k * r⌋ = x✝)

tactic: intro hk
state_before: case h.e'_2.h.h.e'_2.h.a
r : ℝ
hr : Irrational r
x✝ k : ℤ
⊢ k > 0 → (⌈↑k * r⌉ - 1 = x✝ ↔ ⌊↑k * r⌋ = x✝)
state_after: case h.e'_2.h.h.e'_2.h.a
r : ℝ
hr : Irrational r
x✝ k : ℤ
hk : k > 0
⊢ ⌈↑k * r⌉ - 1 = x✝ ↔ ⌊↑k * r⌋ = x✝

tactic: congr!
state_before: case h.e'_2.h.h.e'_2.h.a
r : ℝ
hr : Irrational r
x✝ k : ℤ
hk : k > 0
⊢ ⌈↑k * r⌉ - 1 = x✝ ↔ ⌊↑k * r⌋ = x✝
state_after: case h.e'_2.h.h.e'_2.h.a.a.h.e'_2
r : ℝ
hr : Irrational r
x✝ k : ℤ
hk : k > 0
⊢ ⌈↑k * r⌉ - 1 = ⌊↑k * r⌋

tactic: rw [sub_eq_iff_eq_add, Int.ceil_eq_iff, Int.cast_add, Int.cast_one, add_sub_cancel_right]
state_before: case h.e'_2.h.h.e'_2.h.a.a.h.e'_2
r : ℝ
hr : Irrational r
x✝ k : ℤ
hk : k > 0
⊢ ⌈↑k * r⌉ - 1 = ⌊↑k * r⌋
state_after: case h.e'_2.h.h.e'_2.h.a.a.h.e'_2
r : ℝ
hr : Irrational r
x✝ k : ℤ
hk : k > 0
⊢ ↑⌊↑k * r⌋ < ↑k * r ∧ ↑k * r ≤ ↑⌊↑k * r⌋ + 1

tactic: refine ⟨(Int.floor_le _).lt_of_ne fun h ↦ ?_, (Int.lt_floor_add_one _).le⟩
state_before: case h.e'_2.h.h.e'_2.h.a.a.h.e'_2
r : ℝ
hr : Irrational r
x✝ k : ℤ
hk : k > 0
⊢ ↑⌊↑k * r⌋ < ↑k * r ∧ ↑k * r ≤ ↑⌊↑k * r⌋ + 1
state_after: case h.e'_2.h.h.e'_2.h.a.a.h.e'_2
r : ℝ
hr : Irrational r
x✝ k : ℤ
hk : k > 0
h : ↑⌊↑k * r⌋ = ↑k * r
⊢ False

tactic: exact (hr.int_mul hk.ne').ne_int ⌊k * r⌋ h.symm
state_before: case h.e'_2.h.h.e'_2.h.a.a.h.e'_2
r : ℝ
hr : Irrational r
x✝ k : ℤ
hk : k > 0
h : ↑⌊↑k * r⌋ = ↑k * r
⊢ False
state_after: no goals
Theorem: Matrix.zpow_one_add
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

tactic: rw [zpow_add h, zpow_one]
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : IsUnit A.det
i : ℤ
⊢ A ^ (1 + i) = A * A ^ i
state_after: no goals
Theorem: pow_padicValNat_dvd
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: rcases n.eq_zero_or_pos with (rfl | hn)
state_before: p n : ℕ
⊢ p ^ padicValNat p n ∣ n
state_after: case inl
p : ℕ
⊢ p ^ padicValNat p 0 ∣ 0

case inr
p n : ℕ
hn : n > 0
⊢ p ^ padicValNat p n ∣ n

tactic: rcases eq_or_ne p 1 with (rfl | hp)
state_before: case inr
p n : ℕ
hn : n > 0
⊢ p ^ padicValNat p n ∣ n
state_after: case inr.inl
n : ℕ
hn : n > 0
⊢ 1 ^ padicValNat 1 n ∣ n

case inr.inr
p n : ℕ
hn : n > 0
hp : p ≠ 1
⊢ p ^ padicValNat p n ∣ n

tactic: rw [multiplicity.pow_dvd_iff_le_multiplicity, padicValNat_def'] <;> assumption
state_before: case inr.inr
p n : ℕ
hn : n > 0
hp : p ≠ 1
⊢ p ^ padicValNat p n ∣ n
state_after: no goals

tactic: simp
state_before: case inl
p : ℕ
⊢ p ^ padicValNat p 0 ∣ 0
state_after: no goals

tactic: simp
state_before: case inr.inl
n : ℕ
hn : n > 0
⊢ 1 ^ padicValNat 1 n ∣ n
state_after: no goals
Theorem: HasFDerivAt.unique
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: rw [← hasFDerivWithinAt_univ] at h₀ h₁
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h₀ : HasFDerivAt f f₀' x
h₁ : HasFDerivAt f f₁' x
⊢ f₀' = f₁'
state_after: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h₀ : HasFDerivWithinAt f f₀' univ x
h₁ : HasFDerivWithinAt f f₁' univ x
⊢ f₀' = f₁'

tactic: exact uniqueDiffWithinAt_univ.eq h₀ h₁
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h₀ : HasFDerivWithinAt f f₀' univ x
h₁ : HasFDerivWithinAt f f₁' univ x
⊢ f₀' = f₁'
state_after: no goals
Theorem: MeasureTheory.snorm_add_lt_top
File: Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean

tactic: apply ENNReal.mul_lt_top (LpAddConst_lt_top p).ne
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f✝ g✝ f g : α → E
hf : Memℒp f p μ
hg : Memℒp g p μ
⊢ LpAddConst p * (snorm f p μ + snorm g p μ) < ⊤
state_after: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f✝ g✝ f g : α → E
hf : Memℒp f p μ
hg : Memℒp g p μ
⊢ snorm f p μ + snorm g p μ ≠ ⊤

tactic: exact (ENNReal.add_lt_top.2 ⟨hf.2, hg.2⟩).ne
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f✝ g✝ f g : α → E
hf : Memℒp f p μ
hg : Memℒp g p μ
⊢ snorm f p μ + snorm g p μ ≠ ⊤
state_after: no goals
Theorem: Set.preimage_sub_const_Ioo
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [sub_eq_add_neg]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => x - a) ⁻¹' Ioo b c = Ioo (b + a) (c + a)
state_after: no goals
Theorem: AddCircle.measure_univ
File: Mathlib/MeasureTheory/Integral/Periodic.lean

tactic: dsimp [volume]
state_before: T : ℝ
hT : Fact (0 < T)
⊢ volume univ = ENNReal.ofReal T
state_after: T : ℝ
hT : Fact (0 < T)
⊢ ENNReal.ofReal T * (addHaarMeasure ⊤) univ = ENNReal.ofReal T

tactic: rw [← PositiveCompacts.coe_top]
state_before: T : ℝ
hT : Fact (0 < T)
⊢ ENNReal.ofReal T * (addHaarMeasure ⊤) univ = ENNReal.ofReal T
state_after: T : ℝ
hT : Fact (0 < T)
⊢ ENNReal.ofReal T * (addHaarMeasure ⊤) ↑⊤ = ENNReal.ofReal T

tactic: simp [addHaarMeasure_self (G := AddCircle T), -PositiveCompacts.coe_top]
state_before: T : ℝ
hT : Fact (0 < T)
⊢ ENNReal.ofReal T * (addHaarMeasure ⊤) ↑⊤ = ENNReal.ofReal T
state_after: no goals