tasksource/leandojo huggingface dataset:
Theorem: BoxIntegral.Prepartition.mem_restrict
File: Mathlib/Analysis/BoxIntegral/Partition/Basic.lean

tactic: simp [restrict, eq_comm]
state_before: ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
⊢ J₁ ∈ restrict π J ↔ ∃ J', J' ∈ π ∧ ↑J₁ = ↑J ⊓ ↑J'
Theorem: PosNum.pred'_succ'
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [pred'_to_nat, succ'_to_nat, Nat.add_one, Nat.pred_succ]
state_before: α : Type ?u.327018
n : Num
⊢ ↑(pred' (succ' n)) = ↑n
Theorem: Set.preimage_mul_const_uIcc
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [← Icc_min_max, h, h.le, min_div_div_right_of_nonpos, max_div_div_right_of_nonpos]
state_before: α : Type u_1
inst✝ : LinearOrderedField α
a : α
ha : a ≠ 0
b c : α
h : a < 0
⊢ (fun x => x * a) ⁻¹' [[b, c]] = [[b / a, c / a]]

tactic: simp [← Icc_min_max, ha, ha.le, min_div_div_right, max_div_div_right]
state_before: α : Type u_1
inst✝ : LinearOrderedField α
a : α
ha✝ : a ≠ 0
b c : α
ha : 0 < a
⊢ (fun x => x * a) ⁻¹' [[b, c]] = [[b / a, c / a]]
Theorem: Multiset.mem_bind
File: Mathlib/Data/Multiset/Bind.lean

tactic: simp [bind]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.20373
δ : Type ?u.20376
a : α
s✝ t : Multiset α
f✝ g : α → Multiset β
b : β
s : Multiset α
f : α → Multiset β
⊢ b ∈ bind s f ↔ ∃ a, a ∈ s ∧ b ∈ f a
Theorem: Finset.coe_image
File: Mathlib/Data/Finset/Image.lean

tactic: simp only [mem_coe, mem_image, Set.mem_image, implies_true]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.74073
inst✝ : DecidableEq β
f✝ g : α → β
s : Finset α
t : Finset β
a : α
b c : β
f : α → β
⊢ ∀ (x : β), x ∈ ↑(image f s) ↔ x ∈ f '' ↑s
Theorem: ContinuousMultilinearMap.uncurry0_curry0
File: Mathlib/Analysis/NormedSpace/Multilinear.lean

tactic: simp
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin (Nat.succ n) → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin (Nat.succ n)) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin (Nat.succ n)) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : ContinuousMultilinearMap 𝕜 (fun i => G) G'
⊢ curry0 𝕜 G (uncurry0 f) = f
Theorem: OmegaCompletePartialOrder.ContinuousHom.ωSup_apply_ωSup
File: Mathlib/Order/OmegaCompletePartialOrder.lean

tactic: simp [Prod.apply_apply, Prod.ωSup_zip]
state_before: α : Type u
α' : Type ?u.73638
β : Type v
β' : Type ?u.73643
γ : Type ?u.73646
φ : Type ?u.73649
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
c₀ : Chain (α →𝒄 β)
c₁ : Chain α
⊢ ↑(ωSup c₀).toOrderHom (ωSup c₁) = ↑Prod.apply.toOrderHom (ωSup (Chain.zip c₀ c₁))
Theorem: SimpleGraph.not_cliqueFree_card_of_top_embedding
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

tactic: rw [not_cliqueFree_iff]
state_before: α : Type u_1
G H : SimpleGraph α
m n : ℕ
s : Finset α
inst✝ : Fintype α
f : ⊤ ↪g G
⊢ ¬CliqueFree G (Fintype.card α)

tactic: exact ⟨(Iso.completeGraph (Fintype.equivFin α)).symm.toEmbedding.trans f⟩
state_before: α : Type u_1
G H : SimpleGraph α
m n : ℕ
s : Finset α
inst✝ : Fintype α
f : ⊤ ↪g G
⊢ Nonempty (⊤ ↪g G)
Theorem: gramSchmidtOrthonormalBasis_inv_triangular
File: Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean

