1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Ordinal.IsNormal.cof_le
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rcases zero_or_succ_or_limit a with (rfl | ⟨b, rfl⟩ | ha)
state_before: α : Type u_1
r : α → α → Prop
f : Ordinal.{u_2} → Ordinal.{u_2}
hf : IsNormal f
a : Ordinal.{u_2}
⊢ a.cof ≤ (f a).cof
state_after: case inl
α : Type u_1
r : α → α → Prop
f : Ordinal.{u_2} → Ordinal.{u_2}
hf : IsNormal f
⊢ cof 0 ≤ (f 0).cof

case inr.inl.intro
α : Type u_1
r : α → α → Prop
f : Ordinal.{u_2} → Ordinal.{u_2}
hf : IsNormal f
b : Ordinal.{u_2}
⊢ (succ b).cof ≤ (f (succ b)).cof

case inr.inr
α : Type u_1
r : α → α → Prop
f : Ordinal.{u_2} → Ordinal.{u_2}
hf : IsNormal f
a : Ordinal.{u_2}
ha : a.IsLimit
⊢ a.cof ≤ (f a).cof

tactic: rw [cof_zero]
state_before: case inl
α : Type u_1
r : α → α → Prop
f : Ordinal.{u_2} → Ordinal.{u_2}
hf : IsNormal f
⊢ cof 0 ≤ (f 0).cof
state_after: case inl
α : Type u_1
r : α → α → Prop
f : Ordinal.{u_2} → Ordinal.{u_2}
hf : IsNormal f
⊢ 0 ≤ (f 0).cof

tactic: exact zero_le _
state_before: case inl
α : Type u_1
r : α → α → Prop
f : Ordinal.{u_2} → Ordinal.{u_2}
hf : IsNormal f
⊢ 0 ≤ (f 0).cof
state_after: no goals

tactic: rw [cof_succ, Cardinal.one_le_iff_ne_zero, cof_ne_zero, ← Ordinal.pos_iff_ne_zero]
state_before: case inr.inl.intro
α : Type u_1
r : α → α → Prop
f : Ordinal.{u_2} → Ordinal.{u_2}
hf : IsNormal f
b : Ordinal.{u_2}
⊢ (succ b).cof ≤ (f (succ b)).cof
state_after: case inr.inl.intro
α : Type u_1
r : α → α → Prop
f : Ordinal.{u_2} → Ordinal.{u_2}
hf : IsNormal f
b : Ordinal.{u_2}
⊢ 0 < f (succ b)

tactic: exact (Ordinal.zero_le (f b)).trans_lt (hf.1 b)
state_before: case inr.inl.intro
α : Type u_1
r : α → α → Prop
f : Ordinal.{u_2} → Ordinal.{u_2}
hf : IsNormal f
b : Ordinal.{u_2}
⊢ 0 < f (succ b)
state_after: no goals

tactic: rw [hf.cof_eq ha]
state_before: case inr.inr
α : Type u_1
r : α → α → Prop
f : Ordinal.{u_2} → Ordinal.{u_2}
hf : IsNormal f
a : Ordinal.{u_2}
ha : a.IsLimit
⊢ a.cof ≤ (f a).cof
state_after: no goals
Theorem: Multiset.disjoint_ndinsert_left
File: Mathlib/Data/Multiset/FinsetOps.lean

tactic: simp [Disjoint]
state_before: α : Type u_1
inst✝ : DecidableEq α
s✝ : Multiset α
a : α
s t : Multiset α
⊢ (ndinsert a s).Disjoint t ↔ (a ::ₘ s).Disjoint t
state_after: no goals
Theorem: Real.rpow_lt_one_iff'
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [← Real.rpow_lt_rpow_iff hx zero_le_one hy, Real.one_rpow]
state_before: x✝ y✝ z : ℝ
n : ℕ
x y : ℝ
hx : 0 ≤ x
hy : 0 < y
⊢ x ^ y < 1 ↔ x < 1
state_after: no goals
Theorem: Nat.pos_of_bit0_pos
File: Mathlib/Data/Nat/Bits.lean

