1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Multipliable.map_iff_of_leftInverse
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: have := h.map _ hg'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁷ : CommMonoid α
inst✝⁶ : TopologicalSpace α
f g✝ : β → α
a b : α
s : Finset β
inst✝⁵ : CommMonoid γ
inst✝⁴ : TopologicalSpace γ
G : Type u_5
G' : Type u_6
inst✝³ : FunLike G α γ
inst✝² : MonoidHomClass G α γ
inst✝¹ : FunLike G' γ α
inst✝ : MonoidHomClass G' γ α
g : G
g' : G'
hg : Continuous ⇑g
hg' : Continuous ⇑g'
hinv : LeftInverse ⇑g' ⇑g
h : Multipliable (⇑g ∘ f)
⊢ Multipliable f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁷ : CommMonoid α
inst✝⁶ : TopologicalSpace α
f g✝ : β → α
a b : α
s : Finset β
inst✝⁵ : CommMonoid γ
inst✝⁴ : TopologicalSpace γ
G : Type u_5
G' : Type u_6
inst✝³ : FunLike G α γ
inst✝² : MonoidHomClass G α γ
inst✝¹ : FunLike G' γ α
inst✝ : MonoidHomClass G' γ α
g : G
g' : G'
hg : Continuous ⇑g
hg' : Continuous ⇑g'
hinv : LeftInverse ⇑g' ⇑g
h : Multipliable (⇑g ∘ f)
this : Multipliable (⇑g' ∘ ⇑g ∘ f)
⊢ Multipliable f

tactic: rwa [← Function.comp.assoc, hinv.id] at this
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁷ : CommMonoid α
inst✝⁶ : TopologicalSpace α
f g✝ : β → α
a b : α
s : Finset β
inst✝⁵ : CommMonoid γ
inst✝⁴ : TopologicalSpace γ
G : Type u_5
G' : Type u_6
inst✝³ : FunLike G α γ
inst✝² : MonoidHomClass G α γ
inst✝¹ : FunLike G' γ α
inst✝ : MonoidHomClass G' γ α
g : G
g' : G'
hg : Continuous ⇑g
hg' : Continuous ⇑g'
hinv : LeftInverse ⇑g' ⇑g
h : Multipliable (⇑g ∘ f)
this : Multipliable (⇑g' ∘ ⇑g ∘ f)
⊢ Multipliable f
state_after: no goals
Theorem: IsAntichain.volume_eq_zero
File: Mathlib/MeasureTheory/Order/UpperLower.lean

tactic: refine measure_mono_null ?_ hs.ordConnected.null_frontier
state_before: ι : Type u_1
inst✝¹ : Fintype ι
s : Set (ι → ℝ)
x y : ι → ℝ
δ : ℝ
inst✝ : Nonempty ι
hs : IsAntichain (fun x x_1 => x ≤ x_1) s
⊢ volume s = 0
state_after: ι : Type u_1
inst✝¹ : Fintype ι
s : Set (ι → ℝ)
x y : ι → ℝ
δ : ℝ
inst✝ : Nonempty ι
hs : IsAntichain (fun x x_1 => x ≤ x_1) s
⊢ s ⊆ frontier s

tactic: rw [← closure_diff_interior, hs.interior_eq_empty, diff_empty]
state_before: ι : Type u_1
inst✝¹ : Fintype ι
s : Set (ι → ℝ)
x y : ι → ℝ
δ : ℝ
inst✝ : Nonempty ι
hs : IsAntichain (fun x x_1 => x ≤ x_1) s
⊢ s ⊆ frontier s
state_after: ι : Type u_1
inst✝¹ : Fintype ι
s : Set (ι → ℝ)
x y : ι → ℝ
δ : ℝ
inst✝ : Nonempty ι
hs : IsAntichain (fun x x_1 => x ≤ x_1) s
⊢ s ⊆ closure s

tactic: exact subset_closure
state_before: ι : Type u_1
inst✝¹ : Fintype ι
s : Set (ι → ℝ)
x y : ι → ℝ
δ : ℝ
inst✝ : Nonempty ι
hs : IsAntichain (fun x x_1 => x ≤ x_1) s
⊢ s ⊆ closure s
state_after: no goals
Theorem: ContinuousMultilinearMap.norm_ofSubsingleton_id
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

tactic: simp
state_before: 𝕜 : Type u
ι : Type v
E : ι → Type wE
G : Type wG
G' : Type wG'
inst✝⁹ : Fintype ι
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace 𝕜 G
inst✝³ : SeminormedAddCommGroup G'
inst✝² : NormedSpace 𝕜 G'
f : ContinuousMultilinearMap 𝕜 E G
inst✝¹ : Subsingleton ι
inst✝ : Nontrivial G
i : ι
⊢ ‖(ofSubsingleton 𝕜 G G i) (ContinuousLinearMap.id 𝕜 G)‖ = 1
state_after: no goals
Theorem: Set.preimage_val_sInter
File: Mathlib/Data/Set/Subset.lean

tactic: erw [sInter_image]
state_before: ι : Sort u_1
α : Type u_2
A B C : Set α
D E : Set ↑A
S : Set (Set α)
T : Set (Set ↑A)
s : ι → Set α
t : ι → Set ↑A
⊢ A ↓∩ ⋂₀ S = ⋂₀ {x | ∃ B ∈ S, A ↓∩ B = x}
state_after: ι : Sort u_1
α : Type u_2
A B C : Set α
D E : Set ↑A
S : Set (Set α)
T : Set (Set ↑A)
s : ι → Set α
t : ι → Set ↑A
⊢ A ↓∩ ⋂₀ S = ⋂ x ∈ S, A ↓∩ x

tactic: simp_rw [sInter_eq_biInter, preimage_iInter]
state_before: ι : Sort u_1
α : Type u_2
A B C : Set α
D E : Set ↑A
S : Set (Set α)
T : Set (Set ↑A)
s : ι → Set α
t : ι → Set ↑A
⊢ A ↓∩ ⋂₀ S = ⋂ x ∈ S, A ↓∩ x
state_after: no goals
Theorem: Polynomial.add_modByMonic
File: Mathlib/Algebra/Polynomial/RingDivision.lean

tactic: by_cases hq : q.Monic
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
p q : R[X]
inst✝ : Semiring S
p₁ p₂ : R[X]
⊢ (p₁ + p₂) %ₘ q = p₁ %ₘ q + p₂ %ₘ q
state_after: case pos
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
p q : R[X]
inst✝ : Semiring S
p₁ p₂ : R[X]
hq : q.Monic
⊢ (p₁ + p₂) %ₘ q = p₁ %ₘ q + p₂ %ₘ q

case neg
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
p q : R[X]
inst✝ : Semiring S
p₁ p₂ : R[X]
hq : ¬q.Monic
⊢ (p₁ + p₂) %ₘ q = p₁ %ₘ q + p₂ %ₘ q

tactic: cases' subsingleton_or_nontrivial R with hR hR
state_before: case pos
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
p q : R[X]
inst✝ : Semiring S
p₁ p₂ : R[X]
hq : q.Monic
⊢ (p₁ + p₂) %ₘ q = p₁ %ₘ q + p₂ %ₘ q
state_after: case pos.inl
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
p q : R[X]
inst✝ : Semiring S
p₁ p₂ : R[X]
hq : q.Monic
hR : Subsingleton R
⊢ (p₁ + p₂) %ₘ q = p₁ %ₘ q + p₂ %ₘ q

case pos.inr
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
p q : R[X]
inst✝ : Semiring S
p₁ p₂ : R[X]
hq : q.Monic
hR : Nontrivial R
⊢ (p₁ + p₂) %ₘ q = p₁ %ₘ q + p₂ %ₘ q

tactic: simp only [eq_iff_true_of_subsingleton]
state_before: case pos.inl
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
p q : R[X]
inst✝ : Semiring S
p₁ p₂ : R[X]
hq : q.Monic
hR : Subsingleton R
⊢ (p₁ + p₂) %ₘ q = p₁ %ₘ q + p₂ %ₘ q
state_after: no goals

tactic: exact
(div_modByMonic_unique (p₁ /ₘ q + p₂ /ₘ q) _ hq
    ⟨by
      rw [mul_add, add_left_comm, add_assoc, modByMonic_add_div _ hq, ← add_assoc,
        add_comm (q * _), modByMonic_add_div _ hq],
      (degree_add_le _ _).trans_lt
        (max_lt (degree_modByMonic_lt _ hq) (degree_modByMonic_lt _ hq))⟩).2
state_before: case pos.inr
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
p q : R[X]
inst✝ : Semiring S
p₁ p₂ : R[X]
hq : q.Monic
hR : Nontrivial R
⊢ (p₁ + p₂) %ₘ q = p₁ %ₘ q + p₂ %ₘ q
state_after: no goals

tactic: rw [mul_add, add_left_comm, add_assoc, modByMonic_add_div _ hq, ← add_assoc,
  add_comm (q * _), modByMonic_add_div _ hq]
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
p q : R[X]
inst✝ : Semiring S
p₁ p₂ : R[X]
hq : q.Monic
hR : Nontrivial R
⊢ p₁ %ₘ q + p₂ %ₘ q + q * (p₁ /ₘ q + p₂ /ₘ q) = p₁ + p₂
state_after: no goals

tactic: simp_rw [modByMonic_eq_of_not_monic _ hq]
state_before: case neg
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
p q : R[X]
inst✝ : Semiring S
p₁ p₂ : R[X]
hq : ¬q.Monic
⊢ (p₁ + p₂) %ₘ q = p₁ %ₘ q + p₂ %ₘ q
state_after: no goals
Theorem: Equiv.Perm.set_support_zpow_subset
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: intro x
state_before: α : Type u_1
p q : Perm α
n : ℤ
⊢ {x | (p ^ n) x ≠ x} ⊆ {x | p x ≠ x}
state_after: α : Type u_1
p q : Perm α
n : ℤ
x : α
⊢ x ∈ {x | (p ^ n) x ≠ x} → x ∈ {x | p x ≠ x}

tactic: simp only [Set.mem_setOf_eq, Ne]
state_before: α : Type u_1
p q : Perm α
n : ℤ
x : α
⊢ x ∈ {x | (p ^ n) x ≠ x} → x ∈ {x | p x ≠ x}
state_after: α : Type u_1
p q : Perm α
n : ℤ
x : α
⊢ ¬(p ^ n) x = x → ¬p x = x

tactic: intro hx H
state_before: α : Type u_1
p q : Perm α
n : ℤ
x : α
⊢ ¬(p ^ n) x = x → ¬p x = x
state_after: α : Type u_1
p q : Perm α
n : ℤ
x : α
hx : ¬(p ^ n) x = x
H : p x = x
⊢ False

tactic: simp [zpow_apply_eq_self_of_apply_eq_self H] at hx
state_before: α : Type u_1
p q : Perm α
n : ℤ
x : α
hx : ¬(p ^ n) x = x
H : p x = x
⊢ False
state_after: no goals
Theorem: CategoryTheory.GrothendieckTopology.overEquiv_symm_mem_over
File: Mathlib/CategoryTheory/Sites/Over.lean

tactic: simpa only [mem_over_iff, Equiv.apply_symm_apply] using hS
state_before: C : Type u
inst✝ : Category.{v, u} C
J : GrothendieckTopology C
X : C
Y : Over X
S : Sieve Y.left
hS : S ∈ J.sieves Y.left
⊢ (Sieve.overEquiv Y).symm S ∈ (J.over X).sieves Y
state_after: no goals
Theorem: convexOn_norm
File: Mathlib/Analysis/Convex/Normed.lean

tactic: rw [norm_smul, norm_smul, Real.norm_of_nonneg ha, Real.norm_of_nonneg hb]
state_before: ι : Type u_1
E : Type u_2
P : Type u_3
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor E P
s t : Set E
hs : Convex ℝ s
x : E
x✝² : x ∈ s
y : E
x✝¹ : y ∈ s
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
x✝ : a + b = 1
⊢ ‖a • x‖ + ‖b • y‖ = a * ‖x‖ + b * ‖y‖
state_after: no goals
Theorem: deriv.lhopital_zero_atTop_on_Ioi
File: Mathlib/Analysis/Calculus/LHopital.lean

tactic: have hdf : ∀ x ∈ Ioi a, DifferentiableAt ℝ f x := fun x hx =>
  (hdf x hx).differentiableAt (Ioi_mem_nhds hx)
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf : DifferentiableOn ℝ f (Ioi a)
hg' : ∀ x ∈ Ioi a, deriv g x ≠ 0
hftop : Tendsto f atTop (𝓝 0)
hgtop : Tendsto g atTop (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) atTop l
⊢ Tendsto (fun x => f x / g x) atTop l
state_after: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf✝ : DifferentiableOn ℝ f (Ioi a)
hg' : ∀ x ∈ Ioi a, deriv g x ≠ 0
hftop : Tendsto f atTop (𝓝 0)
hgtop : Tendsto g atTop (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) atTop l
hdf : ∀ x ∈ Ioi a, DifferentiableAt ℝ f x
⊢ Tendsto (fun x => f x / g x) atTop l

tactic: have hdg : ∀ x ∈ Ioi a, DifferentiableAt ℝ g x := fun x hx =>
  by_contradiction fun h => hg' x hx (deriv_zero_of_not_differentiableAt h)
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf✝ : DifferentiableOn ℝ f (Ioi a)
hg' : ∀ x ∈ Ioi a, deriv g x ≠ 0
hftop : Tendsto f atTop (𝓝 0)
hgtop : Tendsto g atTop (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) atTop l
hdf : ∀ x ∈ Ioi a, DifferentiableAt ℝ f x
⊢ Tendsto (fun x => f x / g x) atTop l
state_after: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf✝ : DifferentiableOn ℝ f (Ioi a)
hg' : ∀ x ∈ Ioi a, deriv g x ≠ 0
hftop : Tendsto f atTop (𝓝 0)
hgtop : Tendsto g atTop (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) atTop l
hdf : ∀ x ∈ Ioi a, DifferentiableAt ℝ f x
hdg : ∀ x ∈ Ioi a, DifferentiableAt ℝ g x
⊢ Tendsto (fun x => f x / g x) atTop l

tactic: exact HasDerivAt.lhopital_zero_atTop_on_Ioi (fun x hx => (hdf x hx).hasDerivAt)
  (fun x hx => (hdg x hx).hasDerivAt) hg' hftop hgtop hdiv
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf✝ : DifferentiableOn ℝ f (Ioi a)
hg' : ∀ x ∈ Ioi a, deriv g x ≠ 0
hftop : Tendsto f atTop (𝓝 0)
hgtop : Tendsto g atTop (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) atTop l
hdf : ∀ x ∈ Ioi a, DifferentiableAt ℝ f x
hdg : ∀ x ∈ Ioi a, DifferentiableAt ℝ g x
⊢ Tendsto (fun x => f x / g x) atTop l
state_after: no goals
Theorem: Nat.count_mono_left
File: Mathlib/Data/Nat/Count.lean

tactic: simp only [count_eq_card_filter_range]
state_before: p : ℕ → Prop
inst✝¹ : DecidablePred p
q : ℕ → Prop
inst✝ : DecidablePred q
n : ℕ
hpq : ∀ (k : ℕ), p k → q k
⊢ count p n ≤ count q n
state_after: p : ℕ → Prop
inst✝¹ : DecidablePred p
q : ℕ → Prop
inst✝ : DecidablePred q
n : ℕ
hpq : ∀ (k : ℕ), p k → q k
⊢ (filter p (range n)).card ≤ (filter q (range n)).card

tactic: exact card_le_card ((range n).monotone_filter_right hpq)
state_before: p : ℕ → Prop
inst✝¹ : DecidablePred p
q : ℕ → Prop
inst✝ : DecidablePred q
n : ℕ
hpq : ∀ (k : ℕ), p k → q k
⊢ (filter p (range n)).card ≤ (filter q (range n)).card
state_after: no goals
Theorem: Set.bounded_le_inter_lt
File: Mathlib/Order/Bounded.lean

tactic: simp_rw [← not_le, bounded_le_inter_not_le]
state_before: α : Type u_1
r : α → α → Prop
s t : Set α
inst✝ : LinearOrder α
a : α
⊢ Bounded (fun x x_1 => x ≤ x_1) (s ∩ {b | a < b}) ↔ Bounded (fun x x_1 => x ≤ x_1) s
state_after: no goals
Theorem: MeasureTheory.VectorMeasure.of_nonneg_disjoint_union_eq_zero
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: rw [of_union h hA₁ hB₁] at hAB
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : T2Space M
v : VectorMeasure α M
f : ℕ → Set α
s : SignedMeasure α
A B : Set α
h : Disjoint A B
hA₁ : MeasurableSet A
hB₁ : MeasurableSet B
hA₂ : 0 ≤ ↑s A
hB₂ : 0 ≤ ↑s B
hAB : ↑s (A ∪ B) = 0
⊢ ↑s A = 0
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : T2Space M
v : VectorMeasure α M
f : ℕ → Set α
s : SignedMeasure α
A B : Set α
h : Disjoint A B
hA₁ : MeasurableSet A
hB₁ : MeasurableSet B
hA₂ : 0 ≤ ↑s A
hB₂ : 0 ≤ ↑s B
hAB : ↑s A + ↑s B = 0
⊢ ↑s A = 0

tactic: linarith
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : T2Space M
v : VectorMeasure α M
f : ℕ → Set α
s : SignedMeasure α
A B : Set α
h : Disjoint A B
hA₁ : MeasurableSet A
hB₁ : MeasurableSet B
hA₂ : 0 ≤ ↑s A
hB₂ : 0 ≤ ↑s B
hAB : ↑s A + ↑s B = 0
⊢ ↑s A = 0
state_after: no goals
Theorem: HomologicalComplex.homotopyCofiber.desc_f
File: Mathlib/Algebra/Homology/HomotopyCofiber.lean

tactic: obtain rfl := c.next_eq' hjk
state_before: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : Preadditive C
ι : Type u_2
c : ComplexShape ι
F G K : HomologicalComplex C c
φ : F ⟶ G
inst✝¹ : HasHomotopyCofiber φ
inst✝ : DecidableRel c.Rel
α : G ⟶ K
hα : Homotopy (φ ≫ α) 0
j k : ι
hjk : c.Rel j k
⊢ (desc φ α hα).f j = fstX φ j k hjk ≫ hα.hom k j + sndX φ j ≫ α.f j
state_after: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : Preadditive C
ι : Type u_2
c : ComplexShape ι
F G K : HomologicalComplex C c
φ : F ⟶ G
inst✝¹ : HasHomotopyCofiber φ
inst✝ : DecidableRel c.Rel
α : G ⟶ K
hα : Homotopy (φ ≫ α) 0
j : ι
hjk : c.Rel j (c.next j)
⊢ (desc φ α hα).f j = fstX φ j (c.next j) hjk ≫ hα.hom (c.next j) j + sndX φ j ≫ α.f j

tactic: apply dif_pos hjk
state_before: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : Preadditive C
ι : Type u_2
c : ComplexShape ι
F G K : HomologicalComplex C c
φ : F ⟶ G
inst✝¹ : HasHomotopyCofiber φ
inst✝ : DecidableRel c.Rel
α : G ⟶ K
hα : Homotopy (φ ≫ α) 0
j : ι
hjk : c.Rel j (c.next j)
⊢ (desc φ α hα).f j = fstX φ j (c.next j) hjk ≫ hα.hom (c.next j) j + sndX φ j ≫ α.f j
state_after: no goals
Theorem: Submonoid.mrange_inr
File: Mathlib/Algebra/Group/Submonoid/Operations.lean

tactic: simpa only [mrange_eq_map] using map_inr ⊤
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝³ : MulOneClass M
inst✝² : MulOneClass N
inst✝¹ : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝ : SetLike A M
hA : SubmonoidClass A M
S' : A
⊢ mrange (inr M N) = ⊥.prod ⊤
state_after: no goals
Theorem: intervalIntegral.inv_smul_integral_comp_div_add
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: by_cases hc : c = 0 <;> simp [hc, integral_comp_div_add]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c✝ d✝ : ℝ
f : ℝ → E
c d : ℝ
⊢ c⁻¹ • ∫ (x : ℝ) in a..b, f (x / c + d) = ∫ (x : ℝ) in a / c + d..b / c + d, f x
state_after: no goals
Theorem: Complex.not_lt_iff
File: Mathlib/Data/Complex/Order.lean

tactic: rw [lt_def, not_and_or, not_lt]
state_before: z w : ℂ
⊢ ¬z < w ↔ w.re ≤ z.re ∨ z.im ≠ w.im
state_after: no goals
Theorem: List.ofFn_succ
File: Mathlib/Data/List/OfFn.lean

tactic: simp
state_before: α : Type u
n : ℕ
f : Fin n.succ → α
⊢ (ofFn f).length = (f 0 :: ofFn fun i => f i.succ).length
state_after: no goals

tactic: cases i
state_before: α : Type u
n : ℕ
f : Fin n.succ → α
i : ℕ
hi₁ : i < (ofFn f).length
hi₂ : i < (f 0 :: ofFn fun i => f i.succ).length
⊢ (ofFn f).get ⟨i, hi₁⟩ = (f 0 :: ofFn fun i => f i.succ).get ⟨i, hi₂⟩
state_after: case zero
α : Type u
n : ℕ
f : Fin n.succ → α
hi₁ : 0 < (ofFn f).length
hi₂ : 0 < (f 0 :: ofFn fun i => f i.succ).length
⊢ (ofFn f).get ⟨0, hi₁⟩ = (f 0 :: ofFn fun i => f i.succ).get ⟨0, hi₂⟩

case succ
α : Type u
n : ℕ
f : Fin n.succ → α
n✝ : ℕ
hi₁ : n✝ + 1 < (ofFn f).length
hi₂ : n✝ + 1 < (f 0 :: ofFn fun i => f i.succ).length
⊢ (ofFn f).get ⟨n✝ + 1, hi₁⟩ = (f 0 :: ofFn fun i => f i.succ).get ⟨n✝ + 1, hi₂⟩

tactic: simp
state_before: case zero
α : Type u
n : ℕ
f : Fin n.succ → α
hi₁ : 0 < (ofFn f).length
hi₂ : 0 < (f 0 :: ofFn fun i => f i.succ).length
⊢ (ofFn f).get ⟨0, hi₁⟩ = (f 0 :: ofFn fun i => f i.succ).get ⟨0, hi₂⟩
state_after: no goals

tactic: simp
state_before: case succ
α : Type u
n : ℕ
f : Fin n.succ → α
n✝ : ℕ
hi₁ : n✝ + 1 < (ofFn f).length
hi₂ : n✝ + 1 < (f 0 :: ofFn fun i => f i.succ).length
⊢ (ofFn f).get ⟨n✝ + 1, hi₁⟩ = (f 0 :: ofFn fun i => f i.succ).get ⟨n✝ + 1, hi₂⟩
state_after: no goals
Theorem: TopologicalSpace.Opens.isCoatom_iff
File: Mathlib/Topology/Sets/Closeds.lean

tactic: rw [← s.compl_compl, ← isAtom_dual_iff_isCoatom]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : T1Space α
s : Opens α
⊢ IsCoatom s ↔ ∃ x, s = (Closeds.singleton x).compl
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : T1Space α
s : Opens α
⊢ IsAtom (toDual s.compl.compl) ↔ ∃ x, s.compl.compl = (Closeds.singleton x).compl

tactic: change IsAtom (Closeds.complOrderIso α s.compl) ↔ _
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : T1Space α
s : Opens α
⊢ IsAtom (toDual s.compl.compl) ↔ ∃ x, s.compl.compl = (Closeds.singleton x).compl
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : T1Space α
s : Opens α
⊢ IsAtom ((Closeds.complOrderIso α) s.compl) ↔ ∃ x, s.compl.compl = (Closeds.singleton x).compl

tactic: simp only [(Closeds.complOrderIso α).isAtom_iff, Closeds.isAtom_iff,
  Closeds.compl_bijective.injective.eq_iff]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : T1Space α
s : Opens α
⊢ IsAtom ((Closeds.complOrderIso α) s.compl) ↔ ∃ x, s.compl.compl = (Closeds.singleton x).compl
state_after: no goals
Theorem: Even.zpow_pos_iff
File: Mathlib/Algebra/Order/Field/Power.lean

tactic: obtain ⟨k, rfl⟩ := hn
state_before: α : Type u_1
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
hn : Even n
h : n ≠ 0
⊢ 0 < a ^ n ↔ a ≠ 0
state_after: case intro
α : Type u_1
inst✝ : LinearOrderedField α
a b c d : α
k : ℤ
h : k + k ≠ 0
⊢ 0 < a ^ (k + k) ↔ a ≠ 0

tactic: rw [zpow_add' (by simp [em']), mul_self_pos, zpow_ne_zero_iff (by simpa using h)]
state_before: case intro
α : Type u_1
inst✝ : LinearOrderedField α
a b c d : α
k : ℤ
h : k + k ≠ 0
⊢ 0 < a ^ (k + k) ↔ a ≠ 0
state_after: no goals

