tasksource/leandojo huggingface dataset:
Theorem: Fin.append_left_eq_cons
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: ext i
state_before: m n✝ : ℕ
α✝ : Fin (n✝ + 1) → Type u
x✝ : α✝ 0
q : (i : Fin (n✝ + 1)) → α✝ i
p : (i : Fin n✝) → α✝ (succ i)
i : Fin n✝
y : α✝ (succ i)
z : α✝ 0
α : Type u_1
n : ℕ
x₀ : Fin 1 → α
x : Fin n → α
⊢ append x₀ x = cons (x₀ 0) x ∘ ↑(cast (_ : 1 + n = n + 1))

tactic: refine' Fin.addCases _ _ i <;> clear i
state_before: case h
m n✝ : ℕ
α✝ : Fin (n✝ + 1) → Type u
x✝ : α✝ 0
q : (i : Fin (n✝ + 1)) → α✝ i
p : (i : Fin n✝) → α✝ (succ i)
i✝ : Fin n✝
y : α✝ (succ i✝)
z : α✝ 0
α : Type u_1
n : ℕ
x₀ : Fin 1 → α
x : Fin n → α
i : Fin (1 + n)
⊢ append x₀ x i = (cons (x₀ 0) x ∘ ↑(cast (_ : 1 + n = n + 1))) i

tactic: intro i
state_before: case h.refine'_1
m n✝ : ℕ
α✝ : Fin (n✝ + 1) → Type u
x✝ : α✝ 0
q : (i : Fin (n✝ + 1)) → α✝ i
p : (i : Fin n✝) → α✝ (succ i)
i : Fin n✝
y : α✝ (succ i)
z : α✝ 0
α : Type u_1
n : ℕ
x₀ : Fin 1 → α
x : Fin n → α
⊢ ∀ (i : Fin 1), append x₀ x (↑(castAdd n) i) = (cons (x₀ 0) x ∘ ↑(cast (_ : 1 + n = n + 1))) (↑(castAdd n) i)

tactic: rw [Subsingleton.elim i 0, Fin.append_left, Function.comp_apply, eq_comm]
state_before: case h.refine'_1
m n✝ : ℕ
α✝ : Fin (n✝ + 1) → Type u
x✝ : α✝ 0
q : (i : Fin (n✝ + 1)) → α✝ i
p : (i : Fin n✝) → α✝ (succ i)
i✝ : Fin n✝
y : α✝ (succ i✝)
z : α✝ 0
α : Type u_1
n : ℕ
x₀ : Fin 1 → α
x : Fin n → α
i : Fin 1
⊢ append x₀ x (↑(castAdd n) i) = (cons (x₀ 0) x ∘ ↑(cast (_ : 1 + n = n + 1))) (↑(castAdd n) i)

tactic: exact Fin.cons_zero _ _
state_before: case h.refine'_1
m n✝ : ℕ
α✝ : Fin (n✝ + 1) → Type u
x✝ : α✝ 0
q : (i : Fin (n✝ + 1)) → α✝ i
p : (i : Fin n✝) → α✝ (succ i)
i✝ : Fin n✝
y : α✝ (succ i✝)
z : α✝ 0
α : Type u_1
n : ℕ
x₀ : Fin 1 → α
x : Fin n → α
i : Fin 1
⊢ cons (x₀ 0) x (↑(cast (_ : 1 + n = n + 1)) (↑(castAdd n) 0)) = x₀ 0

tactic: intro i
state_before: case h.refine'_2
m n✝ : ℕ
α✝ : Fin (n✝ + 1) → Type u
x✝ : α✝ 0
q : (i : Fin (n✝ + 1)) → α✝ i
p : (i : Fin n✝) → α✝ (succ i)
i : Fin n✝
y : α✝ (succ i)
z : α✝ 0
α : Type u_1
n : ℕ
x₀ : Fin 1 → α
x : Fin n → α
⊢ ∀ (i : Fin n), append x₀ x (↑(natAdd 1) i) = (cons (x₀ 0) x ∘ ↑(cast (_ : 1 + n = n + 1))) (↑(natAdd 1) i)