tactic: cases n
state_before: m n✝ n : ℕ
h : 0 < bit0 n
⊢ 0 < n
state_after: case zero
m n : ℕ
h : 0 < bit0 0
⊢ 0 < 0

case succ
m n n✝ : ℕ
h : 0 < bit0 (n✝ + 1)
⊢ 0 < n✝ + 1

tactic: cases h
state_before: case zero
m n : ℕ
h : 0 < bit0 0
⊢ 0 < 0
state_after: no goals

tactic: apply succ_pos
state_before: case succ
m n n✝ : ℕ
h : 0 < bit0 (n✝ + 1)
⊢ 0 < n✝ + 1
state_after: no goals
Theorem: pythagoreanTriple_comm
File: Mathlib/NumberTheory/PythagoreanTriples.lean

tactic: delta PythagoreanTriple
state_before: x y z : ℤ
⊢ PythagoreanTriple x y z ↔ PythagoreanTriple y x z
state_after: x y z : ℤ
⊢ x * x + y * y = z * z ↔ y * y + x * x = z * z

tactic: rw [add_comm]
state_before: x y z : ℤ
⊢ x * x + y * y = z * z ↔ y * y + x * x = z * z
state_after: no goals
Theorem: MeasureTheory.toFinite_eq_zero_iff
File: Mathlib/MeasureTheory/Measure/WithDensityFinite.lean

tactic: simp [Measure.toFinite, measure_ne_top μ.toFiniteAux Set.univ, toFiniteAux_eq_zero_iff]
state_before: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
⊢ μ.toFinite = 0 ↔ μ = 0
state_after: no goals
Theorem: div_lt_div_of_pos_right
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [div_eq_mul_one_div a c, div_eq_mul_one_div b c]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
h : a < b
hc : 0 < c
⊢ a / c < b / c
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
h : a < b
hc : 0 < c
⊢ a * (1 / c) < b * (1 / c)

tactic: exact mul_lt_mul_of_pos_right h (one_div_pos.2 hc)
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
h : a < b
hc : 0 < c
⊢ a * (1 / c) < b * (1 / c)
state_after: no goals
Theorem: Nat.div_ne_zero_iff
File: Mathlib/Data/Nat/Defs.lean

tactic: rw [ne_eq, Nat.div_eq_zero_iff (Nat.pos_of_ne_zero hb), not_lt]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
hb : b ≠ 0
⊢ a / b ≠ 0 ↔ b ≤ a
state_after: no goals
Theorem: List.Pairwise.forall_of_forall
File: Mathlib/Data/List/Pairwise.lean

tactic: rwa [H.flip_eq]
state_before: α : Type u_1
β : Type u_2
R S T : α → α → Prop
a : α
l : List α
H : Symmetric R
H₁ : ∀ (x : α), x ∈ l → R x x
H₂ : Pairwise R l
⊢ Pairwise (flip R) l
state_after: no goals
Theorem: Submodule.lt_top_of_finrank_lt_finrank
File: Mathlib/LinearAlgebra/Dimension/Constructions.lean

tactic: rw [← finrank_top R M] at lt
state_before: R S : Type u
M : Type v
M' : Type v'
M₁ : Type v
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type u_1
inst✝⁷ : Ring R
inst✝⁶ : CommRing S
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M₁
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M₁
s : Submodule R M
lt : finrank R ↥s < finrank R M
⊢ s < ⊤
state_after: R S : Type u
M : Type v
M' : Type v'
M₁ : Type v
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type u_1
inst✝⁷ : Ring R
inst✝⁶ : CommRing S
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M₁
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M₁
s : Submodule R M
lt : finrank R ↥s < finrank R ↥⊤
⊢ s < ⊤

