tasksource/leandojo huggingface dataset:
Theorem: cauchySeq_iff
File: Mathlib/Topology/UniformSpace/Cauchy.lean

tactic: simp only [cauchySeq_iff', Filter.eventually_atTop_prod_self', mem_preimage, Prod_map]
state_before: α : Type u
β : Type v
inst✝ : UniformSpace α
u : ℕ → α
⊢ CauchySeq u ↔ ∀ (V : Set (α × α)), V ∈ 𝓤 α → ∃ N, ∀ (k : ℕ), k ≥ N → ∀ (l : ℕ), l ≥ N → (u k, u l) ∈ V
Theorem: PadicInt.inv_mul
File: Mathlib/NumberTheory/Padics/PadicIntegers.lean

tactic: rw [mul_comm, mul_inv hz]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
z : ℤ_[p]
hz : ‖z‖ = 1
⊢ inv z * z = 1
Theorem: Ordinal.nfpFamily_le_apply
File: Mathlib/SetTheory/Ordinal/FixedPoint.lean

tactic: rw [← not_iff_not]
state_before: ι : Type u
f : ι → Ordinal → Ordinal
inst✝ : Nonempty ι
H : ∀ (i : ι), IsNormal (f i)
a b : Ordinal
⊢ (∃ i, nfpFamily f a ≤ f i b) ↔ nfpFamily f a ≤ b

tactic: push_neg
state_before: ι : Type u
f : ι → Ordinal → Ordinal
inst✝ : Nonempty ι
H : ∀ (i : ι), IsNormal (f i)
a b : Ordinal
⊢ (¬∃ i, nfpFamily f a ≤ f i b) ↔ ¬nfpFamily f a ≤ b

tactic: exact apply_lt_nfpFamily_iff H
state_before: ι : Type u
f : ι → Ordinal → Ordinal
inst✝ : Nonempty ι
H : ∀ (i : ι), IsNormal (f i)
a b : Ordinal
⊢ (∀ (i : ι), f i b < nfpFamily f a) ↔ b < nfpFamily f a
Theorem: Real.arcsin_le_iff_le_sin'
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: cases' le_total x (-1) with hx₁ hx₁
state_before: x y : ℝ
hy : y ∈ Ico (-(π / 2)) (π / 2)
⊢ arcsin x ≤ y ↔ x ≤ sin y

tactic: cases' lt_or_le 1 x with hx₂ hx₂
state_before: case inr
x y : ℝ
hy : y ∈ Ico (-(π / 2)) (π / 2)
hx₁ : -1 ≤ x
⊢ arcsin x ≤ y ↔ x ≤ sin y

tactic: exact arcsin_le_iff_le_sin ⟨hx₁, hx₂⟩ (mem_Icc_of_Ico hy)
state_before: case inr.inr
x y : ℝ
hy : y ∈ Ico (-(π / 2)) (π / 2)
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ arcsin x ≤ y ↔ x ≤ sin y

tactic: simp [arcsin_of_le_neg_one hx₁, hy.1, hx₁.trans (neg_one_le_sin _)]
state_before: case inl
x y : ℝ
hy : y ∈ Ico (-(π / 2)) (π / 2)
hx₁ : x ≤ -1
⊢ arcsin x ≤ y ↔ x ≤ sin y

tactic: simp [arcsin_of_one_le hx₂.le, hy.2.not_le, (sin_le_one y).trans_lt hx₂]
state_before: case inr.inl
x y : ℝ
hy : y ∈ Ico (-(π / 2)) (π / 2)
hx₁ : -1 ≤ x
hx₂ : 1 < x
⊢ arcsin x ≤ y ↔ x ≤ sin y
Theorem: TensorProduct.zero_smul
File: Mathlib/LinearAlgebra/TensorProduct.lean

tactic: rw [TensorProduct.smul_zero]
state_before: R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type ?u.210413
inst✝¹⁵ : Monoid R'
R'' : Type u_4
inst✝¹⁴ : Semiring R''
M : Type u_2
N : Type u_3
P : Type ?u.210431
Q : Type ?u.210434
S : Type ?u.210437
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : Module R M
inst✝⁷ : Module R N
inst✝⁶ : Module R P
inst✝⁵ : Module R Q
inst✝⁴ : Module R S
inst✝³ : DistribMulAction R' M
inst✝² : Module R'' M
inst✝¹ : SMulCommClass R R' M
inst✝ : SMulCommClass R R'' M
x : M ⊗[R] N
this : ∀ (r : R'') (m : M) (n : N), r • m ⊗ₜ[R] n = (r • m) ⊗ₜ[R] n
⊢ 0 • 0 = 0