tactic: rw [Fin.append_right, Function.comp_apply, Fin.cast_natAdd, eq_comm, Fin.addNat_one]
state_before: case h.refine'_2
m n✝ : ℕ
α✝ : Fin (n✝ + 1) → Type u
x✝ : α✝ 0
q : (i : Fin (n✝ + 1)) → α✝ i
p : (i : Fin n✝) → α✝ (succ i)
i✝ : Fin n✝
y : α✝ (succ i✝)
z : α✝ 0
α : Type u_1
n : ℕ
x₀ : Fin 1 → α
x : Fin n → α
i : Fin n
⊢ append x₀ x (↑(natAdd 1) i) = (cons (x₀ 0) x ∘ ↑(cast (_ : 1 + n = n + 1))) (↑(natAdd 1) i)

tactic: exact Fin.cons_succ _ _ _
state_before: case h.refine'_2
m n✝ : ℕ
α✝ : Fin (n✝ + 1) → Type u
x✝ : α✝ 0
q : (i : Fin (n✝ + 1)) → α✝ i
p : (i : Fin n✝) → α✝ (succ i)
i✝ : Fin n✝
y : α✝ (succ i✝)
z : α✝ 0
α : Type u_1
n : ℕ
x₀ : Fin 1 → α
x : Fin n → α
i : Fin n
⊢ cons (x₀ 0) x (succ i) = x i
Theorem: Set.exists_range_iff'
File: Mathlib/Data/Set/Image.lean

tactic: simpa only [exists_prop] using exists_range_iff
state_before: α : Type u_1
β : Type ?u.66367
γ : Type ?u.66370
ι : Sort u_2
ι' : Sort ?u.66376
f : ι → α
s t : Set α
p : α → Prop
⊢ (∃ a, a ∈ range f ∧ p a) ↔ ∃ i, p (f i)
Theorem: List.pmap_eq_map
File: Mathlib/Data/List/Basic.lean

tactic: induction l <;> [rfl; simp only [*, pmap, map]]
state_before: ι : Type ?u.324787
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
p : α → Prop
f : α → β
l : List α
H : ∀ (a : α), a ∈ l → p a
⊢ pmap (fun a x => f a) l H = map f l
Theorem: Subgroup.isComplement_singleton_right
File: Mathlib/GroupTheory/Complement.lean

tactic: refine'
  ⟨fun h => top_le_iff.mp fun x _ => _, fun h => h ▸ isComplement_top_singleton⟩
state_before: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
g : G
⊢ IsComplement S {g} ↔ S = ⊤

tactic: obtain ⟨y, hy⟩ := h.2 (x * g)
state_before: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
g : G
h : IsComplement S {g}
x : G
x✝ : x ∈ ⊤
⊢ x ∈ S

tactic: conv_rhs at hy => rw [← show y.2.1 = g from y.2.2]
state_before: case intro
G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
g : G
h : IsComplement S {g}
x : G
x✝ : x ∈ ⊤
y : ↑S × ↑{g}
hy : (fun x => ↑x.fst * ↑x.snd) y = x * g
⊢ x ∈ S

tactic: rw [← mul_right_cancel hy]
state_before: case intro
G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
g : G
h : IsComplement S {g}
x : G
x✝ : x ∈ ⊤
y : ↑S × ↑{g}
hy : (fun x => ↑x.fst * ↑x.snd) y = x * ↑y.snd
⊢ x ∈ S

tactic: exact y.1.2
state_before: case intro
G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
g : G
h : IsComplement S {g}
x : G
x✝ : x ∈ ⊤
y : ↑S × ↑{g}
hy : (fun x => ↑x.fst * ↑x.snd) y = x * ↑y.snd
⊢ ↑y.fst ∈ S
Theorem: zpow_neg
File: Mathlib/Algebra/GroupPower/Basic.lean

tactic: change a ^ (0 : ℤ) = (a ^ (0 : ℤ))⁻¹
state_before: α : Type u_1
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝ : DivisionMonoid α
a✝ b a : α
⊢ a ^ (-0) = (a ^ 0)⁻¹

tactic: simp
state_before: α : Type u_1
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝ : DivisionMonoid α
a✝ b a : α
⊢ a ^ 0 = (a ^ 0)⁻¹

tactic: rw [zpow_negSucc, inv_inv, ← zpow_ofNat]
state_before: α : Type u_1
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝ : DivisionMonoid α
a✝ b a : α
n : ℕ
⊢ a ^ (-Int.negSucc n) = (a ^ Int.negSucc n)⁻¹