tactic: exact lt_of_le_of_finrank_lt_finrank le_top lt
state_before: R S : Type u
M : Type v
M' : Type v'
M₁ : Type v
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type u_1
inst✝⁷ : Ring R
inst✝⁶ : CommRing S
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M₁
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M₁
s : Submodule R M
lt : finrank R ↥s < finrank R ↥⊤
⊢ s < ⊤
state_after: no goals
Theorem: PartialEquiv.IsImage.iff_preimage_eq
File: Mathlib/Logic/Equiv/PartialEquiv.lean

tactic: simp only [IsImage, ext_iff, mem_inter_iff, mem_preimage, and_congr_right_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e' : PartialEquiv β γ
s : Set α
t : Set β
x : α
y : β
⊢ e.IsImage s t ↔ e.source ∩ ↑e ⁻¹' t = e.source ∩ s
state_after: no goals
Theorem: covBy_iff_quot_is_simple
File: Mathlib/RingTheory/SimpleModule.lean

tactic: set f : Submodule R B ≃o Set.Iic B := B.mapIic with hf
state_before: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
A B : Submodule R M
hAB : A ≤ B
⊢ A ⋖ B ↔ IsSimpleModule R (↥B ⧸ Submodule.comap B.subtype A)
state_after: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
A B : Submodule R M
hAB : A ≤ B
f : Submodule R ↥B ≃o ↑(Set.Iic B) := B.mapIic
hf : f = B.mapIic
⊢ A ⋖ B ↔ IsSimpleModule R (↥B ⧸ Submodule.comap B.subtype A)

tactic: rw [covBy_iff_coatom_Iic hAB, isSimpleModule_iff_isCoatom, ← OrderIso.isCoatom_iff f, hf]
state_before: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
A B : Submodule R M
hAB : A ≤ B
f : Submodule R ↥B ≃o ↑(Set.Iic B) := B.mapIic
hf : f = B.mapIic
⊢ A ⋖ B ↔ IsSimpleModule R (↥B ⧸ Submodule.comap B.subtype A)
state_after: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
A B : Submodule R M
hAB : A ≤ B
f : Submodule R ↥B ≃o ↑(Set.Iic B) := B.mapIic
hf : f = B.mapIic
⊢ IsCoatom ⟨A, hAB⟩ ↔ IsCoatom (B.mapIic (Submodule.comap B.subtype A))

tactic: simp [-OrderIso.isCoatom_iff, Submodule.map_comap_subtype, inf_eq_right.2 hAB]
state_before: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
A B : Submodule R M
hAB : A ≤ B
f : Submodule R ↥B ≃o ↑(Set.Iic B) := B.mapIic
hf : f = B.mapIic
⊢ IsCoatom ⟨A, hAB⟩ ↔ IsCoatom (B.mapIic (Submodule.comap B.subtype A))
state_after: no goals
Theorem: stdSimplex_eq_inter
File: Mathlib/Analysis/Convex/Basic.lean

tactic: ext f
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝¹ : OrderedSemiring 𝕜
inst✝ : Fintype ι
⊢ stdSimplex 𝕜 ι = (⋂ x, {f | 0 ≤ f x}) ∩ {f | ∑ x : ι, f x = 1}
state_after: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝¹ : OrderedSemiring 𝕜
inst✝ : Fintype ι
f : ι → 𝕜
⊢ f ∈ stdSimplex 𝕜 ι ↔ f ∈ (⋂ x, {f | 0 ≤ f x}) ∩ {f | ∑ x : ι, f x = 1}

tactic: simp only [stdSimplex, Set.mem_inter_iff, Set.mem_iInter, Set.mem_setOf_eq]
state_before: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝¹ : OrderedSemiring 𝕜
inst✝ : Fintype ι
f : ι → 𝕜
⊢ f ∈ stdSimplex 𝕜 ι ↔ f ∈ (⋂ x, {f | 0 ≤ f x}) ∩ {f | ∑ x : ι, f x = 1}
state_after: no goals
Theorem: Finset.map_toDual_max
File: Mathlib/Data/Finset/Lattice.lean

tactic: rw [min_eq_inf_withTop, inf_image]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝ : LinearOrder α
s✝ : Finset α
H : s✝.Nonempty
x : α
s : Finset α
⊢ WithBot.map (⇑toDual) s.max = (image (⇑toDual) s).min
state_after: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝ : LinearOrder α
s✝ : Finset α
H : s✝.Nonempty
x : α
s : Finset α
⊢ WithBot.map (⇑toDual) s.max = s.inf (WithTop.some ∘ ⇑toDual)

tactic: exact congr_fun Option.map_id _
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝ : LinearOrder α
s✝ : Finset α
H : s✝.Nonempty
x : α
s : Finset α
⊢ WithBot.map (⇑toDual) s.max = s.inf (WithTop.some ∘ ⇑toDual)
state_after: no goals
Theorem: Orientation.oangle_neg_left_eq_neg_right
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: rw [← neg_neg y, oangle_neg_neg, neg_neg]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y : V
⊢ o.oangle (-x) y = o.oangle x (-y)
state_after: no goals
Theorem: Filter.coprodᵢ_eq_bot_iff'
File: Mathlib/Order/Filter/Pi.lean

tactic: simpa only [not_neBot, not_and_or, funext_iff, not_forall, not_exists, not_nonempty_iff]
  using coprodᵢ_neBot_iff'.not
state_before: ι : Type u_1
α : ι → Type u_2
f f₁ f₂ : (i : ι) → Filter (α i)
s : (i : ι) → Set (α i)
p : (i : ι) → α i → Prop
⊢ Filter.coprodᵢ f = ⊥ ↔ (∃ i, IsEmpty (α i)) ∨ f = ⊥
state_after: no goals
Theorem: contDiffOn_euclidean
File: Mathlib/Analysis/InnerProductSpace/Calculus.lean

tactic: rw [← (EuclideanSpace.equiv ι 𝕜).comp_contDiffOn_iff, contDiffOn_pi]
state_before: 𝕜 : Type u_1
ι : Type u_2
H : Type u_3
inst✝³ : _root_.RCLike 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
n : ℕ∞
⊢ ContDiffOn 𝕜 n f t ↔ ∀ (i : ι), ContDiffOn 𝕜 n (fun x => f x i) t
state_after: 𝕜 : Type u_1
ι : Type u_2
H : Type u_3
inst✝³ : _root_.RCLike 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
n : ℕ∞
⊢ (∀ (i : ι), ContDiffOn 𝕜 n (fun x => (⇑(EuclideanSpace.equiv ι 𝕜) ∘ f) x i) t) ↔
    ∀ (i : ι), ContDiffOn 𝕜 n (fun x => f x i) t

tactic: rfl
state_before: 𝕜 : Type u_1
ι : Type u_2
H : Type u_3
inst✝³ : _root_.RCLike 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
n : ℕ∞
⊢ (∀ (i : ι), ContDiffOn 𝕜 n (fun x => (⇑(EuclideanSpace.equiv ι 𝕜) ∘ f) x i) t) ↔
    ∀ (i : ι), ContDiffOn 𝕜 n (fun x => f x i) t
state_after: no goals
Theorem: Real.arccos_eq_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: simp [arccos]
state_before: x✝ y x : ℝ
⊢ arccos x = π / 2 ↔ x = 0
state_after: no goals
Theorem: nnnorm_multiset_prod_le
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: push_cast
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
m : Multiset E
⊢ ↑‖m.prod‖₊ ≤ ↑(Multiset.map (fun x => ‖x‖₊) m).sum
state_after: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
m : Multiset E
⊢ ‖m.prod‖ ≤ (Multiset.map toReal (Multiset.map (fun x => ‖x‖₊) m)).sum

tactic: rw [Multiset.map_map]
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
m : Multiset E
⊢ ‖m.prod‖ ≤ (Multiset.map toReal (Multiset.map (fun x => ‖x‖₊) m)).sum
state_after: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
m : Multiset E
⊢ ‖m.prod‖ ≤ (Multiset.map (toReal ∘ fun x => ‖x‖₊) m).sum

tactic: exact norm_multiset_prod_le _
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
m : Multiset E
⊢ ‖m.prod‖ ≤ (Multiset.map (toReal ∘ fun x => ‖x‖₊) m).sum
state_after: no goals
Theorem: Set.pairwise_disjoint_Ioc_intCast
File: Mathlib/Algebra/Order/Interval/Set/Group.lean

tactic: simpa only [zero_add] using pairwise_disjoint_Ioc_add_intCast (0 : α)
state_before: α : Type u_1
inst✝ : OrderedRing α
a : α
⊢ Pairwise (Disjoint on fun n => Ioc (↑n) (↑n + 1))
state_after: no goals
Theorem: Even.add_odd
File: Mathlib/Algebra/Ring/Parity.lean

tactic: rintro ⟨a, rfl⟩ ⟨b, rfl⟩
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Semiring α
inst✝ : Semiring β
a b : α
m n : ℕ
⊢ Even a → Odd b → Odd (a + b)
state_after: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Semiring α
inst✝ : Semiring β
m n : ℕ
a b : α
⊢ Odd (a + a + (2 * b + 1))

tactic: exact ⟨a + b, by rw [mul_add, ← two_mul, add_assoc]⟩
state_before: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Semiring α
inst✝ : Semiring β
m n : ℕ
a b : α
⊢ Odd (a + a + (2 * b + 1))
state_after: no goals

tactic: rw [mul_add, ← two_mul, add_assoc]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Semiring α
inst✝ : Semiring β
m n : ℕ
a b : α
⊢ a + a + (2 * b + 1) = 2 * (a + b) + 1
state_after: no goals
Theorem: Int.emod_lt
File: Mathlib/Algebra/Order/Group/Int.lean

tactic: rw [← emod_abs]
state_before: a b : ℤ
H : b ≠ 0
⊢ a % b < |b|
state_after: a b : ℤ
H : b ≠ 0
⊢ a % |b| < |b|

tactic: exact emod_lt_of_pos _ (abs_pos.2 H)
state_before: a b : ℤ
H : b ≠ 0
⊢ a % |b| < |b|
state_after: no goals
Theorem: WithLp.nnnorm_equiv_symm_fst
File: Mathlib/Analysis/NormedSpace/ProdLp.lean

tactic: induction p generalizing hp with
| top =>
  simp [prod_nnnorm_eq_sup]
| coe p =>
  have hp0 : (p : ℝ) ≠ 0 := mod_cast (zero_lt_one.trans_le <| Fact.out (p := 1 ≤ (p : ℝ≥0∞))).ne'
  simp [prod_nnnorm_eq_add, NNReal.zero_rpow hp0, ← NNReal.rpow_mul, mul_inv_cancel hp0]
state_before: p : ℝ≥0∞
𝕜 : Type u_1
α : Type u_2
β : Type u_3
hp : Fact (1 ≤ p)
inst✝¹ : SeminormedAddCommGroup α
inst✝ : SeminormedAddCommGroup β
x : α
⊢ ‖(WithLp.equiv p (α × β)).symm (x, 0)‖₊ = ‖x‖₊
state_after: no goals

tactic: simp [prod_nnnorm_eq_sup]
state_before: case top
𝕜 : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SeminormedAddCommGroup α
inst✝ : SeminormedAddCommGroup β
x : α
hp : Fact (1 ≤ ⊤)
⊢ ‖(WithLp.equiv ⊤ (α × β)).symm (x, 0)‖₊ = ‖x‖₊
state_after: no goals

tactic: have hp0 : (p : ℝ) ≠ 0 := mod_cast (zero_lt_one.trans_le <| Fact.out (p := 1 ≤ (p : ℝ≥0∞))).ne'
state_before: case coe
𝕜 : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SeminormedAddCommGroup α
inst✝ : SeminormedAddCommGroup β
x : α
p : ℝ≥0
hp : Fact (1 ≤ ↑p)
⊢ ‖(WithLp.equiv (↑p) (α × β)).symm (x, 0)‖₊ = ‖x‖₊
state_after: case coe
𝕜 : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SeminormedAddCommGroup α
inst✝ : SeminormedAddCommGroup β
x : α
p : ℝ≥0
hp : Fact (1 ≤ ↑p)
hp0 : ↑p ≠ 0
⊢ ‖(WithLp.equiv (↑p) (α × β)).symm (x, 0)‖₊ = ‖x‖₊

tactic: simp [prod_nnnorm_eq_add, NNReal.zero_rpow hp0, ← NNReal.rpow_mul, mul_inv_cancel hp0]
state_before: case coe
𝕜 : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SeminormedAddCommGroup α
inst✝ : SeminormedAddCommGroup β
x : α
p : ℝ≥0
hp : Fact (1 ≤ ↑p)
hp0 : ↑p ≠ 0
⊢ ‖(WithLp.equiv (↑p) (α × β)).symm (x, 0)‖₊ = ‖x‖₊
state_after: no goals
Theorem: DirichletCharacter.changeLevel_toUnitHom
File: Mathlib/NumberTheory/DirichletCharacter/Basic.lean

tactic: simp [changeLevel]
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
m : ℕ
hm : n ∣ m
⊢ toUnitHom ((changeLevel hm) χ) = (toUnitHom χ).comp (ZMod.unitsMap hm)
state_after: no goals
Theorem: ProbabilityTheory.kernel.compProd_eq_sum_compProd
File: Mathlib/Probability/Kernel/Composition.lean

tactic: ext a s hs
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s : Set (β × γ)
κ : ↥(kernel α β)
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) γ)
inst✝ : IsSFiniteKernel η
⊢ κ ⊗ₖ η = kernel.sum fun n => kernel.sum fun m => seq κ n ⊗ₖ seq η m
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s✝ : Set (β × γ)
κ : ↥(kernel α β)
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) γ)
inst✝ : IsSFiniteKernel η
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ((κ ⊗ₖ η) a) s = ((kernel.sum fun n => kernel.sum fun m => seq κ n ⊗ₖ seq η m) a) s