tactic: by_cases hi : gramSchmidtNormed 𝕜 f j = 0
state_before: 𝕜 : Type u_2
E : Type u_3
inst✝⁷ : IsROrC 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
ι : Type u_1
inst✝⁴ : LinearOrder ι
inst✝³ : LocallyFiniteOrderBot ι
inst✝² : IsWellOrder ι fun x x_1 => x < x_1
inst✝¹ : Fintype ι
inst✝ : FiniteDimensional 𝕜 E
h : finrank 𝕜 E = Fintype.card ι
f : ι → E
i j : ι
hij : i < j
⊢ inner (↑(gramSchmidtOrthonormalBasis h f) j) (f i) = 0

tactic: rw [inner_gramSchmidtOrthonormalBasis_eq_zero h hi]
state_before: case pos
𝕜 : Type u_2
E : Type u_3
inst✝⁷ : IsROrC 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
ι : Type u_1
inst✝⁴ : LinearOrder ι
inst✝³ : LocallyFiniteOrderBot ι
inst✝² : IsWellOrder ι fun x x_1 => x < x_1
inst✝¹ : Fintype ι
inst✝ : FiniteDimensional 𝕜 E
h : finrank 𝕜 E = Fintype.card ι
f : ι → E
i j : ι
hij : i < j
hi : gramSchmidtNormed 𝕜 f j = 0
⊢ inner (↑(gramSchmidtOrthonormalBasis h f) j) (f i) = 0

tactic: simp [gramSchmidtOrthonormalBasis_apply h hi, gramSchmidtNormed, inner_smul_left,
  gramSchmidt_inv_triangular 𝕜 f hij]
state_before: case neg
𝕜 : Type u_2
E : Type u_3
inst✝⁷ : IsROrC 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
ι : Type u_1
inst✝⁴ : LinearOrder ι
inst✝³ : LocallyFiniteOrderBot ι
inst✝² : IsWellOrder ι fun x x_1 => x < x_1
inst✝¹ : Fintype ι
inst✝ : FiniteDimensional 𝕜 E
h : finrank 𝕜 E = Fintype.card ι
f : ι → E
i j : ι
hij : i < j
hi : ¬gramSchmidtNormed 𝕜 f j = 0
⊢ inner (↑(gramSchmidtOrthonormalBasis h f) j) (f i) = 0
Theorem: FormalMultilinearSeries.le_radius_of_bound_nnreal
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: exact_mod_cast h n
state_before: 𝕜 : Type u_3
E : Type u_1
F : Type u_2
G : Type ?u.62997
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
r✝ C r : ℝ≥0
h : ∀ (n : ℕ), ‖p n‖₊ * r ^ n ≤ C
n : ℕ
⊢ ‖p n‖ * ↑r ^ n ≤ ↑C
Theorem: Set.IccExtend_range
File: Mathlib/Data/Set/Intervals/ProjIcc.lean

tactic: simp only [IccExtend, range_comp f, range_projIcc, image_univ]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x : α
f : ↑(Icc a b) → β
⊢ range (IccExtend h f) = range f
Theorem: symmDiff_eq_sup
File: Mathlib/Order/SymmDiff.lean

tactic: refine' ⟨fun h => _, Disjoint.symmDiff_eq_sup⟩
state_before: ι : Type ?u.66051
α : Type u_1
β : Type ?u.66057
π : ι → Type ?u.66062
inst✝ : GeneralizedBooleanAlgebra α
a b c d : α
⊢ a ∆ b = a ⊔ b ↔ Disjoint a b

tactic: rw [symmDiff_eq_sup_sdiff_inf, sdiff_eq_self_iff_disjoint] at h
state_before: ι : Type ?u.66051
α : Type u_1
β : Type ?u.66057
π : ι → Type ?u.66062
inst✝ : GeneralizedBooleanAlgebra α
a b c d : α
h : a ∆ b = a ⊔ b
⊢ Disjoint a b

tactic: exact h.of_disjoint_inf_of_le le_sup_left
state_before: ι : Type ?u.66051
α : Type u_1
β : Type ?u.66057
π : ι → Type ?u.66062
inst✝ : GeneralizedBooleanAlgebra α
a b c d : α
h : Disjoint (a ⊓ b) (a ⊔ b)
⊢ Disjoint a b
Theorem: TensorProduct.map_id
File: Mathlib/LinearAlgebra/TensorProduct.lean