tactic: rfl
state_before: α : Type u_1
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝ : DivisionMonoid α
a✝ b a : α
n : ℕ
⊢ a ^ (-Int.negSucc n) = a ^ ↑(n + 1)
Theorem: inv_eq_of_aeval_divX_ne_zero
File: Mathlib/RingTheory/Algebraic.lean

tactic: rw [inv_eq_iff_eq_inv, inv_div, eq_comm, div_eq_iff, sub_eq_iff_eq_add, mul_comm]
state_before: R : Type ?u.584800
S : Type ?u.584803
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
inst✝³ : CommRing S
K : Type u_1
L : Type u_2
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
A : Subalgebra K L
x : L
p : K[X]
aeval_ne : ↑(aeval x) (divX p) ≠ 0
⊢ x⁻¹ = ↑(aeval x) (divX p) / (↑(aeval x) p - ↑(algebraMap K L) (coeff p 0))

tactic: conv_lhs => rw [← divX_mul_X_add p]
state_before: R : Type ?u.584800
S : Type ?u.584803
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
inst✝³ : CommRing S
K : Type u_1
L : Type u_2
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
A : Subalgebra K L
x : L
p : K[X]
aeval_ne : ↑(aeval x) (divX p) ≠ 0
⊢ ↑(aeval x) p = ↑(aeval x) (divX p) * x + ↑(algebraMap K L) (coeff p 0)

R : Type ?u.584800
S : Type ?u.584803
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
inst✝³ : CommRing S
K : Type u_1
L : Type u_2
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
A : Subalgebra K L
x : L
p : K[X]
aeval_ne : ↑(aeval x) (divX p) ≠ 0
⊢ ↑(aeval x) (divX p) ≠ 0

tactic: rw [AlgHom.map_add, AlgHom.map_mul, aeval_X, aeval_C]
state_before: R : Type ?u.584800
S : Type ?u.584803
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
inst✝³ : CommRing S
K : Type u_1
L : Type u_2
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
A : Subalgebra K L
x : L
p : K[X]
aeval_ne : ↑(aeval x) (divX p) ≠ 0
⊢ ↑(aeval x) (divX p * X + ↑C (coeff p 0)) = ↑(aeval x) (divX p) * x + ↑(algebraMap K L) (coeff p 0)

R : Type ?u.584800
S : Type ?u.584803
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
inst✝³ : CommRing S
K : Type u_1
L : Type u_2
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
A : Subalgebra K L
x : L
p : K[X]
aeval_ne : ↑(aeval x) (divX p) ≠ 0
⊢ ↑(aeval x) (divX p) ≠ 0

tactic: exact aeval_ne
state_before: R : Type ?u.584800
S : Type ?u.584803
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
inst✝³ : CommRing S
K : Type u_1
L : Type u_2
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
A : Subalgebra K L
x : L
p : K[X]
aeval_ne : ↑(aeval x) (divX p) ≠ 0
⊢ ↑(aeval x) (divX p) ≠ 0
Theorem: IsBezout.gcd_dvd_right
File: Mathlib/RingTheory/Bezout.lean

tactic: simp
state_before: R : Type u
inst✝¹ : CommRing R
inst✝ : IsBezout R
x y : R
⊢ y ∈ {x, y}
Theorem: Complex.cosh_sub
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp [sub_eq_add_neg, cosh_add, sinh_neg, cosh_neg]
state_before: x y : ℂ
⊢ cosh (x - y) = cosh x * cosh y - sinh x * sinh y
Theorem: Function.support_mul_subset_right
File: Mathlib/Algebra/Support.lean

tactic: simp only [hg, mul_zero]
state_before: α : Type u_2
β : Type ?u.85689
A : Type ?u.85692
B : Type ?u.85695
M : Type ?u.85698
N : Type ?u.85701
P : Type ?u.85704
R : Type u_1
S : Type ?u.85710
G : Type ?u.85713
M₀ : Type ?u.85716
G₀ : Type ?u.85719
ι : Sort ?u.85722
inst✝ : MulZeroClass R
f g : α → R
x : α
hfg : x ∈ support fun x => f x * g x
hg : g x = 0
⊢ (fun x => f x * g x) x = 0
Theorem: CategoryTheory.Limits.prod.pentagon
File: Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean

tactic: simp
state_before: C : Type u
inst✝¹ : Category C
X✝ Y✝ : C
inst✝ : HasBinaryProducts C
W X Y Z : C
⊢ map (associator W X Y).hom (𝟙 Z) ≫ (associator W (X ⨯ Y) Z).hom ≫ map (𝟙 W) (associator X Y Z).hom =
    (associator (W ⨯ X) Y Z).hom ≫ (associator W X (Y ⨯ Z)).hom
Theorem: nhds_false
File: Mathlib/Topology/Order.lean

tactic: simp [@and_comm (_ ∈ _)]
state_before: α : Type ?u.47259
inst✝ : TopologicalSpace α
⊢ (⨅ (s : Set Prop) (_ : s ∈ {s | False ∈ s ∧ s ∈ {{True}}}), 𝓟 s) = ⊤
Theorem: IsClosed.cthickening_eq_biUnion_closedBall
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: rw [cthickening_eq_biUnion_closedBall E hδ, hE.closure_eq]
state_before: ι : Sort ?u.149919
α✝ : Type u
β : Type v
inst✝² : PseudoEMetricSpace α✝
δ ε : ℝ
s t : Set α✝
x : α✝
α : Type u_1
inst✝¹ : PseudoMetricSpace α
inst✝ : ProperSpace α
E : Set α
hE : IsClosed E
hδ : 0 ≤ δ
⊢ cthickening δ E = ⋃ (x : α) (_ : x ∈ E), closedBall x δ
Theorem: MeasureTheory.Measure.add_haar_closedBall_center
File: Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean

tactic: rw [this, measure_preimage_add]
state_before: E✝ : Type ?u.1969525
inst✝¹² : NormedAddCommGroup E✝
inst✝¹¹ : NormedSpace ℝ E✝
inst✝¹⁰ : MeasurableSpace E✝
inst✝⁹ : BorelSpace E✝
inst✝⁸ : FiniteDimensional ℝ E✝
μ✝ : Measure E✝
inst✝⁷ : IsAddHaarMeasure μ✝
F : Type ?u.1970194
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace ℝ F
inst✝⁴ : CompleteSpace F
s : Set E✝
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
x : E
r : ℝ
this : closedBall 0 r = (fun x x_1 => x + x_1) x ⁻¹' closedBall x r
⊢ ↑↑μ (closedBall x r) = ↑↑μ (closedBall 0 r)

tactic: simp [preimage_add_closedBall]
state_before: E✝ : Type ?u.1969525
inst✝¹² : NormedAddCommGroup E✝
inst✝¹¹ : NormedSpace ℝ E✝
inst✝¹⁰ : MeasurableSpace E✝
inst✝⁹ : BorelSpace E✝
inst✝⁸ : FiniteDimensional ℝ E✝
μ✝ : Measure E✝
inst✝⁷ : IsAddHaarMeasure μ✝
F : Type ?u.1970194
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace ℝ F
inst✝⁴ : CompleteSpace F
s : Set E✝
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
x : E
r : ℝ
⊢ closedBall 0 r = (fun x x_1 => x + x_1) x ⁻¹' closedBall x r
Theorem: CategoryTheory.Limits.inl_comp_pushoutSymmetry_inv
File: Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean

tactic: simp [Iso.comp_inv_eq]
state_before: C : Type u
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
W X Y Z : C
f : X ⟶ Y
g : X ⟶ Z
inst✝ : HasPushout f g
⊢ pushout.inl ≫ (pushoutSymmetry f g).inv = pushout.inr
Theorem: FirstOrder.Language.BoundedFormula.realize_iff
File: Mathlib/ModelTheory/Semantics.lean

tactic: simp only [BoundedFormula.iff, realize_inf, realize_imp, and_imp, ← iff_def]
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.70178
P : Type ?u.70181
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
n l : ℕ
φ ψ : BoundedFormula L α l
θ : BoundedFormula L α (Nat.succ l)
v : α → M
xs : Fin l → M
⊢ Realize (φ ⇔ ψ) v xs ↔ (Realize φ v xs ↔ Realize ψ v xs)
Theorem: Array.get_set_ne
File: Std/Data/Array/Lemmas.lean