tactic: simp_rw [kernel.sum_apply' _ a hs]
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s✝ : Set (β × γ)
κ : ↥(kernel α β)
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) γ)
inst✝ : IsSFiniteKernel η
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ((κ ⊗ₖ η) a) s = ((kernel.sum fun n => kernel.sum fun m => seq κ n ⊗ₖ seq η m) a) s
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s✝ : Set (β × γ)
κ : ↥(kernel α β)
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) γ)
inst✝ : IsSFiniteKernel η
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ((κ ⊗ₖ η) a) s = ∑' (n : ℕ) (n_1 : ℕ), ((seq κ n ⊗ₖ seq η n_1) a) s

tactic: rw [compProd_eq_tsum_compProd κ η a hs]
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s✝ : Set (β × γ)
κ : ↥(kernel α β)
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) γ)
inst✝ : IsSFiniteKernel η
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ((κ ⊗ₖ η) a) s = ∑' (n : ℕ) (n_1 : ℕ), ((seq κ n ⊗ₖ seq η n_1) a) s
state_after: no goals
Theorem: Matrix.diag_col_mul_row
File: Mathlib/Data/Matrix/RowCol.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝² : Mul α
inst✝¹ : AddCommMonoid α
inst✝ : Unique ι
a b : n → α
⊢ (col ι a * row ι b).diag = a * b
state_after: case h
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝² : Mul α
inst✝¹ : AddCommMonoid α
inst✝ : Unique ι
a b : n → α
x✝ : n
⊢ (col ι a * row ι b).diag x✝ = (a * b) x✝

