1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Set.indicator_eq_one_iff_mem
File: Mathlib/Algebra/GroupWithZero/Indicator.lean

tactic: classical simp [indicator_apply, imp_false]
state_before: ι : Type u_1
κ : Type u_2
G₀ : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝¹ : MulZeroOneClass M₀
s t : Set ι
i : ι
inst✝ : Nontrivial M₀
⊢ s.indicator 1 i = 1 ↔ i ∈ s
state_after: no goals

tactic: simp [indicator_apply, imp_false]
state_before: ι : Type u_1
κ : Type u_2
G₀ : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝¹ : MulZeroOneClass M₀
s t : Set ι
i : ι
inst✝ : Nontrivial M₀
⊢ s.indicator 1 i = 1 ↔ i ∈ s
state_after: no goals
Theorem: isSeparatedMap_iff_nhds
File: Mathlib/Topology/SeparatedMap.lean

tactic: simp_rw [isSeparatedMap_iff_disjoint_nhds, Filter.disjoint_iff]
state_before: X : Type u_1
Y : Sort u_2
A : Type ?u.6677
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace A
f : X → Y
⊢ IsSeparatedMap f ↔ ∀ (x₁ x₂ : X), f x₁ = f x₂ → x₁ ≠ x₂ → ∃ s₁ ∈ 𝓝 x₁, ∃ s₂ ∈ 𝓝 x₂, Disjoint s₁ s₂
state_after: no goals
Theorem: ContinuousWithinAt.of_dslope
File: Mathlib/Analysis/Calculus/Dslope.lean

tactic: have : ContinuousWithinAt (fun x => (x - a) • dslope f a x + f a) s b :=
  ((continuousWithinAt_id.sub continuousWithinAt_const).smul h).add continuousWithinAt_const
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : ContinuousWithinAt (dslope f a) s b
⊢ ContinuousWithinAt f s b
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : ContinuousWithinAt (dslope f a) s b
this : ContinuousWithinAt (fun x => (x - a) • dslope f a x + f a) s b
⊢ ContinuousWithinAt f s b

tactic: simpa only [sub_smul_dslope, sub_add_cancel] using this
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : ContinuousWithinAt (dslope f a) s b
this : ContinuousWithinAt (fun x => (x - a) • dslope f a x + f a) s b
⊢ ContinuousWithinAt f s b
state_after: no goals
Theorem: CauchyFilter.uniformContinuous_extend
File: Mathlib/Topology/UniformSpace/Completion.lean

tactic: by_cases hf : UniformContinuous f
state_before: α : Type u
inst✝³ : UniformSpace α
β : Type v
γ : Type w
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : CompleteSpace β
f : α → β
⊢ UniformContinuous (extend f)
state_after: case pos
α : Type u
inst✝³ : UniformSpace α
β : Type v
γ : Type w
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : CompleteSpace β
f : α → β
hf : UniformContinuous f
⊢ UniformContinuous (extend f)

case neg
α : Type u
inst✝³ : UniformSpace α
β : Type v
γ : Type w
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : CompleteSpace β
f : α → β
hf : ¬UniformContinuous f
⊢ UniformContinuous (extend f)

tactic: rw [extend, if_pos hf]
state_before: case pos
α : Type u
inst✝³ : UniformSpace α
β : Type v
γ : Type w
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : CompleteSpace β
f : α → β
hf : UniformContinuous f
⊢ UniformContinuous (extend f)
state_after: case pos
α : Type u
inst✝³ : UniformSpace α
β : Type v
γ : Type w
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : CompleteSpace β
f : α → β
hf : UniformContinuous f
⊢ UniformContinuous (⋯.extend f)

tactic: exact uniformContinuous_uniformly_extend uniformInducing_pureCauchy denseRange_pureCauchy hf
state_before: case pos
α : Type u
inst✝³ : UniformSpace α
β : Type v
γ : Type w
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : CompleteSpace β
f : α → β
hf : UniformContinuous f
⊢ UniformContinuous (⋯.extend f)
state_after: no goals