tactic: rw [this, zero_smul, zero_tmul]
state_before: R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type ?u.210413
inst✝¹⁵ : Monoid R'
R'' : Type u_4
inst✝¹⁴ : Semiring R''
M : Type u_2
N : Type u_3
P : Type ?u.210431
Q : Type ?u.210434
S : Type ?u.210437
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : Module R M
inst✝⁷ : Module R N
inst✝⁶ : Module R P
inst✝⁵ : Module R Q
inst✝⁴ : Module R S
inst✝³ : DistribMulAction R' M
inst✝² : Module R'' M
inst✝¹ : SMulCommClass R R' M
inst✝ : SMulCommClass R R'' M
x : M ⊗[R] N
this : ∀ (r : R'') (m : M) (n : N), r • m ⊗ₜ[R] n = (r • m) ⊗ₜ[R] n
m : M
n : N
⊢ 0 • m ⊗ₜ[R] n = 0

tactic: rw [TensorProduct.smul_add, ihx, ihy, add_zero]
state_before: R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type ?u.210413
inst✝¹⁵ : Monoid R'
R'' : Type u_4
inst✝¹⁴ : Semiring R''
M : Type u_2
N : Type u_3
P : Type ?u.210431
Q : Type ?u.210434
S : Type ?u.210437
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : Module R M
inst✝⁷ : Module R N
inst✝⁶ : Module R P
inst✝⁵ : Module R Q
inst✝⁴ : Module R S
inst✝³ : DistribMulAction R' M
inst✝² : Module R'' M
inst✝¹ : SMulCommClass R R' M
inst✝ : SMulCommClass R R'' M
x✝ : M ⊗[R] N
this : ∀ (r : R'') (m : M) (n : N), r • m ⊗ₜ[R] n = (r • m) ⊗ₜ[R] n
x y : M ⊗[R] N
ihx : 0 • x = 0
ihy : 0 • y = 0
⊢ 0 • (x + y) = 0
Theorem: MeasureTheory.compl_mem_ae_iff
File: Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean

tactic: simp only [mem_ae_iff, compl_compl]
state_before: α : Type u_1
β : Type ?u.98230
γ : Type ?u.98233
δ : Type ?u.98236
ι : Type ?u.98239
inst✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t s : Set α
⊢ sᶜ ∈ Measure.ae μ ↔ ↑↑μ s = 0
Theorem: Lagrange.nodalWeight_eq_eval_nodal_erase_inv
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: rw [eval_nodal, nodalWeight, prod_inv_distrib]
state_before: F : Type u_1
inst✝¹ : Field F
ι : Type u_2
s : Finset ι
v : ι → F
i : ι
r : ι → F
x : F
inst✝ : DecidableEq ι
⊢ nodalWeight s v i = (eval (v i) (nodal (Finset.erase s i) v))⁻¹
Theorem: Complex.arg_mul_cos_add_sin_mul_I_sub
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: rw [arg_mul_cos_add_sin_mul_I_eq_toIocMod hr, toIocMod_sub_self, toIocDiv_eq_neg_floor,
  zsmul_eq_mul]
state_before: r : ℝ
hr : 0 < r
θ : ℝ
⊢ arg (↑r * (cos ↑θ + sin ↑θ * I)) - θ = 2 * π * ↑⌊(π - θ) / (2 * π)⌋

tactic: ring_nf
state_before: r : ℝ
hr : 0 < r
θ : ℝ
⊢ ↑(- -⌊(-π + 2 * π - θ) / (2 * π)⌋) * (2 * π) = 2 * π * ↑⌊(π - θ) / (2 * π)⌋
Theorem: zero_zpow_eq
File: Mathlib/Algebra/GroupWithZero/Power.lean

tactic: split_ifs with h
state_before: G₀ : Type u_1
inst✝ : GroupWithZero G₀
n : ℤ
⊢ 0 ^ n = if n = 0 then 1 else 0

tactic: rw [h, zpow_zero]
state_before: case inl
G₀ : Type u_1
inst✝ : GroupWithZero G₀
n : ℤ
h : n = 0
⊢ 0 ^ n = 1