tactic: simp [Matrix.mul_apply, col, row]
state_before: case h
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝² : Mul α
inst✝¹ : AddCommMonoid α
inst✝ : Unique ι
a b : n → α
x✝ : n
⊢ (col ι a * row ι b).diag x✝ = (a * b) x✝
state_after: no goals
Theorem: tsub_le_tsub_iff_right
File: Mathlib/Algebra/Order/Sub/Canonical.lean

tactic: rw [tsub_le_iff_right, tsub_add_cancel_of_le h]
state_before: α : Type u_1
inst✝⁵ : AddCommSemigroup α
inst✝⁴ : PartialOrder α
inst✝³ : ExistsAddOfLE α
inst✝² : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
h : c ≤ b
⊢ a - c ≤ b - c ↔ a ≤ b
state_after: no goals
Theorem: MeasureTheory.setIntegral_prod_mul
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

tactic: rw [← Measure.prod_restrict s t]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : MeasurableSpace α'
inst✝⁹ : MeasurableSpace β
inst✝⁸ : MeasurableSpace β'
inst✝⁷ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : SigmaFinite ν
inst✝⁴ : NormedSpace ℝ E
inst✝³ : SigmaFinite μ
E' : Type u_7
inst✝² : NormedAddCommGroup E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_8
inst✝ : _root_.RCLike L
f : α → L
g : β → L
s : Set α
t : Set β
⊢ ∫ (z : α × β) in s ×ˢ t, f z.1 * g z.2 ∂μ.prod ν = (∫ (x : α) in s, f x ∂μ) * ∫ (y : β) in t, g y ∂ν
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : MeasurableSpace α'
inst✝⁹ : MeasurableSpace β
inst✝⁸ : MeasurableSpace β'
inst✝⁷ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : SigmaFinite ν
inst✝⁴ : NormedSpace ℝ E
inst✝³ : SigmaFinite μ
E' : Type u_7
inst✝² : NormedAddCommGroup E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_8
inst✝ : _root_.RCLike L
f : α → L
g : β → L
s : Set α
t : Set β
⊢ ∫ (z : α × β), f z.1 * g z.2 ∂(μ.restrict s).prod (ν.restrict t) = (∫ (x : α) in s, f x ∂μ) * ∫ (y : β) in t, g y ∂ν