tactic: ext
state_before: R : Type u_3
inst✝¹⁸ : CommSemiring R
R' : Type ?u.944131
inst✝¹⁷ : Monoid R'
R'' : Type ?u.944137
inst✝¹⁶ : Semiring R''
M : Type u_1
N : Type u_2
P : Type ?u.944149
Q : Type ?u.944152
S : Type ?u.944155
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
P' : Type ?u.945282
Q' : Type ?u.945285
inst✝³ : AddCommMonoid P'
inst✝² : Module R P'
inst✝¹ : AddCommMonoid Q'
inst✝ : Module R Q'
⊢ map LinearMap.id LinearMap.id = LinearMap.id

tactic: simp only [mk_apply, id_coe, compr₂_apply, id.def, map_tmul]
state_before: case H.h.h
R : Type u_3
inst✝¹⁸ : CommSemiring R
R' : Type ?u.944131
inst✝¹⁷ : Monoid R'
R'' : Type ?u.944137
inst✝¹⁶ : Semiring R''
M : Type u_1
N : Type u_2
P : Type ?u.944149
Q : Type ?u.944152
S : Type ?u.944155
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
P' : Type ?u.945282
Q' : Type ?u.945285
inst✝³ : AddCommMonoid P'
inst✝² : Module R P'
inst✝¹ : AddCommMonoid Q'
inst✝ : Module R Q'
x✝¹ : M
x✝ : N
⊢ ↑(↑(compr₂ (mk R M N) (map LinearMap.id LinearMap.id)) x✝¹) x✝ = ↑(↑(compr₂ (mk R M N) LinearMap.id) x✝¹) x✝
Theorem: le_inv
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [← inv_le_inv (inv_pos.2 hb) ha, inv_inv]
state_before: ι : Type ?u.47777
α : Type u_1
β : Type ?u.47783
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : 0 < a
hb : 0 < b
⊢ a ≤ b⁻¹ ↔ b ≤ a⁻¹
Theorem: Submodule.Quotient.mk_surjective
File: Mathlib/LinearAlgebra/Quotient.lean

tactic: rintro ⟨x⟩
state_before: R : Type u_2
M : Type u_1
r : R
x y : M
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
⊢ Function.Surjective mk

tactic: exact ⟨x, rfl⟩
state_before: case mk
R : Type u_2
M : Type u_1
r : R
x✝ y : M
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
b✝ : M ⧸ p
x : M
⊢ ∃ a, mk a = Quot.mk Setoid.r x
Theorem: Complex.isBigO_cpow_rpow
File: Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean

tactic: simp only [ofReal_one, div_one]
state_before: α : Type u_1
l : Filter α
f g : α → ℂ
hl : IsBoundedUnder (fun x x_1 => x ≤ x_1) l fun x => Abs.abs (g x).im
⊢ (let_fun this := fun x => ↑abs (f x) ^ (g x).re / 1;
    this) =ᶠ[l]
    let_fun this := fun x => ↑abs (f x) ^ (g x).re;
    this