tactic: simp [*]
state_before: α : Type ?u.15121
a : Array α
i : Fin (size a)
j : Nat
v : α
hj : j < size a
h : i.val ≠ j
⊢ j < size (set a i v)

tactic: simp only [set, getElem_eq_data_get, List.get_set_ne h]
state_before: α : Type u_1
a : Array α
i : Fin (size a)
j : Nat
v : α
hj : j < size a
h : i.val ≠ j
⊢ (set a i v)[j] = a[j]
Theorem: cauchySeq_of_controlled
File: Mathlib/Topology/UniformSpace/Cauchy.lean

tactic: intro s hs
state_before: α : Type u
β : Type v
inst✝² : UniformSpace α
inst✝¹ : SemilatticeSup β
inst✝ : Nonempty β
U : β → Set (α × α)
hU : ∀ (s : Set (α × α)), s ∈ 𝓤 α → ∃ n, U n ⊆ s
f : β → α
hf : ∀ ⦃N m n : β⦄, N ≤ m → N ≤ n → (f m, f n) ∈ U N
⊢ Tendsto (Prod.map f f) atTop (𝓤 α)

tactic: rw [mem_map, mem_atTop_sets]
state_before: α : Type u
β : Type v
inst✝² : UniformSpace α
inst✝¹ : SemilatticeSup β
inst✝ : Nonempty β
U : β → Set (α × α)
hU : ∀ (s : Set (α × α)), s ∈ 𝓤 α → ∃ n, U n ⊆ s
f : β → α
hf : ∀ ⦃N m n : β⦄, N ≤ m → N ≤ n → (f m, f n) ∈ U N
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ s ∈ map (Prod.map f f) atTop

tactic: cases' hU s hs with N hN
state_before: α : Type u
β : Type v
inst✝² : UniformSpace α
inst✝¹ : SemilatticeSup β
inst✝ : Nonempty β
U : β → Set (α × α)
hU : ∀ (s : Set (α × α)), s ∈ 𝓤 α → ∃ n, U n ⊆ s
f : β → α
hf : ∀ ⦃N m n : β⦄, N ≤ m → N ≤ n → (f m, f n) ∈ U N
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ ∃ a, ∀ (b : β × β), b ≥ a → b ∈ Prod.map f f ⁻¹' s

tactic: refine' ⟨(N, N), fun mn hmn => _⟩
state_before: case intro
α : Type u
β : Type v
inst✝² : UniformSpace α
inst✝¹ : SemilatticeSup β
inst✝ : Nonempty β
U : β → Set (α × α)
hU : ∀ (s : Set (α × α)), s ∈ 𝓤 α → ∃ n, U n ⊆ s
f : β → α
hf : ∀ ⦃N m n : β⦄, N ≤ m → N ≤ n → (f m, f n) ∈ U N
s : Set (α × α)
hs : s ∈ 𝓤 α
N : β
hN : U N ⊆ s
⊢ ∃ a, ∀ (b : β × β), b ≥ a → b ∈ Prod.map f f ⁻¹' s

tactic: cases' mn with m n
state_before: case intro
α : Type u
β : Type v
inst✝² : UniformSpace α
inst✝¹ : SemilatticeSup β
inst✝ : Nonempty β
U : β → Set (α × α)
hU : ∀ (s : Set (α × α)), s ∈ 𝓤 α → ∃ n, U n ⊆ s
f : β → α
hf : ∀ ⦃N m n : β⦄, N ≤ m → N ≤ n → (f m, f n) ∈ U N
s : Set (α × α)
hs : s ∈ 𝓤 α
N : β
hN : U N ⊆ s
mn : β × β
hmn : mn ≥ (N, N)
⊢ mn ∈ Prod.map f f ⁻¹' s

tactic: exact hN (hf hmn.1 hmn.2)
state_before: case intro.mk
α : Type u
β : Type v
inst✝² : UniformSpace α
inst✝¹ : SemilatticeSup β
inst✝ : Nonempty β
U : β → Set (α × α)
hU : ∀ (s : Set (α × α)), s ∈ 𝓤 α → ∃ n, U n ⊆ s
f : β → α
hf : ∀ ⦃N m n : β⦄, N ≤ m → N ≤ n → (f m, f n) ∈ U N
s : Set (α × α)
hs : s ∈ 𝓤 α
N : β
hN : U N ⊆ s
m n : β
hmn : (m, n) ≥ (N, N)
⊢ (m, n) ∈ Prod.map f f ⁻¹' s
Theorem: MeasureTheory.integral_mul_right_eq_self
File: Mathlib/MeasureTheory/Group/Integration.lean