tactic: apply integral_prod_mul
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : MeasurableSpace α'
inst✝⁹ : MeasurableSpace β
inst✝⁸ : MeasurableSpace β'
inst✝⁷ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : SigmaFinite ν
inst✝⁴ : NormedSpace ℝ E
inst✝³ : SigmaFinite μ
E' : Type u_7
inst✝² : NormedAddCommGroup E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_8
inst✝ : _root_.RCLike L
f : α → L
g : β → L
s : Set α
t : Set β
⊢ ∫ (z : α × β), f z.1 * g z.2 ∂(μ.restrict s).prod (ν.restrict t) = (∫ (x : α) in s, f x ∂μ) * ∫ (y : β) in t, g y ∂ν
state_after: no goals
Theorem: Finset.map_sups
File: Mathlib/Data/Finset/Sups.lean

tactic: simpa [map_eq_image] using image_sups f s t
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝⁵ : DecidableEq α
inst✝⁴ : DecidableEq β
inst✝³ : SemilatticeSup α
inst✝² : SemilatticeSup β
inst✝¹ : FunLike F α β
inst✝ : SupHomClass F α β
s✝ s₁ s₂ t✝ t₁ t₂ u v : Finset α
a b c : α
f : F
hf : Injective ⇑f
s t : Finset α
⊢ map { toFun := ⇑f, inj' := hf } (s ⊻ t) = map { toFun := ⇑f, inj' := hf } s ⊻ map { toFun := ⇑f, inj' := hf } t
state_after: no goals
Theorem: toIocMod_add_left
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [add_comm, toIocMod_add_right]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
⊢ toIocMod hp a (p + b) = toIocMod hp a b
state_after: no goals