tactic: rfl
state_before: α : Type u_1
l : Filter α
f g : α → ℂ
hl : IsBoundedUnder (fun x x_1 => x ≤ x_1) l fun x => Abs.abs (g x).im
⊢ (fun x => ↑abs (f x) ^ (g x).re) =ᶠ[l] fun x => ↑abs (f x) ^ (g x).re
Theorem: Real.Ioo_eq_ball
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: rw [Real.ball_eq_Ioo, ← sub_div, add_comm, ← sub_add, add_sub_cancel', add_self_div_two,
  ← add_div, add_assoc, add_sub_cancel'_right, add_self_div_two]
state_before: α : Type u
β : Type v
X : Type ?u.200414
ι : Type ?u.200417
inst✝ : PseudoMetricSpace α
x y : ℝ
⊢ Ioo x y = ball ((x + y) / 2) ((y - x) / 2)
Theorem: EMetric.mem_closedBall_comm
File: Mathlib/Topology/MetricSpace/EMetricSpace.lean

tactic: rw [mem_closedBall', mem_closedBall]
state_before: α : Type u
β : Type v
X : Type ?u.189364
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t : Set α
⊢ x ∈ closedBall y ε ↔ y ∈ closedBall x ε
Theorem: LinearMap.range_lt_top_of_det_eq_zero
File: Mathlib/LinearAlgebra/Determinant.lean

tactic: have : FiniteDimensional 𝕜 M := by simp [f.finiteDimensional_of_det_ne_one, hf]
state_before: R : Type ?u.1165630
inst✝¹¹ : CommRing R
M : Type u_2
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : Module R M
M' : Type ?u.1166221
inst✝⁸ : AddCommGroup M'
inst✝⁷ : Module R M'
ι : Type ?u.1166763
inst✝⁶ : DecidableEq ι
inst✝⁵ : Fintype ι
e : Basis ι R M
A : Type ?u.1167241
inst✝⁴ : CommRing A
inst✝³ : Module A M
κ : Type ?u.1167739
inst✝² : Fintype κ
𝕜 : Type u_1
inst✝¹ : Field 𝕜
inst✝ : Module 𝕜 M
f : M →ₗ[𝕜] M
hf : ↑LinearMap.det f = 0
⊢ range f < ⊤

tactic: contrapose hf
state_before: R : Type ?u.1165630
inst✝¹¹ : CommRing R
M : Type u_2
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : Module R M
M' : Type ?u.1166221
inst✝⁸ : AddCommGroup M'
inst✝⁷ : Module R M'
ι : Type ?u.1166763
inst✝⁶ : DecidableEq ι
inst✝⁵ : Fintype ι
e : Basis ι R M
A : Type ?u.1167241
inst✝⁴ : CommRing A
inst✝³ : Module A M
κ : Type ?u.1167739
inst✝² : Fintype κ
𝕜 : Type u_1
inst✝¹ : Field 𝕜
inst✝ : Module 𝕜 M
f : M →ₗ[𝕜] M
hf : ↑LinearMap.det f = 0
this : FiniteDimensional 𝕜 M
⊢ range f < ⊤

tactic: simp only [lt_top_iff_ne_top, Classical.not_not, ← isUnit_iff_range_eq_top] at hf
state_before: R : Type ?u.1165630
inst✝¹¹ : CommRing R
M : Type u_2
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : Module R M
M' : Type ?u.1166221
inst✝⁸ : AddCommGroup M'
inst✝⁷ : Module R M'
ι : Type ?u.1166763
inst✝⁶ : DecidableEq ι
inst✝⁵ : Fintype ι
e : Basis ι R M
A : Type ?u.1167241
inst✝⁴ : CommRing A
inst✝³ : Module A M
κ : Type ?u.1167739
inst✝² : Fintype κ
𝕜 : Type u_1
inst✝¹ : Field 𝕜
inst✝ : Module 𝕜 M
f : M →ₗ[𝕜] M
this : FiniteDimensional 𝕜 M
hf : ¬range f < ⊤
⊢ ¬↑LinearMap.det f = 0

tactic: exact isUnit_iff_ne_zero.1 (f.isUnit_det hf)
state_before: R : Type ?u.1165630
inst✝¹¹ : CommRing R
M : Type u_2
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : Module R M
M' : Type ?u.1166221
inst✝⁸ : AddCommGroup M'
inst✝⁷ : Module R M'
ι : Type ?u.1166763
inst✝⁶ : DecidableEq ι
inst✝⁵ : Fintype ι
e : Basis ι R M
A : Type ?u.1167241
inst✝⁴ : CommRing A
inst✝³ : Module A M
κ : Type ?u.1167739
inst✝² : Fintype κ
𝕜 : Type u_1
inst✝¹ : Field 𝕜
inst✝ : Module 𝕜 M
f : M →ₗ[𝕜] M
this : FiniteDimensional 𝕜 M
hf : IsUnit f
⊢ ¬↑LinearMap.det f = 0

tactic: simp [f.finiteDimensional_of_det_ne_one, hf]
state_before: R : Type ?u.1165630
inst✝¹¹ : CommRing R
M : Type u_2
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : Module R M
M' : Type ?u.1166221
inst✝⁸ : AddCommGroup M'
inst✝⁷ : Module R M'
ι : Type ?u.1166763
inst✝⁶ : DecidableEq ι
inst✝⁵ : Fintype ι
e : Basis ι R M
A : Type ?u.1167241
inst✝⁴ : CommRing A
inst✝³ : Module A M
κ : Type ?u.1167739
inst✝² : Fintype κ
𝕜 : Type u_1
inst✝¹ : Field 𝕜
inst✝ : Module 𝕜 M
f : M →ₗ[𝕜] M
hf : ↑LinearMap.det f = 0
⊢ FiniteDimensional 𝕜 M
Theorem: Equiv.Perm.disjoint_inv_left_iff
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: refine' ⟨fun h => _, Disjoint.inv_left⟩
state_before: α : Type u_1
f g h : Perm α
⊢ Disjoint f⁻¹ g ↔ Disjoint f g

tactic: convert h.inv_left
state_before: α : Type u_1
f g h✝ : Perm α
h : Disjoint f⁻¹ g
⊢ Disjoint f g
Theorem: Metric.infDist_lt_iff
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: simp_rw [infDist, ← ENNReal.lt_ofReal_iff_toReal_lt (infEdist_ne_top hs), infEdist_lt_iff,
  ENNReal.lt_ofReal_iff_toReal_lt (edist_ne_top _ _), ← dist_edist]
state_before: ι : Sort ?u.60248
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
r : ℝ
hs : Set.Nonempty s
⊢ infDist x s < r ↔ ∃ y, y ∈ s ∧ dist x y < r
Theorem: intervalIntegral.integral_undef
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rw [intervalIntegrable_iff] at h
state_before: ι : Type ?u.10878693
𝕜 : Type ?u.10878696
E : Type u_1
F : Type ?u.10878702
A : Type ?u.10878705
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b : ℝ
f g : ℝ → E
μ : MeasureTheory.Measure ℝ
h : ¬IntervalIntegrable f μ a b
⊢ (∫ (x : ℝ) in a..b, f x ∂μ) = 0

tactic: rw [intervalIntegral_eq_integral_uIoc, integral_undef h, smul_zero]
state_before: ι : Type ?u.10878693
𝕜 : Type ?u.10878696
E : Type u_1
F : Type ?u.10878702
A : Type ?u.10878705
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b : ℝ
f g : ℝ → E
μ : MeasureTheory.Measure ℝ
h : ¬IntegrableOn f (Ι a b)
⊢ (∫ (x : ℝ) in a..b, f x ∂μ) = 0
Theorem: BoxIntegral.IntegrationParams.hasBasis_toFilteriUnion
File: Mathlib/Analysis/BoxIntegral/Partition/Filter.lean

tactic: have := fun c => l.hasBasis_toFilterDistortioniUnion I c π₀
state_before: ι : Type u_1
inst✝ : Fintype ι
I✝ J : Box ι
c c₁ c₂ : ℝ≥0
r r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π π₁ π₂ : TaggedPrepartition I✝
l✝ l₁ l₂ l : IntegrationParams
I : Box ι
π₀ : Prepartition I
⊢ HasBasis (toFilteriUnion l I π₀) (fun r => ∀ (c : ℝ≥0), RCond l (r c)) fun r =>
    {π | ∃ c, MemBaseSet l I c (r c) π ∧ TaggedPrepartition.iUnion π = Prepartition.iUnion π₀}

tactic: simpa only [setOf_and, setOf_exists] using hasBasis_iSup this
state_before: ι : Type u_1
inst✝ : Fintype ι
I✝ J : Box ι
c c₁ c₂ : ℝ≥0
r r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π π₁ π₂ : TaggedPrepartition I✝
l✝ l₁ l₂ l : IntegrationParams
I : Box ι
π₀ : Prepartition I
this :
  ∀ (c : ℝ≥0),
    HasBasis (toFilterDistortioniUnion l I c π₀) (RCond l) fun r =>
      {π | MemBaseSet l I c r π ∧ TaggedPrepartition.iUnion π = Prepartition.iUnion π₀}
⊢ HasBasis (toFilteriUnion l I π₀) (fun r => ∀ (c : ℝ≥0), RCond l (r c)) fun r =>
    {π | ∃ c, MemBaseSet l I c (r c) π ∧ TaggedPrepartition.iUnion π = Prepartition.iUnion π₀}
Theorem: disjoint_compl_compl_right_iff
File: Mathlib/Order/Heyting/Basic.lean

tactic: simp_rw [← le_compl_iff_disjoint_right, compl_compl_compl]
state_before: ι : Type ?u.163829
α : Type u_1
β : Type ?u.163835
inst✝ : HeytingAlgebra α
a b c : α
⊢ Disjoint a (bᶜᶜ) ↔ Disjoint a b
Theorem: CategoryTheory.Subobject.ofMkLE_comp_ofLEMk
File: Mathlib/CategoryTheory/Subobject/Basic.lean

tactic: simp only [ofMkLE, ofLEMk, ofLE, ofMkLEMk, ← Functor.map_comp_assoc underlying, assoc]
state_before: C : Type u₁
inst✝³ : Category C
X✝ Y Z : C
D : Type u₂
inst✝² : Category D
B A₁ A₂ : C
f : A₁ ⟶ B
inst✝¹ : Mono f
X : Subobject B
g : A₂ ⟶ B
inst✝ : Mono g
h₁ : mk f ≤ X
h₂ : X ≤ mk g
⊢ ofMkLE f X h₁ ≫ ofLEMk X g h₂ = ofMkLEMk f g (_ : mk f ≤ mk g)

tactic: congr 1
state_before: C : Type u₁
inst✝³ : Category C
X✝ Y Z : C
D : Type u₂
inst✝² : Category D
B A₁ A₂ : C
f : A₁ ⟶ B
inst✝¹ : Mono f
X : Subobject B
g : A₂ ⟶ B
inst✝ : Mono g
h₁ : mk f ≤ X
h₂ : X ≤ mk g
⊢ (underlyingIso f).inv ≫ underlying.map (LE.le.hom h₁ ≫ LE.le.hom h₂) ≫ (underlyingIso g).hom =
    (underlyingIso f).inv ≫ underlying.map (LE.le.hom (_ : mk f ≤ mk g)) ≫ (underlyingIso g).hom
Theorem: FirstOrder.Language.Term.realize_subst
File: Mathlib/ModelTheory/Semantics.lean

tactic: induction' t with _ _ _ _ ih
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.7876
P : Type ?u.7879
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
t : Term L α
tf : α → Term L β
v : β → M
⊢ realize v (subst t tf) = realize (fun a => realize v (tf a)) t

tactic: rfl
state_before: case var
L : Language
L' : Language
M : Type w
N : Type ?u.7876
P : Type ?u.7879
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
tf : α → Term L β
v : β → M
_a✝ : α
⊢ realize v (subst (var _a✝) tf) = realize (fun a => realize v (tf a)) (var _a✝)

tactic: simp [ih]
state_before: case func
L : Language
L' : Language
M : Type w
N : Type ?u.7876
P : Type ?u.7879
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
tf : α → Term L β
v : β → M
l✝ : ℕ
_f✝ : Functions L l✝
_ts✝ : Fin l✝ → Term L α
ih : ∀ (a : Fin l✝), realize v (subst (_ts✝ a) tf) = realize (fun a => realize v (tf a)) (_ts✝ a)
⊢ realize v (subst (func _f✝ _ts✝) tf) = realize (fun a => realize v (tf a)) (func _f✝ _ts✝)
Theorem: Metric.closure_subset_cthickening
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: rw [← cthickening_of_nonpos (min_le_right δ 0)]
state_before: ι : Sort ?u.112257
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s t : Set α
x : α
δ : ℝ
E : Set α
⊢ closure E ⊆ cthickening δ E

tactic: exact cthickening_mono (min_le_left δ 0) E
state_before: ι : Sort ?u.112257
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s t : Set α
x : α
δ : ℝ
E : Set α
⊢ cthickening (min δ 0) E ⊆ cthickening δ E
Theorem: AddMonoidHom.eq_int_castAddHom
File: Mathlib/Data/Int/Cast/Lemmas.lean

tactic: simp [h1]
state_before: F : Type ?u.40880
ι : Type ?u.40883
α : Type ?u.40886
β : Type ?u.40889
A : Type u_1
inst✝ : AddGroupWithOne A
f : ℤ →+ A
h1 : ↑f 1 = 1
⊢ ↑f 1 = ↑(castAddHom A) 1
Theorem: MeasureTheory.IsFundamentalDomain.measure_eq_tsum_of_ac
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: have H : ν.restrict t ≪ μ := Measure.restrict_le_self.absolutelyContinuous.trans hν
state_before: G : Type u_1
H : Type ?u.223644
α : Type u_2
β : Type ?u.223650
E : Type ?u.223653
inst✝¹⁰ : Group G
inst✝⁹ : Group H
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
h : IsFundamentalDomain G s
hν : ν ≪ μ
t : Set α
⊢ ↑↑ν t = ∑' (g : G), ↑↑ν (t ∩ g • s)

tactic: simpa only [set_lintegral_one, Pi.one_def,
  Measure.restrict_apply₀ ((h.nullMeasurableSet_smul _).mono_ac H), inter_comm] using
  h.lintegral_eq_tsum_of_ac H 1
state_before: G : Type u_1
H✝ : Type ?u.223644
α : Type u_2
β : Type ?u.223650
E : Type ?u.223653
inst✝¹⁰ : Group G
inst✝⁹ : Group H✝
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H✝ β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
h : IsFundamentalDomain G s
hν : ν ≪ μ
t : Set α
H : Measure.restrict ν t ≪ μ
⊢ ↑↑ν t = ∑' (g : G), ↑↑ν (t ∩ g • s)
Theorem: Nat.or_exists_succ
File: Mathlib/Data/Nat/Basic.lean

tactic: rintro ⟨_ | n, hn⟩
state_before: m n k : ℕ
p : ℕ → Prop
⊢ (∃ n, p n) → p 0 ∨ ∃ n, p (n + 1)

tactic: exacts [Or.inl hn, Or.inr ⟨n, hn⟩]
state_before: case intro.zero
m n k : ℕ
p : ℕ → Prop
hn : p zero
⊢ p 0 ∨ ∃ n, p (n + 1)

case intro.succ
m n✝ k : ℕ
p : ℕ → Prop
n : ℕ
hn : p (succ n)
⊢ p 0 ∨ ∃ n, p (n + 1)
Theorem: Int.bodd_subNatNat
File: Mathlib/Data/Int/Bitwise.lean

tactic: apply subNatNat_elim m n fun m n i => bodd i = xor m.bodd n.bodd <;>
intros i j <;>
simp only [Int.bodd, Int.bodd_coe, Nat.bodd_add] <;>
cases Nat.bodd i <;> simp
state_before: m n : ℕ
⊢ bodd (subNatNat m n) = xor (Nat.bodd m) (Nat.bodd n)
Theorem: List.takeWhile_append_dropWhile
File: Std/Data/List/Lemmas.lean

tactic: simp [takeWhile, dropWhile]
state_before: α : Type u_1
p : α → Bool
x : α
xs : List α
⊢ takeWhile p (x :: xs) ++ dropWhile p (x :: xs) = x :: xs

tactic: cases p x <;> simp [takeWhile_append_dropWhile p xs]
state_before: α : Type u_1
p : α → Bool
x : α
xs : List α
⊢ ((match p x with
      | true => x :: takeWhile p xs
      | false => []) ++
      match p x with
      | true => dropWhile p xs
      | false => x :: xs) =
    x :: xs
Theorem: Set.finite_prod
File: Mathlib/Data/Set/Finite.lean

tactic: simp only [← not_infinite, Set.infinite_prod, not_or, not_and_or, not_nonempty_iff_eq_empty]
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
t : Set β
⊢ Set.Finite (s ×ˢ t) ↔ (Set.Finite s ∨ t = ∅) ∧ (Set.Finite t ∨ s = ∅)
Theorem: InnerProductGeometry.tan_angle_sub_mul_norm_of_inner_eq_zero
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean

tactic: rw [← neg_eq_zero, ← inner_neg_right] at h
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : inner x y = 0
h0 : x ≠ 0 ∨ y = 0
⊢ Real.tan (angle x (x - y)) * ‖x‖ = ‖y‖

tactic: rw [← neg_eq_zero] at h0
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : inner x (-y) = 0
h0 : x ≠ 0 ∨ y = 0
⊢ Real.tan (angle x (x - y)) * ‖x‖ = ‖y‖

tactic: rw [sub_eq_add_neg, tan_angle_add_mul_norm_of_inner_eq_zero h h0, norm_neg]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : inner x (-y) = 0
h0 : x ≠ 0 ∨ -y = 0
⊢ Real.tan (angle x (x - y)) * ‖x‖ = ‖y‖
Theorem: nhdsSet_singleton
File: Mathlib/Topology/NhdsSet.lean

tactic: ext
state_before: α : Type u_1
β : Type ?u.11780
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t s₁ s₂ t₁ t₂ : Set α
x : α
⊢ 𝓝ˢ {x} = 𝓝 x

tactic: rw [← subset_interior_iff_mem_nhdsSet, ← mem_interior_iff_mem_nhds, singleton_subset_iff]
state_before: case a
α : Type u_1
β : Type ?u.11780
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t s₁ s₂ t₁ t₂ : Set α
x : α
s✝ : Set α
⊢ s✝ ∈ 𝓝ˢ {x} ↔ s✝ ∈ 𝓝 x