tactic: rw [extend, if_neg hf]
state_before: case neg
α : Type u
inst✝³ : UniformSpace α
β : Type v
γ : Type w
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : CompleteSpace β
f : α → β
hf : ¬UniformContinuous f
⊢ UniformContinuous (extend f)
state_after: case neg
α : Type u
inst✝³ : UniformSpace α
β : Type v
γ : Type w
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : CompleteSpace β
f : α → β
hf : ¬UniformContinuous f
⊢ UniformContinuous fun x => f ⋯.some

tactic: exact uniformContinuous_of_const fun a _b => by congr
state_before: case neg
α : Type u
inst✝³ : UniformSpace α
β : Type v
γ : Type w
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : CompleteSpace β
f : α → β
hf : ¬UniformContinuous f
⊢ UniformContinuous fun x => f ⋯.some
state_after: no goals

tactic: congr
state_before: α : Type u
inst✝³ : UniformSpace α
β : Type v
γ : Type w
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : CompleteSpace β
f : α → β
hf : ¬UniformContinuous f
a _b : CauchyFilter α
⊢ f ⋯.some = f ⋯.some
state_after: no goals
Theorem: Nat.chineseRemainderOfFinset_lt_prod
File: Mathlib/Data/Nat/ChineseRemainder.lean

tactic: simpa [chineseRemainderOfFinset] using
  chineseRemainderOfMultiset_lt_prod a s t.nodup (by simpa using hs) (by simpa using pp)
state_before: ι : Type u_1
a s : ι → ℕ
t : Finset ι
hs : ∀ i ∈ t, s i ≠ 0
pp : (↑t).Pairwise (Coprime on s)
⊢ ↑(chineseRemainderOfFinset a s t hs pp) < ∏ i ∈ t, s i
state_after: no goals

tactic: simpa using hs
state_before: ι : Type u_1
a s : ι → ℕ
t : Finset ι
hs : ∀ i ∈ t, s i ≠ 0
pp : (↑t).Pairwise (Coprime on s)
⊢ ∀ i ∈ t.val, s i ≠ 0
state_after: no goals

tactic: simpa using pp
state_before: ι : Type u_1
a s : ι → ℕ
t : Finset ι
hs : ∀ i ∈ t, s i ≠ 0
pp : (↑t).Pairwise (Coprime on s)
⊢ {x | x ∈ t.val}.Pairwise (Coprime on s)
state_after: no goals
Theorem: CircleDeg1Lift.units_inv_apply_apply
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: simp only [← mul_apply, f.inv_mul, coe_one, id]
state_before: f✝ g : CircleDeg1Lift
f : CircleDeg1Liftˣ
x : ℝ
⊢ ↑f⁻¹ (↑f x) = x
state_after: no goals
Theorem: Int.ceil_add_nat
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [← Int.cast_natCast, ceil_add_int]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a : α
n : ℕ
⊢ ⌈a + ↑n⌉ = ⌈a⌉ + ↑n
state_after: no goals
Theorem: Polynomial.coeff_list_sum_map
File: Mathlib/Algebra/Polynomial/Coeff.lean

tactic: simp_rw [coeff_list_sum, List.map_map, Function.comp, lcoeff_apply]
state_before: R : Type u
S : Type v
a b : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
ι : Type u_1
l : List ι
f : ι → R[X]
n : ℕ
⊢ (List.map f l).sum.coeff n = (List.map (fun a => (f a).coeff n) l).sum
state_after: no goals
Theorem: MeasureTheory.Egorov.iUnionNotConvergentSeq_subset
File: Mathlib/MeasureTheory/Function/Egorov.lean

tactic: rw [iUnionNotConvergentSeq, ← Set.inter_iUnion]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
inst✝³ : MetricSpace β
μ : Measure α
n : ℕ
i j : ι
s : Set α
ε : ℝ
f : ι → α → β
g : α → β
inst✝² : SemilatticeSup ι
inst✝¹ : Nonempty ι
inst✝ : Countable ι
hε : 0 < ε
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
hsm : MeasurableSet s
hs : μ s ≠ ⊤
hfg : ∀ᵐ (x : α) ∂μ, x ∈ s → Tendsto (fun n => f n x) atTop (𝓝 (g x))
⊢ iUnionNotConvergentSeq hε hf hg hsm hs hfg ⊆ s
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
inst✝³ : MetricSpace β
μ : Measure α
n : ℕ
i j : ι
s : Set α
ε : ℝ
f : ι → α → β
g : α → β
inst✝² : SemilatticeSup ι
inst✝¹ : Nonempty ι
inst✝ : Countable ι
hε : 0 < ε
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
hsm : MeasurableSet s
hs : μ s ≠ ⊤
hfg : ∀ᵐ (x : α) ∂μ, x ∈ s → Tendsto (fun n => f n x) atTop (𝓝 (g x))
⊢ s ∩ ⋃ i, notConvergentSeq f g i (notConvergentSeqLTIndex ⋯ hf hg hsm hs hfg i) ⊆ s

