tasksource/leandojo huggingface dataset:
Theorem: isOpen_sigma_iff
File: Mathlib/Topology/Constructions.lean

tactic: delta instTopologicalSpaceSigma
state_before: α : Type u
β : Type v
γ : Type ?u.514064
δ : Type ?u.514067
ε : Type ?u.514070
ζ : Type ?u.514073
ι : Type u_2
κ : Type ?u.514079
σ : ι → Type u_1
τ : κ → Type ?u.514089
inst✝² : (i : ι) → TopologicalSpace (σ i)
inst✝¹ : (k : κ) → TopologicalSpace (τ k)
inst✝ : TopologicalSpace α
s : Set (Sigma σ)
⊢ IsOpen s ↔ ∀ (i : ι), IsOpen (Sigma.mk i ⁻¹' s)

tactic: rw [isOpen_iSup_iff]
state_before: α : Type u
β : Type v
γ : Type ?u.514064
δ : Type ?u.514067
ε : Type ?u.514070
ζ : Type ?u.514073
ι : Type u_2
κ : Type ?u.514079
σ : ι → Type u_1
τ : κ → Type ?u.514089
inst✝² : (i : ι) → TopologicalSpace (σ i)
inst✝¹ : (k : κ) → TopologicalSpace (τ k)
inst✝ : TopologicalSpace α
s : Set (Sigma σ)
⊢ IsOpen s ↔ ∀ (i : ι), IsOpen (Sigma.mk i ⁻¹' s)

tactic: rfl
state_before: α : Type u
β : Type v
γ : Type ?u.514064
δ : Type ?u.514067
ε : Type ?u.514070
ζ : Type ?u.514073
ι : Type u_2
κ : Type ?u.514079
σ : ι → Type u_1
τ : κ → Type ?u.514089
inst✝² : (i : ι) → TopologicalSpace (σ i)
inst✝¹ : (k : κ) → TopologicalSpace (τ k)
inst✝ : TopologicalSpace α
s : Set (Sigma σ)
⊢ (∀ (i : ι), IsOpen s) ↔ ∀ (i : ι), IsOpen (Sigma.mk i ⁻¹' s)
Theorem: Real.Angle.cos_eq_iff_coe_eq_or_eq_neg
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: constructor
state_before: θ ψ : ℝ
⊢ cos θ = cos ψ ↔ ↑θ = ↑ψ ∨ ↑θ = -↑ψ

tactic: intro Hcos
state_before: case mp
θ ψ : ℝ
⊢ cos θ = cos ψ → ↑θ = ↑ψ ∨ ↑θ = -↑ψ

tactic: rw [← sub_eq_zero, cos_sub_cos, mul_eq_zero, mul_eq_zero, neg_eq_zero,
  eq_false (two_ne_zero' ℝ), false_or_iff, sin_eq_zero_iff, sin_eq_zero_iff] at Hcos
state_before: case mp
θ ψ : ℝ
Hcos : cos θ = cos ψ
⊢ ↑θ = ↑ψ ∨ ↑θ = -↑ψ

tactic: rcases Hcos with (⟨n, hn⟩ | ⟨n, hn⟩)
state_before: case mp
θ ψ : ℝ
Hcos✝ : cos θ = cos ψ
Hcos : (∃ n, ↑n * π = (θ + ψ) / 2) ∨ ∃ n, ↑n * π = (θ - ψ) / 2
⊢ ↑θ = ↑ψ ∨ ↑θ = -↑ψ

tactic: right
state_before: case mp.inl.intro
θ ψ : ℝ
Hcos : cos θ = cos ψ
n : ℤ
hn : ↑n * π = (θ + ψ) / 2
⊢ ↑θ = ↑ψ ∨ ↑θ = -↑ψ

tactic: rw [eq_div_iff_mul_eq (two_ne_zero' ℝ), ← sub_eq_iff_eq_add] at hn
state_before: case mp.inl.intro.h
θ ψ : ℝ
Hcos : cos θ = cos ψ
n : ℤ
hn : ↑n * π = (θ + ψ) / 2
⊢ ↑θ = -↑ψ

tactic: rw [← hn, coe_sub, eq_neg_iff_add_eq_zero, sub_add_cancel, mul_assoc, coe_int_mul_eq_zsmul,
  mul_comm, coe_two_pi, zsmul_zero]
state_before: case mp.inl.intro.h
θ ψ : ℝ
Hcos : cos θ = cos ψ
n : ℤ
hn : ↑n * π * 2 - ψ = θ
⊢ ↑θ = -↑ψ

tactic: left
state_before: case mp.inr.intro
θ ψ : ℝ
Hcos : cos θ = cos ψ
n : ℤ
hn : ↑n * π = (θ - ψ) / 2
⊢ ↑θ = ↑ψ ∨ ↑θ = -↑ψ

tactic: rw [eq_div_iff_mul_eq (two_ne_zero' ℝ), eq_sub_iff_add_eq] at hn
state_before: case mp.inr.intro.h
θ ψ : ℝ
Hcos : cos θ = cos ψ
n : ℤ
hn : ↑n * π = (θ - ψ) / 2
⊢ ↑θ = ↑ψ

tactic: rw [← hn, coe_add, mul_assoc, coe_int_mul_eq_zsmul, mul_comm, coe_two_pi, zsmul_zero,
  zero_add]
state_before: case mp.inr.intro.h
θ ψ : ℝ
Hcos : cos θ = cos ψ
n : ℤ
hn : ↑n * π * 2 + ψ = θ
⊢ ↑θ = ↑ψ

tactic: rw [angle_eq_iff_two_pi_dvd_sub, ← coe_neg, angle_eq_iff_two_pi_dvd_sub]
state_before: case mpr
θ ψ : ℝ
⊢ ↑θ = ↑ψ ∨ ↑θ = -↑ψ → cos θ = cos ψ

tactic: rintro (⟨k, H⟩ | ⟨k, H⟩)
state_before: case mpr
θ ψ : ℝ
⊢ ((∃ k, θ - ψ = 2 * π * ↑k) ∨ ∃ k, θ - -ψ = 2 * π * ↑k) → cos θ = cos ψ

tactic: rw [← sub_eq_zero, cos_sub_cos, H, mul_assoc 2 π k, mul_div_cancel_left _ (two_ne_zero' ℝ),
  mul_comm π _, sin_int_mul_pi, MulZeroClass.mul_zero]
state_before: case mpr.inl.intro
θ ψ : ℝ
k : ℤ
H : θ - ψ = 2 * π * ↑k
⊢ cos θ = cos ψ

case mpr.inr.intro
θ ψ : ℝ
k : ℤ
H : θ - -ψ = 2 * π * ↑k
⊢ cos θ = cos ψ

tactic: rw [← sub_eq_zero, cos_sub_cos, ← sub_neg_eq_add, H, mul_assoc 2 π k,
  mul_div_cancel_left _ (two_ne_zero' ℝ), mul_comm π _, sin_int_mul_pi, MulZeroClass.mul_zero,
  MulZeroClass.zero_mul]
state_before: case mpr.inr.intro
θ ψ : ℝ
k : ℤ
H : θ - -ψ = 2 * π * ↑k
⊢ cos θ = cos ψ
Theorem: List.permutationsAux_nil
File: Mathlib/Data/List/Permutation.lean

tactic: rw [permutationsAux, permutationsAux.rec]
state_before: α : Type u_1
β : Type ?u.26167
is : List α
⊢ permutationsAux [] is = []
Theorem: exists_dual_vector'
File: Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean

tactic: by_cases hx : x = 0
state_before: 𝕜 : Type v
inst✝³ : IsROrC 𝕜
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
x : E
⊢ ∃ g, ‖g‖ = 1 ∧ ↑g x = ↑‖x‖

tactic: obtain ⟨y, hy⟩ := exists_ne (0 : E)
state_before: case pos
𝕜 : Type v
inst✝³ : IsROrC 𝕜
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
x : E
hx : x = 0
⊢ ∃ g, ‖g‖ = 1 ∧ ↑g x = ↑‖x‖

tactic: obtain ⟨g, hg⟩ : ∃ g : E →L[𝕜] 𝕜, ‖g‖ = 1 ∧ g y = ‖y‖ := exists_dual_vector 𝕜 y hy
state_before: case pos.intro
𝕜 : Type v
inst✝³ : IsROrC 𝕜
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
x : E
hx : x = 0
y : E
hy : y ≠ 0
⊢ ∃ g, ‖g‖ = 1 ∧ ↑g x = ↑‖x‖

tactic: refine' ⟨g, hg.left, _⟩
state_before: case pos.intro.intro
𝕜 : Type v
inst✝³ : IsROrC 𝕜
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
x : E
hx : x = 0
y : E
hy : y ≠ 0
g : E →L[𝕜] 𝕜
hg : ‖g‖ = 1 ∧ ↑g y = ↑‖y‖
⊢ ∃ g, ‖g‖ = 1 ∧ ↑g x = ↑‖x‖

tactic: simp [hx]
state_before: case pos.intro.intro
𝕜 : Type v
inst✝³ : IsROrC 𝕜
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
x : E
hx : x = 0
y : E
hy : y ≠ 0
g : E →L[𝕜] 𝕜
hg : ‖g‖ = 1 ∧ ↑g y = ↑‖y‖
⊢ ↑g x = ↑‖x‖

tactic: exact exists_dual_vector 𝕜 x hx
state_before: case neg
𝕜 : Type v
inst✝³ : IsROrC 𝕜
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
x : E
hx : ¬x = 0
⊢ ∃ g, ‖g‖ = 1 ∧ ↑g x = ↑‖x‖
Theorem: Rel.inv_comp
File: Mathlib/Data/Rel.lean

tactic: ext (x z)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r✝ r : Rel α β
s : Rel β γ
⊢ inv (r • s) = inv s • inv r

tactic: simp [comp, inv, flip, and_comm]
state_before: case a.h.a
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ r : Rel α β
s : Rel β γ
x : γ
z : α
⊢ inv (r • s) x z ↔ (inv s • inv r) x z
Theorem: TopCat.pullback_topology
File: Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean

tactic: let homeo := homeoOfIso (pullbackIsoProdSubtype f g)
state_before: J : Type v
inst✝ : SmallCategory J
X✝ Y✝ Z✝ X Y Z : TopCat
f : X ⟶ Z
g : Y ⟶ Z
⊢ (pullback f g).str =
    induced ((forget TopCat).map pullback.fst) X.str ⊓ induced ((forget TopCat).map pullback.snd) Y.str

tactic: refine' homeo.inducing.induced.trans _
state_before: J : Type v
inst✝ : SmallCategory J
X✝ Y✝ Z✝ X Y Z : TopCat
f : X ⟶ Z
g : Y ⟶ Z
homeo : ↑(pullback f g) ≃ₜ ↑(of { p // (forget TopCat).map f p.fst = (forget TopCat).map g p.snd }) :=
  homeoOfIso (pullbackIsoProdSubtype f g)
⊢ (pullback f g).str =
    induced ((forget TopCat).map pullback.fst) X.str ⊓ induced ((forget TopCat).map pullback.snd) Y.str

tactic: change induced homeo (induced _ ( (induced Prod.fst X.str) ⊓ (induced Prod.snd Y.str))) = _
state_before: J : Type v
inst✝ : SmallCategory J
X✝ Y✝ Z✝ X Y Z : TopCat
f : X ⟶ Z
g : Y ⟶ Z
homeo : ↑(pullback f g) ≃ₜ ↑(of { p // (forget TopCat).map f p.fst = (forget TopCat).map g p.snd }) :=
  homeoOfIso (pullbackIsoProdSubtype f g)
⊢ induced (↑homeo) (topologicalSpace_coe (of { p // (forget TopCat).map f p.fst = (forget TopCat).map g p.snd })) =
    induced ((forget TopCat).map pullback.fst) X.str ⊓ induced ((forget TopCat).map pullback.snd) Y.str

tactic: simp only [induced_compose, induced_inf]
state_before: J : Type v
inst✝ : SmallCategory J
X✝ Y✝ Z✝ X Y Z : TopCat
f : X ⟶ Z
g : Y ⟶ Z
homeo : ↑(pullback f g) ≃ₜ ↑(of { p // (forget TopCat).map f p.fst = (forget TopCat).map g p.snd }) :=
  homeoOfIso (pullbackIsoProdSubtype f g)
⊢ induced (↑homeo) (induced Subtype.val (induced Prod.fst X.str ⊓ induced Prod.snd Y.str)) =
    induced ((forget TopCat).map pullback.fst) X.str ⊓ induced ((forget TopCat).map pullback.snd) Y.str

tactic: congr
state_before: J : Type v
inst✝ : SmallCategory J
X✝ Y✝ Z✝ X Y Z : TopCat
f : X ⟶ Z
g : Y ⟶ Z
homeo : ↑(pullback f g) ≃ₜ ↑(of { p // (forget TopCat).map f p.fst = (forget TopCat).map g p.snd }) :=
  homeoOfIso (pullbackIsoProdSubtype f g)
⊢ induced ((Prod.fst ∘ Subtype.val) ∘ ↑(homeoOfIso (pullbackIsoProdSubtype f g))) X.str ⊓
      induced ((Prod.snd ∘ Subtype.val) ∘ ↑(homeoOfIso (pullbackIsoProdSubtype f g))) Y.str =
    induced ((forget TopCat).map pullback.fst) X.str ⊓ induced ((forget TopCat).map pullback.snd) Y.str
Theorem: List.replicateTR_loop_replicate_eq
File: src/lean/Init/Data/List/Basic.lean

tactic: induction n generalizing m with simp [replicateTR.loop]
| succ n ih => simp [Nat.succ_add]; exact ih (m+1)
state_before: α : Type u
β : Type v
γ : Type w
a : α
m n : Nat
⊢ replicateTR.loop a n (replicate m a) = replicate (n + m) a

tactic: simp [Nat.succ_add]
state_before: case succ
α : Type u
β : Type v
γ : Type w
a : α
n : Nat
ih : ∀ (m : Nat), replicateTR.loop a n (replicate m a) = replicate (n + m) a
m : Nat
⊢ replicateTR.loop a n (a :: replicate m a) = replicate (Nat.succ n + m) a

tactic: exact ih (m+1)
state_before: case succ
α : Type u
β : Type v
γ : Type w
a : α
n : Nat
ih : ∀ (m : Nat), replicateTR.loop a n (replicate m a) = replicate (n + m) a
m : Nat
⊢ replicateTR.loop a n (a :: replicate m a) = a :: replicate (n + m) a
Theorem: FormalMultilinearSeries.partialSum_continuous
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: unfold partialSum
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.21027
inst✝¹⁰ : Ring 𝕜
inst✝⁹ : AddCommGroup E
inst✝⁸ : AddCommGroup F
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module 𝕜 F
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup E
inst✝² : TopologicalAddGroup F
inst✝¹ : ContinuousConstSMul 𝕜 E
inst✝ : ContinuousConstSMul 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
⊢ Continuous (partialSum p n)

tactic: continuity
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.21027
inst✝¹⁰ : Ring 𝕜
inst✝⁹ : AddCommGroup E
inst✝⁸ : AddCommGroup F
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module 𝕜 F
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup E
inst✝² : TopologicalAddGroup F
inst✝¹ : ContinuousConstSMul 𝕜 E
inst✝ : ContinuousConstSMul 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
⊢ Continuous fun x => ∑ k in Finset.range n, ↑(p k) fun x_1 => x
Theorem: rank_eq_card_basis
File: Mathlib/LinearAlgebra/Dimension.lean

tactic: haveI := nontrivial_of_invariantBasisNumber R
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι✝ : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.396065
R : Type u
inst✝⁴ : Ring R
inst✝³ : StrongRankCondition R
M : Type v
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type w
inst✝ : Fintype ι
h : Basis ι R M
⊢ Module.rank R M = ↑(Fintype.card ι)

tactic: rw [← h.mk_range_eq_rank, Cardinal.mk_fintype, Set.card_range_of_injective h.injective]
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι✝ : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.396065
R : Type u
inst✝⁴ : Ring R
inst✝³ : StrongRankCondition R
M : Type v
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type w
inst✝ : Fintype ι
h : Basis ι R M
this : Nontrivial R
⊢ Module.rank R M = ↑(Fintype.card ι)
Theorem: MeasureTheory.StronglyMeasurable.finStronglyMeasurable
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: simp
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.64356
ι : Type ?u.64359
inst✝³ : Countable ι
f g : α → β
inst✝² : TopologicalSpace β
inst✝¹ : Zero β
m0 : MeasurableSpace α
hf : StronglyMeasurable f
μ : Measure α
inst✝ : SigmaFinite μ
⊢ ∀ (x : α), x ∈ univᶜ → f x = 0

tactic: rwa [Measure.restrict_univ]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.64356
ι : Type ?u.64359
inst✝³ : Countable ι
f g : α → β
inst✝² : TopologicalSpace β
inst✝¹ : Zero β
m0 : MeasurableSpace α
hf : StronglyMeasurable f
μ : Measure α
inst✝ : SigmaFinite μ
⊢ SigmaFinite (Measure.restrict μ univ)
Theorem: Submodule.IsPrincipal.generator_mem
File: Mathlib/RingTheory/PrincipalIdealDomain.lean

tactic: conv_rhs => rw [← span_singleton_generator S]
state_before: R : Type u
M : Type v
inst✝³ : AddCommGroup M
inst✝² : Ring R
inst✝¹ : Module R M
S : Submodule R M
inst✝ : IsPrincipal S
⊢ generator S ∈ S

tactic: exact subset_span (mem_singleton _)
state_before: R : Type u
M : Type v
inst✝³ : AddCommGroup M
inst✝² : Ring R
inst✝¹ : Module R M
S : Submodule R M
inst✝ : IsPrincipal S
⊢ generator S ∈ span R {generator S}
Theorem: toMul_list_sum
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: simp [toMul, ofMul]
state_before: ι : Type ?u.990207
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : Monoid α
s : List (Additive α)
⊢ ↑toMul (List.sum s) = List.prod (List.map (↑toMul) s)

tactic: rfl
state_before: ι : Type ?u.990207
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : Monoid α
s : List (Additive α)
⊢ List.sum s = List.prod s
Theorem: PosNum.one_le_cast
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [← cast_to_nat, ← Nat.cast_one, Nat.cast_le (α := α)]
state_before: α : Type u_1
inst✝ : LinearOrderedSemiring α
n : PosNum
⊢ 1 ≤ ↑n

tactic: apply to_nat_pos
state_before: α : Type u_1
inst✝ : LinearOrderedSemiring α
n : PosNum
⊢ 1 ≤ ↑n
Theorem: Polynomial.leadingCoeff_comp
File: Mathlib/Data/Polynomial/Degree/Lemmas.lean

tactic: rw [← coeff_comp_degree_mul_degree hq, ← natDegree_comp, coeff_natDegree]
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q : R[X]
hq : natDegree q ≠ 0
⊢ leadingCoeff (comp p q) = leadingCoeff p * leadingCoeff q ^ natDegree p
Theorem: Equiv.Perm.disjoint_inv_right_iff
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: rw [disjoint_comm, disjoint_inv_left_iff, disjoint_comm]
state_before: α : Type u_1
f g h : Perm α
⊢ Disjoint f g⁻¹ ↔ Disjoint f g
Theorem: affineSpan_insert_affineSpan
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [Set.insert_eq, Set.insert_eq, span_union, span_union, affineSpan_coe]
state_before: k : Type u_2
V : Type u_3
P : Type u_1
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type ?u.490167
p : P
ps : Set P
⊢ affineSpan k (insert p ↑(affineSpan k ps)) = affineSpan k (insert p ps)
Theorem: EMetric.diam_union'
File: Mathlib/Topology/MetricSpace/EMetricSpace.lean

tactic: let ⟨x, ⟨xs, xt⟩⟩ := h
state_before: α : Type u
β : Type v
X : Type ?u.302983
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t✝ t : Set α
h : Set.Nonempty (s ∩ t)
⊢ diam (s ∪ t) ≤ diam s + diam t

tactic: simpa using diam_union xs xt
state_before: α : Type u
β : Type v
X : Type ?u.302983
inst✝ : PseudoEMetricSpace α
x✝ y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t✝ t : Set α
h : Set.Nonempty (s ∩ t)
x : α
xs : x ∈ s
xt : x ∈ t
⊢ diam (s ∪ t) ≤ diam s + diam t
Theorem: Seminorm.continuous_of_le
File: Mathlib/Analysis/Seminorm.lean

tactic: refine'
  Seminorm.continuous one_pos
    (Filter.mem_of_superset (IsOpen.mem_nhds _ <| q.mem_ball_self zero_lt_one)
      (ball_antitone hpq))
state_before: R : Type ?u.1437726
R' : Type ?u.1437729
𝕜 : Type u_2
𝕜₂ : Type ?u.1437735
𝕜₃ : Type ?u.1437738
𝕝 : Type ?u.1437741
E : Type u_1
E₂ : Type ?u.1437747
E₃ : Type ?u.1437750
F : Type ?u.1437753
G : Type ?u.1437756
ι : Type ?u.1437759
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : SeminormedRing 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
p q : Seminorm 𝕜 E
hq : Continuous ↑q
hpq : p ≤ q
⊢ Continuous ↑p

tactic: rw [ball_zero_eq]
state_before: R : Type ?u.1437726
R' : Type ?u.1437729
𝕜 : Type u_2
𝕜₂ : Type ?u.1437735
𝕜₃ : Type ?u.1437738
𝕝 : Type ?u.1437741
E : Type u_1
E₂ : Type ?u.1437747
E₃ : Type ?u.1437750
F : Type ?u.1437753
G : Type ?u.1437756
ι : Type ?u.1437759
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : SeminormedRing 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
p q : Seminorm 𝕜 E
hq : Continuous ↑q
hpq : p ≤ q
⊢ IsOpen (ball q 0 1)

tactic: exact isOpen_lt hq continuous_const
state_before: R : Type ?u.1437726
R' : Type ?u.1437729
𝕜 : Type u_2
𝕜₂ : Type ?u.1437735
𝕜₃ : Type ?u.1437738
𝕝 : Type ?u.1437741
E : Type u_1
E₂ : Type ?u.1437747
E₃ : Type ?u.1437750
F : Type ?u.1437753
G : Type ?u.1437756
ι : Type ?u.1437759
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : SeminormedRing 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
p q : Seminorm 𝕜 E
hq : Continuous ↑q
hpq : p ≤ q
⊢ IsOpen {y | ↑q y < 1}
Theorem: CategoryTheory.Functor.eventualRange_eq_range_precomp
File: Mathlib/CategoryTheory/CofilteredSystem.lean

tactic: apply subset_antisymm
state_before: J : Type u
inst✝ : Category J
F : J ⥤ Type v
i j k : J
s : Set (F.obj i)
f : i ⟶ j
g : j ⟶ k
h : eventualRange F k = range (F.map g)
⊢ eventualRange F k = range (F.map (f ≫ g))

tactic: apply iInter₂_subset
state_before: case a
J : Type u
inst✝ : Category J
F : J ⥤ Type v
i j k : J
s : Set (F.obj i)
f : i ⟶ j
g : j ⟶ k
h : eventualRange F k = range (F.map g)
⊢ eventualRange F k ⊆ range (F.map (f ≫ g))

tactic: rw [h, F.map_comp]
state_before: case a
J : Type u
inst✝ : Category J
F : J ⥤ Type v
i j k : J
s : Set (F.obj i)
f : i ⟶ j
g : j ⟶ k
h : eventualRange F k = range (F.map g)
⊢ range (F.map (f ≫ g)) ⊆ eventualRange F k

tactic: apply range_comp_subset_range
state_before: case a
J : Type u
inst✝ : Category J
F : J ⥤ Type v
i j k : J
s : Set (F.obj i)
f : i ⟶ j
g : j ⟶ k
h : eventualRange F k = range (F.map g)
⊢ range (F.map f ≫ F.map g) ⊆ range (F.map g)
Theorem: MeasureTheory.OuterMeasure.le_trim_iff
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: let me := extend (fun s (_p : MeasurableSet s) => measureOf m₂ s)
state_before: α : Type u_1
inst✝ : MeasurableSpace α
m m₁ m₂ : OuterMeasure α
⊢ m₁ ≤ trim m₂ ↔ ∀ (s : Set α), MeasurableSet s → ↑m₁ s ≤ ↑m₂ s

tactic: have me_empty : me ∅ = 0 := by apply extend_empty; simp; simp
state_before: α : Type u_1
inst✝ : MeasurableSpace α
m m₁ m₂ : OuterMeasure α
me : Set α → ℝ≥0∞ := extend fun s _p => ↑m₂ s
⊢ m₁ ≤ trim m₂ ↔ ∀ (s : Set α), MeasurableSet s → ↑m₁ s ≤ ↑m₂ s

tactic: have : m₁ ≤ OuterMeasure.ofFunction me me_empty ↔
        (∀ (s : Set α), measureOf m₁ s ≤ me s) := le_ofFunction
state_before: α : Type u_1
inst✝ : MeasurableSpace α
m m₁ m₂ : OuterMeasure α
me : Set α → ℝ≥0∞ := extend fun s _p => ↑m₂ s
me_empty : me ∅ = 0
⊢ m₁ ≤ trim m₂ ↔ ∀ (s : Set α), MeasurableSet s → ↑m₁ s ≤ ↑m₂ s

tactic: apply this.trans
state_before: α : Type u_1
inst✝ : MeasurableSpace α
m m₁ m₂ : OuterMeasure α
me : Set α → ℝ≥0∞ := extend fun s _p => ↑m₂ s
me_empty : me ∅ = 0
this : m₁ ≤ OuterMeasure.ofFunction me me_empty ↔ ∀ (s : Set α), ↑m₁ s ≤ me s
⊢ m₁ ≤ trim m₂ ↔ ∀ (s : Set α), MeasurableSet s → ↑m₁ s ≤ ↑m₂ s

tactic: apply forall_congr'
state_before: α : Type u_1
inst✝ : MeasurableSpace α
m m₁ m₂ : OuterMeasure α
me : Set α → ℝ≥0∞ := extend fun s _p => ↑m₂ s
me_empty : me ∅ = 0
this : m₁ ≤ OuterMeasure.ofFunction me me_empty ↔ ∀ (s : Set α), ↑m₁ s ≤ me s
⊢ (∀ (s : Set α), ↑m₁ s ≤ me s) ↔ ∀ (s : Set α), MeasurableSet s → ↑m₁ s ≤ ↑m₂ s

tactic: intro s
state_before: case h
α : Type u_1
inst✝ : MeasurableSpace α
m m₁ m₂ : OuterMeasure α
me : Set α → ℝ≥0∞ := extend fun s _p => ↑m₂ s
me_empty : me ∅ = 0
this : m₁ ≤ OuterMeasure.ofFunction me me_empty ↔ ∀ (s : Set α), ↑m₁ s ≤ me s
⊢ ∀ (a : Set α), ↑m₁ a ≤ me a ↔ MeasurableSet a → ↑m₁ a ≤ ↑m₂ a

tactic: apply le_iInf_iff
state_before: case h
α : Type u_1
inst✝ : MeasurableSpace α
m m₁ m₂ : OuterMeasure α
me : Set α → ℝ≥0∞ := extend fun s _p => ↑m₂ s
me_empty : me ∅ = 0
this : m₁ ≤ OuterMeasure.ofFunction me me_empty ↔ ∀ (s : Set α), ↑m₁ s ≤ me s
s : Set α
⊢ ↑m₁ s ≤ me s ↔ MeasurableSet s → ↑m₁ s ≤ ↑m₂ s

tactic: apply extend_empty
state_before: α : Type u_1
inst✝ : MeasurableSpace α
m m₁ m₂ : OuterMeasure α
me : Set α → ℝ≥0∞ := extend fun s _p => ↑m₂ s
⊢ me ∅ = 0

tactic: simp
state_before: case m0
α : Type u_1
inst✝ : MeasurableSpace α
m m₁ m₂ : OuterMeasure α
me : Set α → ℝ≥0∞ := extend fun s _p => ↑m₂ s
⊢ ↑m₂ ∅ = 0

case P0
α : Type u_1
inst✝ : MeasurableSpace α
m m₁ m₂ : OuterMeasure α
me : Set α → ℝ≥0∞ := extend fun s _p => ↑m₂ s
⊢ MeasurableSet ∅

tactic: simp
state_before: case P0
α : Type u_1
inst✝ : MeasurableSpace α
m m₁ m₂ : OuterMeasure α
me : Set α → ℝ≥0∞ := extend fun s _p => ↑m₂ s
⊢ MeasurableSet ∅
Theorem: CategoryTheory.Abelian.pseudoEqual_trans
File: Mathlib/CategoryTheory/Abelian/Pseudoelements.lean

tactic: intro f g h ⟨R, p, q, ep, Eq, comm⟩ ⟨R', p', q', ep', eq', comm'⟩
state_before: C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
P : C
⊢ Transitive (PseudoEqual P)

tactic: refine' ⟨pullback q p', pullback.fst ≫ p, pullback.snd ≫ q', epi_comp _ _, epi_comp _ _, _⟩
state_before: C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
P : C
f g h : Over P
R : C
p : R ⟶ f.left
q : R ⟶ g.left
ep : Epi p
Eq : Epi q
comm : p ≫ f.hom = q ≫ g.hom
R' : C
p' : R' ⟶ g.left
q' : R' ⟶ h.left
ep' : Epi p'
eq' : Epi q'
comm' : p' ≫ g.hom = q' ≫ h.hom
⊢ PseudoEqual P f h

tactic: rw [Category.assoc, comm, ← Category.assoc, pullback.condition, Category.assoc, comm',
  Category.assoc]
state_before: C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
P : C
f g h : Over P
R : C
p : R ⟶ f.left
q : R ⟶ g.left
ep : Epi p
Eq : Epi q
comm : p ≫ f.hom = q ≫ g.hom
R' : C
p' : R' ⟶ g.left
q' : R' ⟶ h.left
ep' : Epi p'
eq' : Epi q'
comm' : p' ≫ g.hom = q' ≫ h.hom
⊢ (pullback.fst ≫ p) ≫ f.hom = (pullback.snd ≫ q') ≫ h.hom
Theorem: toIocMod_add_toIocDiv_zsmul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [toIocMod, sub_add_cancel]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
⊢ toIocMod hp a b + toIocDiv hp a b • p = b