tactic: have h_mul : MeasurableEmbedding fun x => x * g :=
  (MeasurableEquiv.mulRight g).measurableEmbedding
state_before: 𝕜 : Type ?u.38885
M : Type ?u.38888
α : Type ?u.38891
G : Type u_1
E : Type u_2
F : Type ?u.38900
inst✝⁷ : MeasurableSpace G
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
μ : Measure G
f✝ : G → E
g✝ : G
inst✝² : Group G
inst✝¹ : MeasurableMul G
inst✝ : IsMulRightInvariant μ
f : G → E
g : G
⊢ (∫ (x : G), f (x * g) ∂μ) = ∫ (x : G), f x ∂μ

tactic: rw [← h_mul.integral_map, map_mul_right_eq_self]
state_before: 𝕜 : Type ?u.38885
M : Type ?u.38888
α : Type ?u.38891
G : Type u_1
E : Type u_2
F : Type ?u.38900
inst✝⁷ : MeasurableSpace G
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
μ : Measure G
f✝ : G → E
g✝ : G
inst✝² : Group G
inst✝¹ : MeasurableMul G
inst✝ : IsMulRightInvariant μ
f : G → E
g : G
h_mul : MeasurableEmbedding fun x => x * g
⊢ (∫ (x : G), f (x * g) ∂μ) = ∫ (x : G), f x ∂μ
Theorem: AEMeasurable.prod_swap
File: Mathlib/MeasureTheory/Constructions/Prod/Basic.lean

tactic: rw [← Measure.prod_swap] at hf
state_before: α : Type u_1
α' : Type ?u.4544974
β : Type u_2
β' : Type ?u.4544980
γ : Type u_3
E : Type ?u.4544986
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : MeasureTheory.Measure α
ν ν' : MeasureTheory.Measure β
τ : MeasureTheory.Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
f : β × α → γ
hf : AEMeasurable f
⊢ AEMeasurable fun z => f (Prod.swap z)

tactic: exact hf.comp_measurable measurable_swap
state_before: α : Type u_1
α' : Type ?u.4544974
β : Type u_2
β' : Type ?u.4544980
γ : Type u_3
E : Type ?u.4544986
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : MeasureTheory.Measure α
ν ν' : MeasureTheory.Measure β
τ : MeasureTheory.Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
f : β × α → γ
hf : AEMeasurable f
⊢ AEMeasurable fun z => f (Prod.swap z)
Theorem: Real.ext_cauchy_iff
File: Mathlib/Data/Real/Basic.lean

tactic: rw [ofCauchy.injEq]
state_before: x y : ℝ
a b : Cauchy abs
⊢ { cauchy := a } = { cauchy := b } ↔ { cauchy := a }.cauchy = { cauchy := b }.cauchy
Theorem: CategoryTheory.Biprod.ofComponents_snd
File: Mathlib/CategoryTheory/Preadditive/Biproducts.lean

tactic: simp [Biprod.ofComponents]
state_before: C : Type u
inst✝² : Category C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X₁ X₂ Y₁ Y₂ : C
f₁₁ : X₁ ⟶ Y₁
f₁₂ : X₁ ⟶ Y₂
f₂₁ : X₂ ⟶ Y₁
f₂₂ : X₂ ⟶ Y₂
⊢ ofComponents f₁₁ f₁₂ f₂₁ f₂₂ ≫ biprod.snd = biprod.fst ≫ f₁₂ + biprod.snd ≫ f₂₂
Theorem: IsTorsion.not_torsion_free
File: Mathlib/GroupTheory/Torsion.lean

tactic: obtain ⟨x, hx⟩ := (nontrivial_iff_exists_ne (1 : G)).mp hN
state_before: G : Type u_1
H : Type ?u.210692
inst✝ : Group G
hN : Nontrivial G
tG : IsTorsion G
⊢ ∃ g, g ≠ 1 ∧ IsOfFinOrder g