tactic: exact Set.inter_subset_left
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
inst✝³ : MetricSpace β
μ : Measure α
n : ℕ
i j : ι
s : Set α
ε : ℝ
f : ι → α → β
g : α → β
inst✝² : SemilatticeSup ι
inst✝¹ : Nonempty ι
inst✝ : Countable ι
hε : 0 < ε
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
hsm : MeasurableSet s
hs : μ s ≠ ⊤
hfg : ∀ᵐ (x : α) ∂μ, x ∈ s → Tendsto (fun n => f n x) atTop (𝓝 (g x))
⊢ s ∩ ⋃ i, notConvergentSeq f g i (notConvergentSeqLTIndex ⋯ hf hg hsm hs hfg i) ⊆ s
state_after: no goals
Theorem: MeasureTheory.measurePreserving_mul_prod_inv_right
File: Mathlib/MeasureTheory/Group/Prod.lean

tactic: convert (measurePreserving_prod_div_swap ν μ).comp (measurePreserving_prod_mul_swap_right μ ν)
  using 1
state_before: G : Type u_1
inst✝⁷ : MeasurableSpace G
inst✝⁶ : Group G
inst✝⁵ : MeasurableMul₂ G
μ ν : Measure G
inst✝⁴ : SigmaFinite ν
inst✝³ : SigmaFinite μ
s : Set G
inst✝² : MeasurableInv G
inst✝¹ : μ.IsMulRightInvariant
inst✝ : ν.IsMulRightInvariant
⊢ MeasurePreserving (fun z => (z.1 * z.2, z.1⁻¹)) (μ.prod ν) (μ.prod ν)
state_after: case h.e'_5
G : Type u_1
inst✝⁷ : MeasurableSpace G
inst✝⁶ : Group G
inst✝⁵ : MeasurableMul₂ G
μ ν : Measure G
inst✝⁴ : SigmaFinite ν
inst✝³ : SigmaFinite μ
s : Set G
inst✝² : MeasurableInv G
inst✝¹ : μ.IsMulRightInvariant
inst✝ : ν.IsMulRightInvariant
⊢ (fun z => (z.1 * z.2, z.1⁻¹)) = (fun z => (z.2, z.1 / z.2)) ∘ fun z => (z.2, z.1 * z.2)

tactic: ext1 ⟨x, y⟩
state_before: case h.e'_5
G : Type u_1
inst✝⁷ : MeasurableSpace G
inst✝⁶ : Group G
inst✝⁵ : MeasurableMul₂ G
μ ν : Measure G
inst✝⁴ : SigmaFinite ν
inst✝³ : SigmaFinite μ
s : Set G
inst✝² : MeasurableInv G
inst✝¹ : μ.IsMulRightInvariant
inst✝ : ν.IsMulRightInvariant
⊢ (fun z => (z.1 * z.2, z.1⁻¹)) = (fun z => (z.2, z.1 / z.2)) ∘ fun z => (z.2, z.1 * z.2)
state_after: case h.e'_5.h.mk
G : Type u_1
inst✝⁷ : MeasurableSpace G
inst✝⁶ : Group G
inst✝⁵ : MeasurableMul₂ G
μ ν : Measure G
inst✝⁴ : SigmaFinite ν
inst✝³ : SigmaFinite μ
s : Set G
inst✝² : MeasurableInv G
inst✝¹ : μ.IsMulRightInvariant
inst✝ : ν.IsMulRightInvariant
x y : G
⊢ ((x, y).1 * (x, y).2, (x, y).1⁻¹) = ((fun z => (z.2, z.1 / z.2)) ∘ fun z => (z.2, z.1 * z.2)) (x, y)