tactic: rw [zero_zpow _ h]
state_before: case inr
G₀ : Type u_1
inst✝ : GroupWithZero G₀
n : ℤ
h : ¬n = 0
⊢ 0 ^ n = 0
Theorem: Nat.cast_eq_one
File: Mathlib/Algebra/CharZero/Defs.lean

tactic: rw [← cast_one, cast_inj]
state_before: R : Type u_1
inst✝¹ : AddMonoidWithOne R
inst✝ : CharZero R
n : ℕ
⊢ ↑n = 1 ↔ n = 1
Theorem: Finset.eraseNone_empty
File: Mathlib/Data/Finset/Option.lean

tactic: ext
state_before: α : Type u_1
β : Type ?u.12714
⊢ ↑eraseNone ∅ = ∅

tactic: simp
state_before: case a
α : Type u_1
β : Type ?u.12714
a✝ : α
⊢ a✝ ∈ ↑eraseNone ∅ ↔ a✝ ∈ ∅
Theorem: WithSeminorms.tendsto_nhds'
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

tactic: simp [hp.hasBasis_ball.tendsto_right_iff]
state_before: 𝕜 : Type u_1
𝕜₂ : Type ?u.232913
𝕝 : Type ?u.232916
𝕝₂ : Type ?u.232919
E : Type u_2
F : Type u_4
G : Type ?u.232928
ι : Type u_3
ι' : Type ?u.232934
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
u : F → E
f : Filter F
y₀ : E
⊢ Filter.Tendsto u f (𝓝 y₀) ↔ ∀ (s : Finset ι) (ε : ℝ), 0 < ε → ∀ᶠ (x : F) in f, ↑(Finset.sup s p) (u x - y₀) < ε
Theorem: Matrix.one_fin_two
File: Mathlib/Data/Matrix/Notation.lean

tactic: ext (i j)
state_before: α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
inst✝¹ : Zero α
inst✝ : One α
⊢ 1 = ↑of ![![1, 0], ![0, 1]]

tactic: fin_cases i <;> fin_cases j <;> rfl
state_before: case a.h
α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
inst✝¹ : Zero α
inst✝ : One α
i j : Fin 2
⊢ OfNat.ofNat 1 i j = ↑of ![![1, 0], ![0, 1]] i j
Theorem: Nat.factors_count_eq
File: Mathlib/Data/Nat/Factorization/Basic.lean

tactic: rcases n.eq_zero_or_pos with (rfl | hn0)
state_before: n p : ℕ
⊢ count p (factors n) = ↑(factorization n) p

tactic: by_cases pp : p.Prime
state_before: case inr
n p : ℕ
hn0 : n > 0
⊢ count p (factors n) = ↑(factorization n) p

tactic: case neg =>
  rw [count_eq_zero_of_not_mem (mt prime_of_mem_factors pp)]
  simp [factorization, pp]
state_before: case pos
n p : ℕ
hn0 : n > 0
pp : Prime p
⊢ count p (factors n) = ↑(factorization n) p

case neg
n p : ℕ
hn0 : n > 0
pp : ¬Prime p
⊢ count p (factors n) = ↑(factorization n) p

tactic: simp only [factorization, coe_mk, pp, if_true]
state_before: case pos
n p : ℕ
hn0 : n > 0
pp : Prime p
⊢ count p (factors n) = ↑(factorization n) p