tactic: exact ⟨x, hx, tG x⟩
state_before: case intro
G : Type u_1
H : Type ?u.210692
inst✝ : Group G
hN : Nontrivial G
tG : IsTorsion G
x : G
hx : x ≠ 1
⊢ ∃ g, g ≠ 1 ∧ IsOfFinOrder g
Theorem: circleIntegral.norm_integral_le_of_norm_le_const'
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: simp [norm_smul]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
R C : ℝ
hf : ∀ (z : ℂ), z ∈ sphere c (Abs.abs R) → ‖f z‖ ≤ C
θ : ℝ
x✝ : θ ∈ Ι 0 (2 * π)
⊢ ‖deriv (circleMap c R) θ • f (circleMap c R θ)‖ = Abs.abs R * ‖f (circleMap c R θ)‖

tactic: rw [sub_zero, _root_.abs_of_pos Real.two_pi_pos]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
R C : ℝ
hf : ∀ (z : ℂ), z ∈ sphere c (Abs.abs R) → ‖f z‖ ≤ C
⊢ Abs.abs R * C * Abs.abs (2 * π - 0) = 2 * π * Abs.abs R * C

tactic: ac_rfl
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
R C : ℝ
hf : ∀ (z : ℂ), z ∈ sphere c (Abs.abs R) → ‖f z‖ ≤ C
⊢ Abs.abs R * C * (2 * π) = 2 * π * Abs.abs R * C
Theorem: SimpleGraph.maxDegree_lt_card_verts
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: cases' G.exists_maximal_degree_vertex with v hv
state_before: ι : Sort ?u.296737
𝕜 : Type ?u.296740
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v w : V
e : Sym2 V
inst✝² : Fintype V
inst✝¹ : DecidableRel G.Adj
inst✝ : Nonempty V
⊢ maxDegree G < Fintype.card V

tactic: rw [hv]
state_before: case intro
ι : Sort ?u.296737
𝕜 : Type ?u.296740
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v✝ w : V
e : Sym2 V
inst✝² : Fintype V
inst✝¹ : DecidableRel G.Adj
inst✝ : Nonempty V
v : V
hv : maxDegree G = degree G v
⊢ maxDegree G < Fintype.card V

tactic: apply G.degree_lt_card_verts v
state_before: case intro
ι : Sort ?u.296737
𝕜 : Type ?u.296740
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v✝ w : V
e : Sym2 V
inst✝² : Fintype V
inst✝¹ : DecidableRel G.Adj
inst✝ : Nonempty V
v : V
hv : maxDegree G = degree G v
⊢ degree G v < Fintype.card V
Theorem: MeasureTheory.Integrable.bdd_mul'
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: refine' Integrable.mono' (hg.norm.smul c) (hf.mul hg.1) _
state_before: α : Type u_2
β : Type ?u.1127420
γ : Type ?u.1127423
δ : Type ?u.1127426
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_1
inst✝ : NormedRing 𝕜
f✝ f g : α → 𝕜
c : ℝ
hg : Integrable g
hf : AEStronglyMeasurable f μ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
⊢ Integrable fun x => f x * g x

tactic: filter_upwards [hf_bound] with x hx
state_before: α : Type u_2
β : Type ?u.1127420
γ : Type ?u.1127423
δ : Type ?u.1127426
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_1
inst✝ : NormedRing 𝕜
f✝ f g : α → 𝕜
c : ℝ
hg : Integrable g
hf : AEStronglyMeasurable f μ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
⊢ ∀ᵐ (a : α) ∂μ, ‖f a * g a‖ ≤ (c • fun a => ‖g a‖) a

tactic: rw [Pi.smul_apply, smul_eq_mul]
state_before: case h
α : Type u_2
β : Type ?u.1127420
γ : Type ?u.1127423
δ : Type ?u.1127426
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_1
inst✝ : NormedRing 𝕜
f✝ f g : α → 𝕜
c : ℝ
hg : Integrable g
hf : AEStronglyMeasurable f μ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
x : α
hx : ‖f x‖ ≤ c
⊢ ‖f x * g x‖ ≤ (c • fun a => ‖g a‖) x