tactic: simp_rw [Function.comp_apply, div_mul_eq_div_div_swap, div_self', one_div]
state_before: case h.e'_5.h.mk
G : Type u_1
inst✝⁷ : MeasurableSpace G
inst✝⁶ : Group G
inst✝⁵ : MeasurableMul₂ G
μ ν : Measure G
inst✝⁴ : SigmaFinite ν
inst✝³ : SigmaFinite μ
s : Set G
inst✝² : MeasurableInv G
inst✝¹ : μ.IsMulRightInvariant
inst✝ : ν.IsMulRightInvariant
x y : G
⊢ ((x, y).1 * (x, y).2, (x, y).1⁻¹) = ((fun z => (z.2, z.1 / z.2)) ∘ fun z => (z.2, z.1 * z.2)) (x, y)
state_after: no goals
Theorem: Complex.ofReal_sub
File: Mathlib/Data/Complex/Basic.lean

tactic: simp [ofReal']
state_before: r s : ℝ
⊢ (↑(r - s)).re = (↑r - ↑s).re ∧ (↑(r - s)).im = (↑r - ↑s).im
state_after: no goals
Theorem: CategoryTheory.IsPullback.of_is_product
File: Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean

tactic: dsimp
state_before: case mk.right
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P X Y Z : C
fst : P ⟶ X
snd : P ⟶ Y
f : X ⟶ Z
g : Y ⟶ Z
c : BinaryFan X Y
h : IsLimit c
t : IsTerminal Z
⊢ c.π.app { as := WalkingPair.right } =
    (Iso.refl c.pt).hom ≫
      (BinaryFan.mk (c.π.1 { as := WalkingPair.left }) (c.π.1 { as := WalkingPair.right })).π.app
        { as := WalkingPair.right }
state_after: case mk.right
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P X Y Z : C
fst : P ⟶ X
snd : P ⟶ Y
f : X ⟶ Z
g : Y ⟶ Z
c : BinaryFan X Y
h : IsLimit c
t : IsTerminal Z
⊢ c.snd = 𝟙 c.pt ≫ c.snd

tactic: simp
state_before: case mk.right
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P X Y Z : C
fst : P ⟶ X
snd : P ⟶ Y
f : X ⟶ Z
g : Y ⟶ Z
c : BinaryFan X Y
h : IsLimit c
t : IsTerminal Z
⊢ c.snd = 𝟙 c.pt ≫ c.snd
state_after: no goals
Theorem: connectedSpace_iff_connectedComponent
File: Mathlib/Topology/Connected/Basic.lean

tactic: constructor
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ ConnectedSpace α ↔ ∃ x, connectedComponent x = univ
state_after: case mp
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ ConnectedSpace α → ∃ x, connectedComponent x = univ

case mpr
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ (∃ x, connectedComponent x = univ) → ConnectedSpace α

tactic: rintro ⟨⟨x⟩⟩
state_before: case mp
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ ConnectedSpace α → ∃ x, connectedComponent x = univ
state_after: case mp.mk.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
toPreconnectedSpace✝ : PreconnectedSpace α
x : α
⊢ ∃ x, connectedComponent x = univ

tactic: exact
  ⟨x, eq_univ_of_univ_subset <| isPreconnected_univ.subset_connectedComponent (mem_univ x)⟩
state_before: case mp.mk.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
toPreconnectedSpace✝ : PreconnectedSpace α
x : α
⊢ ∃ x, connectedComponent x = univ
state_after: no goals

tactic: rintro ⟨x, h⟩
state_before: case mpr
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ (∃ x, connectedComponent x = univ) → ConnectedSpace α
state_after: case mpr.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
h : connectedComponent x = univ
⊢ ConnectedSpace α

tactic: haveI : PreconnectedSpace α :=
  ⟨by rw [← h]; exact isPreconnected_connectedComponent⟩
state_before: case mpr.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
h : connectedComponent x = univ
⊢ ConnectedSpace α
state_after: case mpr.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
h : connectedComponent x = univ
this : PreconnectedSpace α
⊢ ConnectedSpace α

tactic: exact ⟨⟨x⟩⟩
state_before: case mpr.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
h : connectedComponent x = univ
this : PreconnectedSpace α
⊢ ConnectedSpace α
state_after: no goals

tactic: rw [← h]
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
h : connectedComponent x = univ
⊢ IsPreconnected univ
state_after: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
h : connectedComponent x = univ
⊢ IsPreconnected (connectedComponent x)

tactic: exact isPreconnected_connectedComponent
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
h : connectedComponent x = univ
⊢ IsPreconnected (connectedComponent x)
state_after: no goals
Theorem: NormedAddGroupHom.comp_range
File: Mathlib/Analysis/Normed/Group/Hom.lean

tactic: erw [AddMonoidHom.map_range]
state_before: V : Type u_1
W : Type u_2
V₁ : Type u_3
V₂ : Type u_4
V₃ : Type u_5
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
⊢ (g.comp f).range = AddSubgroup.map g.toAddMonoidHom f.range
state_after: V : Type u_1
W : Type u_2
V₁ : Type u_3
V₂ : Type u_4
V₃ : Type u_5
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
⊢ (g.comp f).range = (g.toAddMonoidHom.comp f.toAddMonoidHom).range

tactic: rfl
state_before: V : Type u_1
W : Type u_2
V₁ : Type u_3
V₂ : Type u_4
V₃ : Type u_5
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
⊢ (g.comp f).range = (g.toAddMonoidHom.comp f.toAddMonoidHom).range
state_after: no goals
Theorem: CategoryTheory.IsCofilteredOrEmpty.of_left_adjoint
File: Mathlib/CategoryTheory/Filtered/Basic.lean

tactic: rw [← h.homEquiv_naturality_right_symm, ← h.homEquiv_naturality_right_symm, eq_condition]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : IsCofilteredOrEmpty C
D : Type u₁
inst✝ : Category.{v₁, u₁} D
L : C ⥤ D
R : D ⥤ C
h : L ⊣ R
X Y : D
f g : X ⟶ Y
⊢ (h.homEquiv (eq (R.map f) (R.map g)) X).symm (eqHom (R.map f) (R.map g)) ≫ f =
    (h.homEquiv (eq (R.map f) (R.map g)) X).symm (eqHom (R.map f) (R.map g)) ≫ g
state_after: no goals
Theorem: Cardinal.derivFamily_lt_ord
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rwa [lift_id]
state_before: α : Type u_1
r : α → α → Prop
ι : Type u
f : ι → Ordinal.{u} → Ordinal.{u}
c : Cardinal.{u}
hc : c.IsRegular
hι : #ι < c
hc' : c ≠ ℵ₀
hf : ∀ (i : ι), ∀ b < c.ord, f i b < c.ord
a : Ordinal.{u}
⊢ lift.{u, u} #ι < c
state_after: no goals
Theorem: UniformOnFun.uniformContinuous_restrict
File: Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean

tactic: change _ ≤ _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
h : s ∈ 𝔖
⊢ UniformContinuous (⇑UniformFun.ofFun ∘ s.restrict ∘ ⇑(toFun 𝔖))
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
h : s ∈ 𝔖
⊢ map (fun x => ((⇑UniformFun.ofFun ∘ s.restrict ∘ ⇑(toFun 𝔖)) x.1, (⇑UniformFun.ofFun ∘ s.restrict ∘ ⇑(toFun 𝔖)) x.2))
      (𝓤 (α →ᵤ[𝔖] β)) ≤
    𝓤 (↑s →ᵤ β)

tactic: simp only [UniformOnFun.uniformSpace, map_le_iff_le_comap, iInf_uniformity]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
h : s ∈ 𝔖
⊢ map (fun x => ((⇑UniformFun.ofFun ∘ s.restrict ∘ ⇑(toFun 𝔖)) x.1, (⇑UniformFun.ofFun ∘ s.restrict ∘ ⇑(toFun 𝔖)) x.2))
      (𝓤 (α →ᵤ[𝔖] β)) ≤
    𝓤 (↑s →ᵤ β)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
h : s ∈ 𝔖
⊢ ⨅ i ∈ 𝔖, 𝓤 (α →ᵤ[𝔖] β) ≤
    comap
      (fun x => ((⇑UniformFun.ofFun ∘ s.restrict ∘ ⇑(toFun 𝔖)) x.1, (⇑UniformFun.ofFun ∘ s.restrict ∘ ⇑(toFun 𝔖)) x.2))
      (𝓤 (↑s →ᵤ β))

tactic: exact iInf₂_le s h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
h : s ∈ 𝔖
⊢ ⨅ i ∈ 𝔖, 𝓤 (α →ᵤ[𝔖] β) ≤
    comap
      (fun x => ((⇑UniformFun.ofFun ∘ s.restrict ∘ ⇑(toFun 𝔖)) x.1, (⇑UniformFun.ofFun ∘ s.restrict ∘ ⇑(toFun 𝔖)) x.2))
      (𝓤 (↑s →ᵤ β))
state_after: no goals
Theorem: WithTop.sub_eq_top_iff
File: Mathlib/Algebra/Order/Sub/WithTop.lean

tactic: induction a <;> induction b <;>
  simp only [← coe_sub, coe_ne_top, sub_top, zero_ne_top, top_sub_coe, false_and, Ne,
    not_true_eq_false, not_false_eq_true, and_false, and_self]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Sub α
inst✝ : Bot α
a b : WithTop α
⊢ a - b = ⊤ ↔ a = ⊤ ∧ b ≠ ⊤
state_after: no goals
Theorem: CategoryTheory.Functor.isRightDerivedFunctor_iff_isLeftKanExtension
File: Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean

tactic: constructor
state_before: C : Type u_1
C' : Type ?u.9493
D : Type u_2
D' : Type ?u.9499
H : Type u_5
H' : Type ?u.9505
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Category.{?u.9513, ?u.9493} C'
inst✝⁴ : Category.{u_4, u_2} D
inst✝³ : Category.{?u.9521, ?u.9499} D'
inst✝² : Category.{u_6, u_5} H
inst✝¹ : Category.{?u.9529, ?u.9505} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝ : L.IsLocalization W
⊢ RF.IsRightDerivedFunctor α W ↔ RF.IsLeftKanExtension α
state_after: case mp
C : Type u_1
C' : Type ?u.9493
D : Type u_2
D' : Type ?u.9499
H : Type u_5
H' : Type ?u.9505
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Category.{?u.9513, ?u.9493} C'
inst✝⁴ : Category.{u_4, u_2} D
inst✝³ : Category.{?u.9521, ?u.9499} D'
inst✝² : Category.{u_6, u_5} H
inst✝¹ : Category.{?u.9529, ?u.9505} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝ : L.IsLocalization W
⊢ RF.IsRightDerivedFunctor α W → RF.IsLeftKanExtension α

case mpr
C : Type u_1
C' : Type ?u.9493
D : Type u_2
D' : Type ?u.9499
H : Type u_5
H' : Type ?u.9505
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Category.{?u.9513, ?u.9493} C'
inst✝⁴ : Category.{u_4, u_2} D
inst✝³ : Category.{?u.9521, ?u.9499} D'
inst✝² : Category.{u_6, u_5} H
inst✝¹ : Category.{?u.9529, ?u.9505} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝ : L.IsLocalization W
⊢ RF.IsLeftKanExtension α → RF.IsRightDerivedFunctor α W

tactic: exact fun _ => IsRightDerivedFunctor.isLeftKanExtension RF α W
state_before: case mp
C : Type u_1
C' : Type ?u.9493
D : Type u_2
D' : Type ?u.9499
H : Type u_5
H' : Type ?u.9505
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Category.{?u.9513, ?u.9493} C'
inst✝⁴ : Category.{u_4, u_2} D
inst✝³ : Category.{?u.9521, ?u.9499} D'
inst✝² : Category.{u_6, u_5} H
inst✝¹ : Category.{?u.9529, ?u.9505} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝ : L.IsLocalization W
⊢ RF.IsRightDerivedFunctor α W → RF.IsLeftKanExtension α
state_after: no goals

tactic: exact fun h => ⟨h⟩
state_before: case mpr
C : Type u_1
C' : Type ?u.9493
D : Type u_2
D' : Type ?u.9499
H : Type u_5
H' : Type ?u.9505
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Category.{?u.9513, ?u.9493} C'
inst✝⁴ : Category.{u_4, u_2} D
inst✝³ : Category.{?u.9521, ?u.9499} D'
inst✝² : Category.{u_6, u_5} H
inst✝¹ : Category.{?u.9529, ?u.9505} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝ : L.IsLocalization W
⊢ RF.IsLeftKanExtension α → RF.IsRightDerivedFunctor α W
state_after: no goals
Theorem: Matrix.toLin_kronecker
File: Mathlib/LinearAlgebra/TensorProduct/Matrix.lean

tactic: rw [← LinearEquiv.eq_symm_apply, toLin_symm, TensorProduct.toMatrix_map, toMatrix_toLin,
  toMatrix_toLin]
state_before: R : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
M' : Type u_5
N' : Type u_6
ι : Type u_7
κ : Type u_8
τ : Type u_9
ι' : Type u_10
κ' : Type u_11
inst✝¹⁸ : DecidableEq ι
inst✝¹⁷ : DecidableEq κ
inst✝¹⁶ : DecidableEq τ
inst✝¹⁵ : Fintype ι
inst✝¹⁴ : Fintype κ
inst✝¹³ : Fintype τ
inst✝¹² : Finite ι'
inst✝¹¹ : Finite κ'
inst✝¹⁰ : CommRing R
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup N
inst✝⁷ : AddCommGroup P
inst✝⁶ : AddCommGroup M'
inst✝⁵ : AddCommGroup N'
inst✝⁴ : Module R M
inst✝³ : Module R N
inst✝² : Module R P
inst✝¹ : Module R M'
inst✝ : Module R N'
bM : Basis ι R M
bN : Basis κ R N
bP : Basis τ R P
bM' : Basis ι' R M'
bN' : Basis κ' R N'
A : Matrix ι' ι R
B : Matrix κ' κ R
⊢ (toLin (bM.tensorProduct bN) (bM'.tensorProduct bN')) (kroneckerMap (fun x x_1 => x * x_1) A B) =
    TensorProduct.map ((toLin bM bM') A) ((toLin bN bN') B)
state_after: no goals
Theorem: Cardinal.bddAbove_range_comp
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [range_comp]
state_before: α β ι : Type u
f : ι → Cardinal.{v}
hf : BddAbove (range f)
g : Cardinal.{v} → Cardinal.{max v w}
⊢ BddAbove (range (g ∘ f))
state_after: α β ι : Type u
f : ι → Cardinal.{v}
hf : BddAbove (range f)
g : Cardinal.{v} → Cardinal.{max v w}
⊢ BddAbove (g '' range f)

tactic: exact bddAbove_image g hf
state_before: α β ι : Type u
f : ι → Cardinal.{v}
hf : BddAbove (range f)
g : Cardinal.{v} → Cardinal.{max v w}
⊢ BddAbove (g '' range f)
state_after: no goals
Theorem: Complex.sin_eq_sin_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean

tactic: simp only [← Complex.cos_sub_pi_div_two, cos_eq_cos_iff, sub_eq_iff_eq_add]
state_before: x y : ℂ
⊢ sin x = sin y ↔ ∃ k, y = 2 * ↑k * ↑π + x ∨ y = (2 * ↑k + 1) * ↑π - x
state_after: x y : ℂ
⊢ (∃ k, y = 2 * ↑k * ↑π + (x - ↑π / 2) + ↑π / 2 ∨ y = 2 * ↑k * ↑π - (x - ↑π / 2) + ↑π / 2) ↔
    ∃ k, y = 2 * ↑k * ↑π + x ∨ y = (2 * ↑k + 1) * ↑π - x

tactic: refine exists_congr fun k => or_congr ?_ ?_ <;> refine Eq.congr rfl ?_ <;> field_simp <;> ring
state_before: x y : ℂ
⊢ (∃ k, y = 2 * ↑k * ↑π + (x - ↑π / 2) + ↑π / 2 ∨ y = 2 * ↑k * ↑π - (x - ↑π / 2) + ↑π / 2) ↔
    ∃ k, y = 2 * ↑k * ↑π + x ∨ y = (2 * ↑k + 1) * ↑π - x
state_after: no goals