tactic: rw [← PartENat.natCast_inj, padicValNat_def' pp.ne_one hn0,
  UniqueFactorizationMonoid.multiplicity_eq_count_normalizedFactors pp hn0.ne']
state_before: case pos
n p : ℕ
hn0 : n > 0
pp : Prime p
⊢ count p (factors n) = padicValNat p n

tactic: simp [factors_eq]
state_before: case pos
n p : ℕ
hn0 : n > 0
pp : Prime p
⊢ ↑(count p (factors n)) = ↑(Multiset.count (↑normalize p) (UniqueFactorizationMonoid.normalizedFactors n))

tactic: simp [factorization, count]
state_before: case inl
p : ℕ
⊢ count p (factors 0) = ↑(factorization 0) p

tactic: rw [count_eq_zero_of_not_mem (mt prime_of_mem_factors pp)]
state_before: n p : ℕ
hn0 : n > 0
pp : ¬Prime p
⊢ count p (factors n) = ↑(factorization n) p

tactic: simp [factorization, pp]
state_before: n p : ℕ
hn0 : n > 0
pp : ¬Prime p
⊢ 0 = ↑(factorization n) p
Theorem: WithSeminorms.mem_nhds_iff
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

tactic: rw [hp.hasBasis_ball.mem_iff, Prod.exists]
state_before: 𝕜 : Type u_1
𝕜₂ : Type ?u.207750
𝕝 : Type ?u.207753
𝕝₂ : Type ?u.207756
E : Type u_2
F : Type ?u.207762
G : Type ?u.207765
ι : Type u_3
ι' : Type ?u.207771
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
x : E
U : Set E
⊢ U ∈ 𝓝 x ↔ ∃ s r, r > 0 ∧ ball (Finset.sup s p) x r ⊆ U
Theorem: Ideal.comap_radical
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: ext
state_before: R : Type u
S : Type v
F : Type u_1
inst✝¹ : CommRing R
inst✝ : CommRing S
rc : RingHomClass F R S
f : F
I J : Ideal R
K L : Ideal S
⊢ comap f (radical K) = radical (comap f K)

tactic: simp [radical]
state_before: case h
R : Type u
S : Type v
F : Type u_1
inst✝¹ : CommRing R
inst✝ : CommRing S
rc : RingHomClass F R S
f : F
I J : Ideal R
K L : Ideal S
x✝ : R
⊢ x✝ ∈ comap f (radical K) ↔ x✝ ∈ radical (comap f K)
Theorem: ENNReal.half_pos
File: Mathlib/Data/Real/ENNReal.lean

tactic: simp [h]
state_before: α : Type ?u.325183
β : Type ?u.325186
a b c d : ℝ≥0∞
r p q : ℝ≥0
h : a ≠ 0
⊢ 0 < a / 2
Theorem: OmegaCompletePartialOrder.ContinuousHom.ite_continuous'
File: Mathlib/Order/OmegaCompletePartialOrder.lean

tactic: split_ifs <;> simp [*]
state_before: α : Type u
α' : Type ?u.55194
β : Type v
β' : Type ?u.55199
γ : Type ?u.55202
φ : Type ?u.55205
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
p : Prop
hp : Decidable p
f g : α → β
hf : Continuous' f
hg : Continuous' g
⊢ Continuous' fun x => if p then f x else g x
Theorem: rootsOfUnity_le_of_dvd
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: obtain ⟨d, rfl⟩ := h
state_before: M : Type u_1
N : Type ?u.364389
G : Type ?u.364392
R : Type ?u.364395
S : Type ?u.364398
F : Type ?u.364401
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l : ℕ+
h : k ∣ l
⊢ rootsOfUnity k M ≤ rootsOfUnity l M

tactic: intro ζ h
state_before: case intro
M : Type u_1
N : Type ?u.364389
G : Type ?u.364392
R : Type ?u.364395
S : Type ?u.364398
F : Type ?u.364401
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k d : ℕ+
⊢ rootsOfUnity k M ≤ rootsOfUnity (k * d) M

tactic: simp_all only [mem_rootsOfUnity, PNat.mul_coe, pow_mul, one_pow]
state_before: case intro
M : Type u_1
N : Type ?u.364389
G : Type ?u.364392
R : Type ?u.364395
S : Type ?u.364398
F : Type ?u.364401
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k d : ℕ+
ζ : Mˣ
h : ζ ∈ rootsOfUnity k M
⊢ ζ ∈ rootsOfUnity (k * d) M
Theorem: LinearMap.ofIsCompl_left_apply
File: Mathlib/LinearAlgebra/Projection.lean

tactic: simp [ofIsCompl]
state_before: R : Type u_2
inst✝⁹ : Ring R
E : Type u_1
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type ?u.199427
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type ?u.200390
inst✝² : Semiring S
M : Type ?u.200396
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
h : IsCompl p q
φ : { x // x ∈ p } →ₗ[R] F
ψ : { x // x ∈ q } →ₗ[R] F
u : { x // x ∈ p }
⊢ ↑(ofIsCompl h φ ψ) ↑u = ↑φ u
Theorem: Set.ncard_eq_zero
File: Mathlib/Data/Set/Ncard.lean

tactic: rw [ncard_def, @Finite.card_eq_zero_iff _ hs.to_subtype, isEmpty_subtype,
  eq_empty_iff_forall_not_mem]
state_before: α : Type u_1
β : Type ?u.3963
s t : Set α
a b x y : α
f : α → β
hs : autoParam (Set.Finite s) _auto✝
⊢ ncard s = 0 ↔ s = ∅
Theorem: MeasureTheory.Measure.compl_mem_cofinite
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [mem_cofinite, compl_compl]
state_before: α : Type u_1
β : Type ?u.546970
γ : Type ?u.546973
δ : Type ?u.546976
ι : Type ?u.546979
R : Type ?u.546982
R' : Type ?u.546985
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ sᶜ ∈ cofinite μ ↔ ↑↑μ s < ⊤
Theorem: Complex.dist_le_dist_of_mapsTo_ball_self
File: Mathlib/Analysis/Complex/Schwarz.lean

tactic: have := dist_le_div_mul_dist_of_mapsTo_ball hd (by rwa [hc]) hz
state_before: f : ℂ → ℂ
c z : ℂ
R R₁ R₂ : ℝ
hd : DifferentiableOn ℂ f (ball c R)
h_maps : MapsTo f (ball c R) (ball c R)
hc : f c = c
hz : z ∈ ball c R
⊢ dist (f z) c ≤ dist z c

tactic: rwa [hc, div_self, one_mul] at this
state_before: f : ℂ → ℂ
c z : ℂ
R R₁ R₂ : ℝ
hd : DifferentiableOn ℂ f (ball c R)
h_maps : MapsTo f (ball c R) (ball c R)
hc : f c = c
hz : z ∈ ball c R
this : dist (f z) (f c) ≤ R / R * dist z c
⊢ dist (f z) c ≤ dist z c

tactic: exact (nonempty_ball.1 ⟨z, hz⟩).ne'
state_before: f : ℂ → ℂ
c z : ℂ
R R₁ R₂ : ℝ
hd : DifferentiableOn ℂ f (ball c R)
h_maps : MapsTo f (ball c R) (ball c R)
hc : f c = c
hz : z ∈ ball c R
this : dist (f z) c ≤ R / R * dist z c
⊢ R ≠ 0

tactic: rwa [hc]
state_before: f : ℂ → ℂ
c z : ℂ
R R₁ R₂ : ℝ
hd : DifferentiableOn ℂ f (ball c R)
h_maps : MapsTo f (ball c R) (ball c R)
hc : f c = c
hz : z ∈ ball c R
⊢ MapsTo f (ball c R) (ball (f c) ?m.43512)
Theorem: MvPolynomial.support_mul
File: Mathlib/Data/MvPolynomial/Basic.lean

tactic: convert AddMonoidAlgebra.support_mul p q
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
inst✝ : DecidableEq σ
p q : MvPolynomial σ R
⊢ support (p * q) ⊆ Finset.biUnion (support p) fun a => Finset.biUnion (support q) fun b => {a + b}
Theorem: Matrix.det_transvection_of_ne
File: Mathlib/LinearAlgebra/Matrix/Transvection.lean

tactic: rw [← updateRow_eq_transvection i j, det_updateRow_add_smul_self _ h, det_one]
state_before: n : Type u_1
p : Type ?u.20141
R : Type u₂
𝕜 : Type ?u.20146
inst✝⁴ : Field 𝕜
inst✝³ : DecidableEq n
inst✝² : DecidableEq p
inst✝¹ : CommRing R
i j : n
inst✝ : Fintype n
h : i ≠ j
c : R
⊢ det (transvection i j c) = 1
Theorem: Equiv.subtypeEquiv_refl
File: Mathlib/Logic/Equiv/Basic.lean

tactic: ext
state_before: α : Sort u_1
p : α → Prop
h : optParam (∀ (a : α), p a ↔ p (↑(Equiv.refl α) a)) (_ : ∀ (a : α), p a ↔ p a)
⊢ subtypeEquiv (Equiv.refl α) h = Equiv.refl { a // p a }

tactic: rfl
state_before: case H.a
α : Sort u_1
p : α → Prop
h : optParam (∀ (a : α), p a ↔ p (↑(Equiv.refl α) a)) (_ : ∀ (a : α), p a ↔ p a)
x✝ : { a // p a }
⊢ ↑(↑(subtypeEquiv (Equiv.refl α) h) x✝) = ↑(↑(Equiv.refl { a // p a }) x✝)
Theorem: exists_nhds_split_inv
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: have : (fun p : G × G => p.1 * p.2⁻¹) ⁻¹' s ∈ 𝓝 ((1, 1) : G × G) :=
  continuousAt_fst.mul continuousAt_snd.inv (by simpa)
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝³ : TopologicalSpace G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : TopologicalSpace α
f : α → G
s✝ : Set α
x : α
s : Set G
hs : s ∈ 𝓝 1
⊢ ∃ V, V ∈ 𝓝 1 ∧ ∀ (v : G), v ∈ V → ∀ (w : G), w ∈ V → v / w ∈ s

tactic: simpa only [div_eq_mul_inv, nhds_prod_eq, mem_prod_self_iff, prod_subset_iff, mem_preimage] using
  this
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝³ : TopologicalSpace G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : TopologicalSpace α
f : α → G
s✝ : Set α
x : α
s : Set G
hs : s ∈ 𝓝 1
this : (fun p => p.fst * p.snd⁻¹) ⁻¹' s ∈ 𝓝 (1, 1)
⊢ ∃ V, V ∈ 𝓝 1 ∧ ∀ (v : G), v ∈ V → ∀ (w : G), w ∈ V → v / w ∈ s

tactic: simpa
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝³ : TopologicalSpace G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : TopologicalSpace α
f : α → G
s✝ : Set α
x : α
s : Set G
hs : s ∈ 𝓝 1
⊢ s ∈ 𝓝 ((fun x => x.fst * x.snd⁻¹) (1, 1))
Theorem: Finset.subset_set_biUnion_of_mem
File: Mathlib/Data/Finset/Lattice.lean

tactic: simp only [h, iSup_pos, le_refl]
state_before: F : Type ?u.467741
α : Type u_1
β : Type u_2
γ : Type ?u.467750
ι : Type ?u.467753
κ : Type ?u.467756
s : Finset α
f : α → Set β
x : α
h : x ∈ s
⊢ f x ≤ ⨆ (_ : x ∈ s), f x
Theorem: Bitvec.toNat_ofNat
File: Mathlib/Data/Bitvec/Lemmas.lean

tactic: induction' k with k ih generalizing n
state_before: k n : ℕ
⊢ Bitvec.toNat (Bitvec.ofNat k n) = n % 2 ^ k

tactic: simp [Nat.mod_one]
state_before: case zero
n✝ n : ℕ
⊢ Bitvec.toNat (Bitvec.ofNat zero n) = n % 2 ^ zero

tactic: rfl
state_before: case zero
n✝ n : ℕ
⊢ Bitvec.toNat (Bitvec.ofNat 0 n) = 0

tactic: rw [ofNat_succ, toNat_append, ih, bits_toNat_decide, mod_pow_succ, Nat.mul_comm]
state_before: case succ
n✝ k : ℕ
ih : ∀ {n : ℕ}, Bitvec.toNat (Bitvec.ofNat k n) = n % 2 ^ k
n : ℕ
⊢ Bitvec.toNat (Bitvec.ofNat (succ k) n) = n % 2 ^ succ k
Theorem: SimpleGraph.Subgraph.map_monotone
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: intro H H' h
state_before: ι : Sort ?u.145982
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
G' : SimpleGraph W
f : G →g G'
⊢ Monotone (Subgraph.map f)

tactic: constructor
state_before: ι : Sort ?u.145982
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
G' : SimpleGraph W
f : G →g G'
H H' : Subgraph G
h : H ≤ H'
⊢ Subgraph.map f H ≤ Subgraph.map f H'

tactic: intro
state_before: case left
ι : Sort ?u.145982
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
G' : SimpleGraph W
f : G →g G'
H H' : Subgraph G
h : H ≤ H'
⊢ (Subgraph.map f H).verts ⊆ (Subgraph.map f H').verts

tactic: simp only [map_verts, Set.mem_image, forall_exists_index, and_imp]
state_before: case left
ι : Sort ?u.145982
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
G' : SimpleGraph W
f : G →g G'
H H' : Subgraph G
h : H ≤ H'
a✝ : W
⊢ a✝ ∈ (Subgraph.map f H).verts → a✝ ∈ (Subgraph.map f H').verts

tactic: rintro v hv rfl
state_before: case left
ι : Sort ?u.145982
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
G' : SimpleGraph W
f : G →g G'
H H' : Subgraph G
h : H ≤ H'
a✝ : W
⊢ ∀ (x : V), x ∈ H.verts → ↑f x = a✝ → ∃ x, x ∈ H'.verts ∧ ↑f x = a✝

tactic: exact ⟨_, h.1 hv, rfl⟩
state_before: case left
ι : Sort ?u.145982
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
G' : SimpleGraph W
f : G →g G'
H H' : Subgraph G
h : H ≤ H'
v : V
hv : v ∈ H.verts
⊢ ∃ x, x ∈ H'.verts ∧ ↑f x = ↑f v

tactic: rintro _ _ ⟨u, v, ha, rfl, rfl⟩
state_before: case right
ι : Sort ?u.145982
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
G' : SimpleGraph W
f : G →g G'
H H' : Subgraph G
h : H ≤ H'
⊢ ∀ ⦃v w : W⦄, Adj (Subgraph.map f H) v w → Adj (Subgraph.map f H') v w

tactic: exact ⟨_, _, h.2 ha, rfl, rfl⟩
state_before: case right.intro.intro.intro.intro
ι : Sort ?u.145982
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
G' : SimpleGraph W
f : G →g G'
H H' : Subgraph G
h : H ≤ H'
u v : V
ha : Adj H u v
⊢ Adj (Subgraph.map f H') (↑f u) (↑f v)
Theorem: Equiv.Perm.sameCycle_apply_left
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: simp [zpow_sub, SameCycle, Int.add_neg_one, Function.comp]
state_before: ι : Type ?u.73203
α : Type u_1
β : Type ?u.73209
f g : Perm α
p : α → Prop
x y z : α
⊢ (∃ b, ↑(f ^ ↑(Equiv.addRight 1).symm b) (↑f x) = y) ↔ SameCycle f x y
Theorem: Filter.map_eq_bot_iff
File: Mathlib/Order/Filter/Basic.lean

tactic: rw [← empty_mem_iff_bot, ← empty_mem_iff_bot]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.277101
ι : Sort x
f f₁ f₂ : Filter α
g g₁ g₂ : Filter β
m : α → β
m' : β → γ
s : Set α
t : Set β
⊢ map m f = ⊥ → f = ⊥

tactic: exact id
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.277101
ι : Sort x
f f₁ f₂ : Filter α
g g₁ g₂ : Filter β
m : α → β
m' : β → γ
s : Set α
t : Set β
⊢ ∅ ∈ map m f → ∅ ∈ f

tactic: simp only [h, map_bot]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.277101
ι : Sort x
f f₁ f₂ : Filter α
g g₁ g₂ : Filter β
m : α → β
m' : β → γ
s : Set α
t : Set β
h : f = ⊥
⊢ map m f = ⊥
Theorem: FreeSemigroup.traverse_mul
File: Mathlib/Algebra/Free.lean

tactic: rw [ih]
state_before: α β : Type u
m : Type u → Type u
inst✝¹ : Applicative m
F : α → m β
inst✝ : LawfulApplicative m
x✝¹ y✝ : FreeSemigroup α
x✝ : α
L1 : List α
y : α
L2 : List α
hd : α
tl : List α
ih :
  ∀ (x : α),
    traverse F ({ head := x, tail := tl } * { head := y, tail := L2 }) =
      Seq.seq ((fun x x_1 => x * x_1) <$> traverse F { head := x, tail := tl }) fun x =>
        traverse F { head := y, tail := L2 }
x : α
⊢ (Seq.seq ((fun x x_1 => x * x_1) <$> pure <$> F x) fun x =>
      traverse F ({ head := hd, tail := tl } * { head := y, tail := L2 })) =
    Seq.seq
      ((fun x x_1 => x * x_1) <$>
        Seq.seq ((fun x x_1 => x * x_1) <$> pure <$> F x) fun x => traverse F { head := hd, tail := tl })
      fun x => traverse F { head := y, tail := L2 }
Theorem: Finset.aestronglyMeasurable_prod
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: simpa only [← Finset.prod_apply] using s.aestronglyMeasurable_prod' hf
state_before: α : Type u_2
β : Type ?u.330452
γ : Type ?u.330455
ι✝ : Type ?u.330458
inst✝⁵ : Countable ι✝
m : MeasurableSpace α
μ : Measure α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
f✝ g : α → β
M : Type u_3
inst✝² : CommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : ContinuousMul M
ι : Type u_1
f : ι → α → M
s : Finset ι
hf : ∀ (i : ι), i ∈ s → AEStronglyMeasurable (f i) μ
⊢ AEStronglyMeasurable (fun a => ∏ i in s, f i a) μ