tactic: exact (norm_mul_le _ _).trans (mul_le_mul_of_nonneg_right hx (norm_nonneg _))
state_before: case h
α : Type u_2
β : Type ?u.1127420
γ : Type ?u.1127423
δ : Type ?u.1127426
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_1
inst✝ : NormedRing 𝕜
f✝ f g : α → 𝕜
c : ℝ
hg : Integrable g
hf : AEStronglyMeasurable f μ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
x : α
hx : ‖f x‖ ≤ c
⊢ ‖f x * g x‖ ≤ c * ‖g x‖
Theorem: TopologicalSpace.IsTopologicalBasis.mem_nhds_iff
File: Mathlib/Topology/Bases.lean

tactic: change s ∈ (𝓝 a).sets ↔ ∃ t ∈ b, a ∈ t ∧ t ⊆ s
state_before: α : Type u
t : TopologicalSpace α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ s ∈ 𝓝 a ↔ ∃ t, t ∈ b ∧ a ∈ t ∧ t ⊆ s

tactic: rw [hb.eq_generateFrom, nhds_generateFrom, biInf_sets_eq]
state_before: α : Type u
t : TopologicalSpace α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ s ∈ (𝓝 a).sets ↔ ∃ t, t ∈ b ∧ a ∈ t ∧ t ⊆ s

tactic: simp [and_assoc, and_left_comm]
state_before: α : Type u
t : TopologicalSpace α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ (s ∈ ⋃ (i : Set α) (_ : i ∈ {s | a ∈ s ∧ s ∈ b}), (𝓟 i).sets) ↔ ∃ t, t ∈ b ∧ a ∈ t ∧ t ⊆ s

tactic: rintro s ⟨hs₁, hs₂⟩ t ⟨ht₁, ht₂⟩
state_before: case h
α : Type u
t : TopologicalSpace α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ DirectedOn ((fun s => 𝓟 s) ⁻¹'o fun x x_1 => x ≥ x_1) {s | a ∈ s ∧ s ∈ b}

tactic: let ⟨u, hu₁, hu₂, hu₃⟩ := hb.1 _ hs₂ _ ht₂ _ ⟨hs₁, ht₁⟩
state_before: case h.intro.intro
α : Type u
t✝ : TopologicalSpace α
a : α
s✝ : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
s : Set α
hs₁ : a ∈ s
hs₂ : s ∈ b
t : Set α
ht₁ : a ∈ t
ht₂ : t ∈ b
⊢ ∃ z,
    z ∈ {s | a ∈ s ∧ s ∈ b} ∧
      ((fun s => 𝓟 s) ⁻¹'o fun x x_1 => x ≥ x_1) s z ∧ ((fun s => 𝓟 s) ⁻¹'o fun x x_1 => x ≥ x_1) t z

tactic: exact ⟨u, ⟨hu₂, hu₁⟩, le_principal_iff.2 (hu₃.trans (inter_subset_left _ _)),
  le_principal_iff.2 (hu₃.trans (inter_subset_right _ _))⟩
state_before: case h.intro.intro
α : Type u
t✝ : TopologicalSpace α
a : α
s✝ : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
s : Set α
hs₁ : a ∈ s
hs₂ : s ∈ b
t : Set α
ht₁ : a ∈ t
ht₂ : t ∈ b
u : Set α
hu₁ : u ∈ b
hu₂ : a ∈ u
hu₃ : u ⊆ s ∩ t
⊢ ∃ z,
    z ∈ {s | a ∈ s ∧ s ∈ b} ∧
      ((fun s => 𝓟 s) ⁻¹'o fun x x_1 => x ≥ x_1) s z ∧ ((fun s => 𝓟 s) ⁻¹'o fun x x_1 => x ≥ x_1) t z

tactic: rcases eq_univ_iff_forall.1 hb.sUnion_eq a with ⟨i, h1, h2⟩
state_before: case ne
α : Type u
t : TopologicalSpace α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ Set.Nonempty {s | a ∈ s ∧ s ∈ b}

tactic: exact ⟨i, h2, h1⟩
state_before: case ne.intro.intro
α : Type u
t : TopologicalSpace α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
i : Set α
h1 : i ∈ b
h2 : a ∈ i
⊢ Set.Nonempty {s | a ∈ s ∧ s ∈ b}