tasksource/leandojo huggingface dataset:
Theorem: Submodule.span_preimage_le
File: Mathlib/LinearAlgebra/Span.lean

tactic: rw [span_le, comap_coe]
state_before: R : Type u_1
R₂ : Type u_2
K : Type ?u.14881
M : Type u_3
M₂ : Type u_4
V : Type ?u.14890
S : Type ?u.14893
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s✝ t : Set M
f : M →ₛₗ[σ₁₂] M₂
s : Set M₂
⊢ span R (↑f ⁻¹' s) ≤ comap f (span R₂ s)

tactic: exact preimage_mono subset_span
state_before: R : Type u_1
R₂ : Type u_2
K : Type ?u.14881
M : Type u_3
M₂ : Type u_4
V : Type ?u.14890
S : Type ?u.14893
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s✝ t : Set M
f : M →ₛₗ[σ₁₂] M₂
s : Set M₂
⊢ ↑f ⁻¹' s ⊆ ↑f ⁻¹' ↑(span R₂ s)
Theorem: Prod.smul_mk_zero
File: Mathlib/GroupTheory/GroupAction/Prod.lean

tactic: rw [Prod.smul_mk, smul_zero]
state_before: M : Type u_2
N : Type ?u.3133
P : Type ?u.3136
E : Type ?u.3139
α : Type u_3
β✝ : Type ?u.3145
inst✝⁶ : SMul M α
inst✝⁵ : SMul M β✝
inst✝⁴ : SMul N α
inst✝³ : SMul N β✝
a✝ : M
x : α × β✝
β : Type u_1
inst✝² : Monoid M
inst✝¹ : AddMonoid β
inst✝ : DistribMulAction M β
a : M
b : α
⊢ a • (b, 0) = (a • b, 0)
Theorem: Ordinal.blsub_congr
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: subst ho
state_before: α : Type ?u.349670
β : Type ?u.349673
γ : Type ?u.349676
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o₁ o₂ : Ordinal
f : (a : Ordinal) → a < o₁ → Ordinal
ho : o₁ = o₂
⊢ blsub o₁ f = blsub o₂ fun a h => f a (_ : a < o₁)

tactic: rfl
state_before: α : Type ?u.349670
β : Type ?u.349673
γ : Type ?u.349676
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o₁ : Ordinal
f : (a : Ordinal) → a < o₁ → Ordinal
⊢ blsub o₁ f = blsub o₁ fun a h => f a (_ : a < o₁)
Theorem: List.mergeSort_cons_cons
File: Mathlib/Data/List/Sort.lean

tactic: simp only [mergeSort, h]
state_before: α : Type uu
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l l₁ l₂ : List α
h : split (a :: b :: l) = (l₁, l₂)
⊢ mergeSort r (a :: b :: l) = merge r (mergeSort r l₁) (mergeSort r l₂)
Theorem: PrimeSpectrum.zeroLocus_bUnion
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: simp only [zeroLocus_iUnion]
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
s : Set (Set R)
⊢ zeroLocus (⋃ (s' : Set R) (_ : s' ∈ s), s') = ⋂ (s' : Set R) (_ : s' ∈ s), zeroLocus s'
Theorem: Complex.cos_pi_div_two_sub
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: rw [← cos_neg, neg_sub, cos_sub_pi_div_two]
state_before: x : ℂ
⊢ cos (↑π / 2 - x) = sin x
Theorem: Polynomial.eval_zero_map
File: Mathlib/Data/Polynomial/Eval.lean

tactic: simp [← coeff_zero_eq_eval_zero]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p✝ q r : R[X]
inst✝ : Semiring S
f✝ f : R →+* S
p : R[X]
⊢ eval 0 (map f p) = ↑f (eval 0 p)
Theorem: IsOpen.exists_Ioo_subset
File: Mathlib/Topology/Order/Basic.lean

tactic: obtain ⟨x, hx⟩ : ∃ x, x ∈ s := h
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
h : Set.Nonempty s
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s

tactic: obtain ⟨y, hy⟩ : ∃ y, y ≠ x := exists_ne x
state_before: case intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s

tactic: rcases lt_trichotomy x y with (H | rfl | H)
state_before: case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
y : α
hy : y ≠ x
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s

tactic: obtain ⟨u, xu, hu⟩ : ∃ u, x < u ∧ Ico x u ⊆ s :=
  exists_Ico_subset_of_mem_nhds (hs.mem_nhds hx) ⟨y, H⟩
state_before: case intro.intro.inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
y : α
hy : y ≠ x
H : x < y
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s

tactic: exact ⟨x, u, xu, Ioo_subset_Ico_self.trans hu⟩
state_before: case intro.intro.inl.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
y : α
hy : y ≠ x
H : x < y
u : α
xu : x < u
hu : Ico x u ⊆ s
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s

tactic: exact (hy rfl).elim
state_before: case intro.intro.inr.inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
hy : x ≠ x
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s

tactic: obtain ⟨l, lx, hl⟩ : ∃ l, l < x ∧ Ioc l x ⊆ s :=
  exists_Ioc_subset_of_mem_nhds (hs.mem_nhds hx) ⟨y, H⟩
state_before: case intro.intro.inr.inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
y : α
hy : y ≠ x
H : y < x
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s

tactic: exact ⟨l, x, lx, Ioo_subset_Ioc_self.trans hl⟩
state_before: case intro.intro.inr.inr.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
y : α
hy : y ≠ x
H : y < x
l : α
lx : l < x
hl : Ioc l x ⊆ s
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s
Theorem: Order.not_isSuccLimit_succ_of_not_isMax
File: Mathlib/Order/SuccPred/Limit.lean

tactic: contrapose! ha
state_before: α : Type u_1
inst✝¹ : Preorder α
a : α
inst✝ : SuccOrder α
ha : ¬IsMax a
⊢ ¬IsSuccLimit (succ a)

tactic: exact ha.isMax
state_before: α : Type u_1
inst✝¹ : Preorder α
a : α
inst✝ : SuccOrder α
ha : IsSuccLimit (succ a)
⊢ IsMax a
Theorem: FormalMultilinearSeries.nnnorm_changeOrigin_le
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: refine' tsum_of_nnnorm_bounded _ fun l => p.nnnorm_changeOriginSeries_apply_le_tsum k l x
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.1537340
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
k : ℕ
h : ↑‖x‖₊ < radius p
⊢ ‖changeOrigin p x k‖₊ ≤ ∑' (s : (l : ℕ) × { s // Finset.card s = l }), ‖p (k + s.fst)‖₊ * ‖x‖₊ ^ s.fst

tactic: have := p.changeOriginSeries_summable_aux₂ h k
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.1537340
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
k : ℕ
h : ↑‖x‖₊ < radius p
⊢ HasSum (fun l => ∑' (x_1 : { s // Finset.card s = l }), ‖p (k + l)‖₊ * ‖x‖₊ ^ l)
    (∑' (s : (l : ℕ) × { s // Finset.card s = l }), ‖p (k + s.fst)‖₊ * ‖x‖₊ ^ s.fst)

tactic: refine' HasSum.sigma this.hasSum fun l => _
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.1537340
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
k : ℕ
h : ↑‖x‖₊ < radius p
this : Summable fun s => ‖p (k + s.fst)‖₊ * ‖x‖₊ ^ s.fst
⊢ HasSum (fun l => ∑' (x_1 : { s // Finset.card s = l }), ‖p (k + l)‖₊ * ‖x‖₊ ^ l)
    (∑' (s : (l : ℕ) × { s // Finset.card s = l }), ‖p (k + s.fst)‖₊ * ‖x‖₊ ^ s.fst)

tactic: exact ((NNReal.summable_sigma.1 this).1 l).hasSum
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.1537340
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
k : ℕ
h : ↑‖x‖₊ < radius p
this : Summable fun s => ‖p (k + s.fst)‖₊ * ‖x‖₊ ^ s.fst
l : ℕ
⊢ HasSum (fun c => ‖p (k + { fst := l, snd := c }.fst)‖₊ * ‖x‖₊ ^ { fst := l, snd := c }.fst)
    (∑' (x_1 : { s // Finset.card s = l }), ‖p (k + l)‖₊ * ‖x‖₊ ^ l)
Theorem: Part.Fix.approx_le_fix
File: Mathlib/Control/LawfulFix.lean

tactic: rw [mem_iff f]
state_before: α : Type u_1
β : α → Type u_2
f : ((a : α) → Part (β a)) →o (a : α) → Part (β a)
i : ℕ
a : α
b : β a
hh : b ∈ approx (↑f) i a
⊢ b ∈ Part.fix (↑f) a

tactic: exact ⟨_, hh⟩
state_before: α : Type u_1
β : α → Type u_2
f : ((a : α) → Part (β a)) →o (a : α) → Part (β a)
i : ℕ
a : α
b : β a
hh : b ∈ approx (↑f) i a
⊢ ∃ i, b ∈ approx (↑f) i a
Theorem: Real.dist_left_le_of_mem_uIcc
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: simpa only [dist_comm x] using abs_sub_left_of_mem_uIcc h
state_before: α : Type u
β : Type v
X : Type ?u.194701
ι : Type ?u.194704
inst✝ : PseudoMetricSpace α
x y z : ℝ
h : y ∈ uIcc x z
⊢ dist x y ≤ dist x z
Theorem: Compactum.str_incl
File: Mathlib/Topology/Category/Compactum.lean

tactic: change ((β ).η.app _ ≫ X.a) _ = _
state_before: X : Compactum
x : X.A
⊢ str X (incl X x) = x

tactic: rw [Monad.Algebra.unit]
state_before: X : Compactum
x : X.A
⊢ ((Monad.η β).app X.A ≫ X.a) x = x

tactic: rfl
state_before: X : Compactum
x : X.A
⊢ 𝟙 X.A x = x
Theorem: periodic_expMapCircle
File: Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean

tactic: rw [Int.cast_one, one_mul]
state_before: z : ℝ
⊢ z + 2 * π = z + ↑1 * (2 * π)
Theorem: Finset.erase_inj
File: Mathlib/Data/Finset/Basic.lean

tactic: refine ⟨fun h => eq_of_mem_of_not_mem_erase hx ?_, congr_arg _⟩
state_before: α : Type u_1
β : Type ?u.219474
γ : Type ?u.219477
inst✝ : DecidableEq α
s✝ t u v : Finset α
a b x y : α
s : Finset α
hx : x ∈ s
⊢ erase s x = erase s y ↔ x = y

tactic: rw [← h]
state_before: α : Type u_1
β : Type ?u.219474
γ : Type ?u.219477
inst✝ : DecidableEq α
s✝ t u v : Finset α
a b x y : α
s : Finset α
hx : x ∈ s
h : erase s x = erase s y
⊢ ¬x ∈ erase s y

tactic: simp
state_before: α : Type u_1
β : Type ?u.219474
γ : Type ?u.219477
inst✝ : DecidableEq α
s✝ t u v : Finset α
a b x y : α
s : Finset α
hx : x ∈ s
h : erase s x = erase s y
⊢ ¬x ∈ erase s x
Theorem: Submonoid.coe_iInf
File: Mathlib/GroupTheory/Submonoid/Basic.lean

tactic: simp only [iInf, coe_sInf, Set.biInter_range]
state_before: M : Type u_2
N : Type ?u.15800
A : Type ?u.15803
inst✝¹ : MulOneClass M
s : Set M
inst✝ : AddZeroClass A
t : Set A
S✝ : Submonoid M
ι : Sort u_1
S : ι → Submonoid M
⊢ ↑(⨅ (i : ι), S i) = ⋂ (i : ι), ↑(S i)
Theorem: SimplexCategory.eq_comp_δ_of_not_surjective
File: Mathlib/AlgebraicTopology/SimplexCategory.lean

tactic: cases' not_forall.mp hθ with i hi
state_before: n : ℕ
Δ : SimplexCategory
θ : Δ ⟶ [n + 1]
hθ : ¬Function.Surjective ↑(Hom.toOrderHom θ)
⊢ ∃ i θ', θ = θ' ≫ δ i

tactic: use i
state_before: case intro
n : ℕ
Δ : SimplexCategory
θ : Δ ⟶ [n + 1]
hθ : ¬Function.Surjective ↑(Hom.toOrderHom θ)
i : Fin (len [n + 1] + 1)
hi : ¬∃ a, ↑(Hom.toOrderHom θ) a = i
⊢ ∃ i θ', θ = θ' ≫ δ i

tactic: exact eq_comp_δ_of_not_surjective' θ i (not_exists.mp hi)
state_before: case intro
n : ℕ
Δ : SimplexCategory
θ : Δ ⟶ [n + 1]
hθ : ¬Function.Surjective ↑(Hom.toOrderHom θ)
i : Fin (len [n + 1] + 1)
hi : ¬∃ a, ↑(Hom.toOrderHom θ) a = i
⊢ ∃ θ', θ = θ' ≫ δ i
Theorem: MeasureTheory.withDensity_add_right
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: simpa only [add_comm] using withDensity_add_left hg f
state_before: α : Type u_1
β : Type ?u.1756534
γ : Type ?u.1756537
δ : Type ?u.1756540
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hg : Measurable g
⊢ withDensity μ (f + g) = withDensity μ f + withDensity μ g
Theorem: MeasureTheory.TendstoInMeasure.exists_seq_tendsto_ae'
File: Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean

tactic: obtain ⟨ms, hms⟩ := hfg.exists_seq_tendstoInMeasure_atTop
state_before: α : Type u_2
ι : Type u_1
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : MetricSpace E
f✝ : ℕ → α → E
g✝ : α → E
u : Filter ι
inst✝¹ : NeBot u
inst✝ : IsCountablyGenerated u
f : ι → α → E
g : α → E
hfg : TendstoInMeasure μ f u g
⊢ ∃ ns, ∀ᵐ (x : α) ∂μ, Tendsto (fun i => f (ns i) x) atTop (𝓝 (g x))

tactic: obtain ⟨ns, -, hns⟩ := hms.exists_seq_tendsto_ae
state_before: case intro
α : Type u_2
ι : Type u_1
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : MetricSpace E
f✝ : ℕ → α → E
g✝ : α → E
u : Filter ι
inst✝¹ : NeBot u
inst✝ : IsCountablyGenerated u
f : ι → α → E
g : α → E
hfg : TendstoInMeasure μ f u g
ms : ℕ → ι
hms : TendstoInMeasure μ (fun n => f (ms n)) atTop g
⊢ ∃ ns, ∀ᵐ (x : α) ∂μ, Tendsto (fun i => f (ns i) x) atTop (𝓝 (g x))

tactic: exact ⟨ms ∘ ns, hns⟩
state_before: case intro.intro.intro
α : Type u_2
ι : Type u_1
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : MetricSpace E
f✝ : ℕ → α → E
g✝ : α → E
u : Filter ι
inst✝¹ : NeBot u
inst✝ : IsCountablyGenerated u
f : ι → α → E
g : α → E
hfg : TendstoInMeasure μ f u g
ms : ℕ → ι
hms : TendstoInMeasure μ (fun n => f (ms n)) atTop g
ns : ℕ → ℕ
hns : ∀ᵐ (x : α) ∂μ, Tendsto (fun i => f (ms (ns i)) x) atTop (𝓝 (g x))
⊢ ∃ ns, ∀ᵐ (x : α) ∂μ, Tendsto (fun i => f (ns i) x) atTop (𝓝 (g x))
Theorem: Finset.not_mem_compl
File: Mathlib/Data/Fintype/Basic.lean

tactic: rw [mem_compl, not_not]
state_before: α : Type u_1
β : Type ?u.8229
γ : Type ?u.8232
inst✝¹ : Fintype α
s t : Finset α
inst✝ : DecidableEq α
a : α
⊢ ¬a ∈ sᶜ ↔ a ∈ s
Theorem: Multiset.Ico_filter_lt_of_le_left
File: Mathlib/Data/Multiset/LocallyFinite.lean

tactic: rw [Ico, ← Finset.filter_val, Finset.Ico_filter_lt_of_le_left hca]
state_before: α : Type u_1
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
a b c : α
inst✝ : DecidablePred fun x => x < c
hca : c ≤ a
⊢ filter (fun x => x < c) (Ico a b) = ∅

tactic: rfl
state_before: α : Type u_1
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
a b c : α
inst✝ : DecidablePred fun x => x < c
hca : c ≤ a
⊢ ∅.val = ∅
Theorem: Finset.prod_Ico_id_eq_factorial
File: Mathlib/Algebra/BigOperators/Intervals.lean

tactic: rw [prod_Ico_succ_top <| Nat.succ_le_succ <| Nat.zero_le n, Nat.factorial_succ,
  prod_Ico_id_eq_factorial n, Nat.succ_eq_add_one, mul_comm]
state_before: α : Type u
β : Type v
γ : Type w
s₂ s₁ s : Finset α
a : α
g f : α → β
inst✝ : CommMonoid β
n : ℕ
⊢ ∏ x in Ico 1 (n + 1 + 1), x = (n + 1)!
Theorem: Matrix.nonsing_inv_nonsing_inv
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

tactic: rw [Matrix.one_mul]
state_before: l : Type ?u.248103
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
h : IsUnit (det A)
⊢ A⁻¹⁻¹ = 1 ⬝ A⁻¹⁻¹

tactic: rw [A.mul_nonsing_inv h]
state_before: l : Type ?u.248103
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
h : IsUnit (det A)
⊢ 1 ⬝ A⁻¹⁻¹ = A ⬝ A⁻¹ ⬝ A⁻¹⁻¹

tactic: rw [Matrix.mul_assoc, A⁻¹.mul_nonsing_inv (A.isUnit_nonsing_inv_det h), Matrix.mul_one]
state_before: l : Type ?u.248103
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
h : IsUnit (det A)
⊢ A ⬝ A⁻¹ ⬝ A⁻¹⁻¹ = A
Theorem: isClopen_inter_of_disjoint_cover_clopen
File: Mathlib/Topology/SubsetProperties.lean

tactic: refine' ⟨IsOpen.inter h.1 ha, _⟩
state_before: α : Type u
β : Type v
ι : Type ?u.176436
π : ι → Type ?u.176441
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t Z a b : Set α
h : IsClopen Z
cover : Z ⊆ a ∪ b
ha : IsOpen a
hb : IsOpen b
hab : Disjoint a b
⊢ IsClopen (Z ∩ a)

tactic: have : IsClosed (Z ∩ bᶜ) := IsClosed.inter h.2 (isClosed_compl_iff.2 hb)
state_before: α : Type u
β : Type v
ι : Type ?u.176436
π : ι → Type ?u.176441
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t Z a b : Set α
h : IsClopen Z
cover : Z ⊆ a ∪ b
ha : IsOpen a
hb : IsOpen b
hab : Disjoint a b
⊢ IsClosed (Z ∩ a)

tactic: convert this using 1
state_before: α : Type u
β : Type v
ι : Type ?u.176436
π : ι → Type ?u.176441
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t Z a b : Set α
h : IsClopen Z
cover : Z ⊆ a ∪ b
ha : IsOpen a
hb : IsOpen b
hab : Disjoint a b
this : IsClosed (Z ∩ bᶜ)
⊢ IsClosed (Z ∩ a)

tactic: refine' (inter_subset_inter_right Z hab.subset_compl_right).antisymm _
state_before: case h.e'_3
α : Type u
β : Type v
ι : Type ?u.176436
π : ι → Type ?u.176441
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t Z a b : Set α
h : IsClopen Z
cover : Z ⊆ a ∪ b
ha : IsOpen a
hb : IsOpen b
hab : Disjoint a b
this : IsClosed (Z ∩ bᶜ)
⊢ Z ∩ a = Z ∩ bᶜ

tactic: rintro x ⟨hx₁, hx₂⟩
state_before: case h.e'_3
α : Type u
β : Type v
ι : Type ?u.176436
π : ι → Type ?u.176441
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t Z a b : Set α
h : IsClopen Z
cover : Z ⊆ a ∪ b
ha : IsOpen a
hb : IsOpen b
hab : Disjoint a b
this : IsClosed (Z ∩ bᶜ)
⊢ Z ∩ bᶜ ⊆ Z ∩ a

tactic: exact ⟨hx₁, by simpa [not_mem_of_mem_compl hx₂] using cover hx₁⟩
state_before: case h.e'_3.intro
α : Type u
β : Type v
ι : Type ?u.176436
π : ι → Type ?u.176441
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t Z a b : Set α
h : IsClopen Z
cover : Z ⊆ a ∪ b
ha : IsOpen a
hb : IsOpen b
hab : Disjoint a b
this : IsClosed (Z ∩ bᶜ)
x : α
hx₁ : x ∈ Z
hx₂ : x ∈ bᶜ
⊢ x ∈ Z ∩ a

tactic: simpa [not_mem_of_mem_compl hx₂] using cover hx₁
state_before: α : Type u
β : Type v
ι : Type ?u.176436
π : ι → Type ?u.176441
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t Z a b : Set α
h : IsClopen Z
cover : Z ⊆ a ∪ b
ha : IsOpen a
hb : IsOpen b
hab : Disjoint a b
this : IsClosed (Z ∩ bᶜ)
x : α
hx₁ : x ∈ Z
hx₂ : x ∈ bᶜ
⊢ x ∈ a
Theorem: Asymptotics.IsEquivalent.inv
File: Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean

tactic: rw [isEquivalent_iff_exists_eq_mul] at *
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedField β
t u v w : α → β
l : Filter α
huv : u ~[l] v
⊢ (fun x => (u x)⁻¹) ~[l] fun x => (v x)⁻¹

tactic: rcases huv with ⟨φ, hφ, h⟩
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedField β
t u v w : α → β
l : Filter α
huv : ∃ φ x, u =ᶠ[l] φ * v
⊢ ∃ φ x, (fun x => (u x)⁻¹) =ᶠ[l] φ * fun x => (v x)⁻¹

tactic: rw [← inv_one]
state_before: case intro.intro
α : Type u_1
β : Type u_2
inst✝ : NormedField β
t u v w : α → β
l : Filter α
φ : α → β
hφ : Tendsto φ l (𝓝 1)
h : u =ᶠ[l] φ * v
⊢ ∃ φ x, (fun x => (u x)⁻¹) =ᶠ[l] φ * fun x => (v x)⁻¹

tactic: refine' ⟨fun x ↦ (φ x)⁻¹, Tendsto.inv₀ hφ (by norm_num), _⟩
state_before: case intro.intro
α : Type u_1
β : Type u_2
inst✝ : NormedField β
t u v w : α → β
l : Filter α
φ : α → β
hφ : Tendsto φ l (𝓝 1)
h : u =ᶠ[l] φ * v
⊢ ∃ φ x, (fun x => (u x)⁻¹) =ᶠ[l] φ * fun x => (v x)⁻¹

tactic: convert h.inv
state_before: case intro.intro
α : Type u_1
β : Type u_2
inst✝ : NormedField β
t u v w : α → β
l : Filter α
φ : α → β
hφ : Tendsto φ l (𝓝 1)
h : u =ᶠ[l] φ * v
⊢ (fun x => (u x)⁻¹) =ᶠ[l] (fun x => (φ x)⁻¹) * fun x => (v x)⁻¹

tactic: simp [mul_comm]
state_before: case h.e'_5.h
α : Type u_1
β : Type u_2
inst✝ : NormedField β
t u v w : α → β
l : Filter α
φ : α → β
hφ : Tendsto φ l (𝓝 1)
h : u =ᶠ[l] φ * v
x✝ : α
⊢ ((fun x => (φ x)⁻¹) * fun x => (v x)⁻¹) x✝ = ((φ * v) x✝)⁻¹

tactic: norm_num
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedField β
t u v w : α → β
l : Filter α
φ : α → β
hφ : Tendsto φ l (𝓝 1)
h : u =ᶠ[l] φ * v
⊢ 1 ≠ 0
Theorem: intervalIntegral.integral_mul_const
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simpa only [mul_comm r] using integral_const_mul r f
state_before: ι : Type ?u.13362421
𝕜✝ : Type ?u.13362424
E : Type ?u.13362427
F : Type ?u.13362430
A : Type ?u.13362433
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ g : ℝ → E
μ : MeasureTheory.Measure ℝ
𝕜 : Type u_1
inst✝ : IsROrC 𝕜
r : 𝕜
f : ℝ → 𝕜
⊢ (∫ (x : ℝ) in a..b, f x * r ∂μ) = (∫ (x : ℝ) in a..b, f x ∂μ) * r
Theorem: Ordinal.opow_isLimit_left
File: Mathlib/SetTheory/Ordinal/Exponential.lean

tactic: rcases zero_or_succ_or_limit b with (e | ⟨b, rfl⟩ | l')
state_before: a b : Ordinal
l : IsLimit a
hb : b ≠ 0
⊢ IsLimit (a ^ b)

tactic: exact absurd e hb
state_before: case inl
a b : Ordinal
l : IsLimit a
hb : b ≠ 0
e : b = 0
⊢ IsLimit (a ^ b)

tactic: rw [opow_succ]
state_before: case inr.inl.intro
a : Ordinal
l : IsLimit a
b : Ordinal
hb : succ b ≠ 0
⊢ IsLimit (a ^ succ b)

tactic: exact mul_isLimit (opow_pos _ l.pos) l
state_before: case inr.inl.intro
a : Ordinal
l : IsLimit a
b : Ordinal
hb : succ b ≠ 0
⊢ IsLimit (a ^ b * a)

tactic: exact opow_isLimit l.one_lt l'
state_before: case inr.inr
a b : Ordinal
l : IsLimit a
hb : b ≠ 0
l' : IsLimit b
⊢ IsLimit (a ^ b)
Theorem: Matrix.zero_dotProduct
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp [dotProduct]
state_before: l : Type ?u.131706
m : Type u_1
n : Type ?u.131712
o : Type ?u.131715
m' : o → Type ?u.131720
n' : o → Type ?u.131725
R : Type ?u.131728
S : Type ?u.131731
α : Type v
β : Type w
γ : Type ?u.131738
inst✝² : Fintype m
inst✝¹ : Fintype n
inst✝ : NonUnitalNonAssocSemiring α
u v w : m → α
x y : n → α
⊢ 0 ⬝ᵥ v = 0
Theorem: InnerProductSpace.Core.inner_sub_sub_self
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: simp only [inner_sub_left, inner_sub_right]
state_before: 𝕜 : Type u_1
E : Type ?u.642770
F : Type u_2
inst✝² : IsROrC 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ inner (x - y) (x - y) = inner x x - inner x y - inner y x + inner y y

tactic: ring
state_before: 𝕜 : Type u_1
E : Type ?u.642770
F : Type u_2
inst✝² : IsROrC 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ inner x x - inner y x - (inner x y - inner y y) = inner x x - inner x y - inner y x + inner y y
Theorem: round_sub_int
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [sub_eq_add_neg]
state_before: F : Type ?u.255284
α : Type u_1
β : Type ?u.255290
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
x : α
y : ℤ
⊢ round (x - ↑y) = round x - y

tactic: norm_cast
state_before: F : Type ?u.255284
α : Type u_1
β : Type ?u.255290
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
x : α
y : ℤ
⊢ round (x + -↑y) = round x - y

tactic: rw [round_add_int, sub_eq_add_neg]
state_before: F : Type ?u.255284
α : Type u_1
β : Type ?u.255290
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
x : α
y : ℤ
⊢ round (x + ↑(-y)) = round x - y
Theorem: cmpUsing_eq_gt
File: Mathlib/Init/Data/Ordering/Lemmas.lean

tactic: simp only [cmpUsing, Ordering.ite_eq_gt_distrib, if_false_right_eq_and, and_true,
  if_false_left_eq_and]
state_before: α : Type u
lt : α → α → Prop
inst✝¹ : DecidableRel lt
inst✝ : IsStrictOrder α lt
a b : α
⊢ (cmpUsing lt a b = Ordering.gt) = lt b a

tactic: apply propext
state_before: α : Type u
lt : α → α → Prop
inst✝¹ : DecidableRel lt
inst✝ : IsStrictOrder α lt
a b : α
⊢ (¬lt a b ∧ lt b a) = lt b a

tactic: apply Iff.intro
state_before: case a
α : Type u
lt : α → α → Prop
inst✝¹ : DecidableRel lt
inst✝ : IsStrictOrder α lt
a b : α
⊢ ¬lt a b ∧ lt b a ↔ lt b a

tactic: exact fun h => h.2
state_before: case a.mp
α : Type u
lt : α → α → Prop
inst✝¹ : DecidableRel lt
inst✝ : IsStrictOrder α lt
a b : α
⊢ ¬lt a b ∧ lt b a → lt b a

tactic: intro hba
state_before: case a.mpr
α : Type u
lt : α → α → Prop
inst✝¹ : DecidableRel lt
inst✝ : IsStrictOrder α lt
a b : α
⊢ lt b a → ¬lt a b ∧ lt b a

tactic: constructor
state_before: case a.mpr
α : Type u
lt : α → α → Prop
inst✝¹ : DecidableRel lt
inst✝ : IsStrictOrder α lt
a b : α
hba : lt b a
⊢ ¬lt a b ∧ lt b a

tactic: intro hab
state_before: case a.mpr.left
α : Type u
lt : α → α → Prop
inst✝¹ : DecidableRel lt
inst✝ : IsStrictOrder α lt
a b : α
hba : lt b a
⊢ ¬lt a b

tactic: exact absurd (_root_.trans hab hba) (irrefl a)
state_before: case a.mpr.left
α : Type u
lt : α → α → Prop
inst✝¹ : DecidableRel lt
inst✝ : IsStrictOrder α lt
a b : α
hba : lt b a
hab : lt a b
⊢ False

tactic: assumption
state_before: case a.mpr.right
α : Type u
lt : α → α → Prop
inst✝¹ : DecidableRel lt
inst✝ : IsStrictOrder α lt
a b : α
hba : lt b a
⊢ lt b a