tactic: simp [em']
state_before: α : Type u_1
inst✝ : LinearOrderedField α
a b c d : α
k : ℤ
h : k + k ≠ 0
⊢ a ≠ 0 ∨ k + k ≠ 0 ∨ k = 0 ∧ k = 0
state_after: no goals

tactic: simpa using h
state_before: α : Type u_1
inst✝ : LinearOrderedField α
a b c d : α
k : ℤ
h : k + k ≠ 0
⊢ k ≠ 0
state_after: no goals
Theorem: Complex.coe_orthonormalBasisOneI
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: simp [Complex.orthonormalBasisOneI]
state_before: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝⁹ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type u_7
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
⊢ ⇑orthonormalBasisOneI = ![1, I]
state_after: no goals
Theorem: inner_self_eq_norm_sq_to_K
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: rw [← inner_self_ofReal_re, ← norm_sq_eq_inner, ofReal_pow]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x : E
⊢ ⟪x, x⟫_𝕜 = ↑‖x‖ ^ 2
state_after: no goals
Theorem: BoundedContinuousFunction.integrable_of_nnreal
File: Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean

tactic: refine ⟨(NNReal.continuous_coe.comp f.continuous).measurable.aestronglyMeasurable, ?_⟩
state_before: X : Type u_1
inst✝³ : MeasurableSpace X
inst✝² : TopologicalSpace X
inst✝¹ : OpensMeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
f : X →ᵇ ℝ≥0
⊢ Integrable (NNReal.toReal ∘ ⇑f) μ
state_after: X : Type u_1
inst✝³ : MeasurableSpace X
inst✝² : TopologicalSpace X
inst✝¹ : OpensMeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
f : X →ᵇ ℝ≥0
⊢ HasFiniteIntegral (NNReal.toReal ∘ ⇑f) μ

tactic: simp only [HasFiniteIntegral, Function.comp_apply, NNReal.nnnorm_eq]
state_before: X : Type u_1
inst✝³ : MeasurableSpace X
inst✝² : TopologicalSpace X
inst✝¹ : OpensMeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
f : X →ᵇ ℝ≥0
⊢ HasFiniteIntegral (NNReal.toReal ∘ ⇑f) μ
state_after: X : Type u_1
inst✝³ : MeasurableSpace X
inst✝² : TopologicalSpace X
inst✝¹ : OpensMeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
f : X →ᵇ ℝ≥0
⊢ ∫⁻ (a : X), ↑(f a) ∂μ < ⊤

tactic: exact lintegral_lt_top_of_nnreal _ f
state_before: X : Type u_1
inst✝³ : MeasurableSpace X
inst✝² : TopologicalSpace X
inst✝¹ : OpensMeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
f : X →ᵇ ℝ≥0
⊢ ∫⁻ (a : X), ↑(f a) ∂μ < ⊤
state_after: no goals
Theorem: Submodule.range_inclusion
File: Mathlib/Algebra/Module/Submodule/Range.lean

tactic: rw [← map_top, inclusion, LinearMap.map_codRestrict, map_top, range_subtype]
state_before: R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
K : Type u_4
K₂ : Type u_5
M : Type u_6
M₂ : Type u_7
M₃ : Type u_8
V : Type u_9
V₂ : Type u_10
inst✝⁷ : Semiring R
inst✝⁶ : Semiring R₂
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M
inst✝² : Module R₂ M₂
p✝ p' : Submodule R M
q✝ : Submodule R₂ M₂
τ₁₂ : R →+* R₂
F : Type u_11
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F τ₁₂ M M₂
p q : Submodule R M
h : p ≤ q
⊢ range (inclusion h) = comap q.subtype p
state_after: no goals
Theorem: MeasureTheory.lintegral_add_measure
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: simpa [tsum_fintype] using lintegral_sum_measure f fun b => cond b μ ν
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m✝ : MeasurableSpace α
μ✝ ν✝ : Measure α
m : MeasurableSpace α
f : α → ℝ≥0∞
μ ν : Measure α
⊢ ∫⁻ (a : α), f a ∂(μ + ν) = ∫⁻ (a : α), f a ∂μ + ∫⁻ (a : α), f a ∂ν
state_after: no goals
Theorem: Real.rpow_add_int
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [rpow_def, rpow_def, Complex.ofReal_add,
  Complex.cpow_add _ _ (Complex.ofReal_ne_zero.mpr hx), Complex.ofReal_intCast,
  Complex.cpow_intCast, ← Complex.ofReal_zpow, mul_comm, Complex.re_ofReal_mul, mul_comm]
state_before: x✝ y✝ z : ℝ
n✝ : ℕ
x : ℝ
hx : x ≠ 0
y : ℝ
n : ℤ
⊢ x ^ (y + ↑n) = x ^ y * x ^ n
state_after: no goals