tasksource/leandojo huggingface dataset:
Theorem: Fin.consCases_cons
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: rw [consCases, cast_eq]
state_before: m n : ℕ
α : Fin (n + 1) → Type u
x✝ : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α (succ i)
i : Fin n
y : α (succ i)
z : α 0
P : ((i : Fin (Nat.succ n)) → α i) → Sort v
h : (x₀ : α 0) → (x : (i : Fin n) → α (succ i)) → P (cons x₀ x)
x₀ : α 0
x : (i : Fin n) → α (succ i)
⊢ consCases h (cons x₀ x) = h x₀ x

tactic: congr
state_before: m n : ℕ
α : Fin (n + 1) → Type u
x✝ : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α (succ i)
i : Fin n
y : α (succ i)
z : α 0
P : ((i : Fin (Nat.succ n)) → α i) → Sort v
h : (x₀ : α 0) → (x : (i : Fin n) → α (succ i)) → P (cons x₀ x)
x₀ : α 0
x : (i : Fin n) → α (succ i)
⊢ h (cons x₀ x 0) (tail (cons x₀ x)) = h x₀ x
Theorem: Real.sq_lt
File: Mathlib/Data/Real/Sqrt.lean

tactic: rw [← abs_lt, ← sq_abs, lt_sqrt (abs_nonneg _)]
state_before: x y : ℝ
⊢ x ^ 2 < y ↔ -sqrt y < x ∧ x < sqrt y
Theorem: VitaliFamily.frequently_filterAt_iff
File: Mathlib/MeasureTheory/Covering/VitaliFamily.lean

tactic: simp only [Filter.Frequently, eventually_filterAt_iff, not_exists, exists_prop, not_and,
  Classical.not_not, not_forall]
state_before: α : Type u_1
inst✝ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
x : α
P : Set α → Prop
⊢ (∃ᶠ (a : Set α) in filterAt v x, P a) ↔ ∀ (ε : ℝ), ε > 0 → ∃ a, a ∈ setsAt v x ∧ a ⊆ closedBall x ε ∧ P a
Theorem: Mathlib.Tactic.Ring.cast_neg
File: Mathlib/Tactic/Ring/Basic.lean

tactic: simp [e]
state_before: u : Lean.Level
R✝ : Type ?u.333378
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
n : ℕ
R : Type u_1
inst✝ : Ring R
a : R
e : a = ↑(Int.negOfNat n)
⊢ a = Int.rawCast (Int.negOfNat n) + 0
Theorem: Finset.sdiff_insert
File: Mathlib/Data/Finset/Basic.lean

tactic: simp_rw [← sdiff_singleton_eq_erase, insert_eq, sdiff_sdiff_left', sdiff_union_distrib,
  inter_comm]
state_before: α : Type u_1
β : Type ?u.268404
γ : Type ?u.268407
inst✝ : DecidableEq α
s✝ t✝ u v : Finset α
a b : α
s t : Finset α
x : α
⊢ s \ insert x t = erase (s \ t) x
Theorem: contDiffWithinAt_euclidean
File: Mathlib/Analysis/InnerProductSpace/Calculus.lean

tactic: rw [← (EuclideanSpace.equiv ι 𝕜).comp_contDiffWithinAt_iff, contDiffWithinAt_pi]
state_before: 𝕜 : Type u_1
ι : Type u_3
H : Type u_2
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
n : ℕ∞
⊢ ContDiffWithinAt 𝕜 n f t y ↔ ∀ (i : ι), ContDiffWithinAt 𝕜 n (fun x => f x i) t y

tactic: rfl
state_before: 𝕜 : Type u_1
ι : Type u_3
H : Type u_2
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
n : ℕ∞
⊢ (∀ (i : ι), ContDiffWithinAt 𝕜 n (fun x => (↑(EuclideanSpace.equiv ι 𝕜) ∘ f) x i) t y) ↔
    ∀ (i : ι), ContDiffWithinAt 𝕜 n (fun x => f x i) t y
Theorem: Int.ceil_nonneg
File: Mathlib/Algebra/Order/Floor.lean

tactic: exact_mod_cast ha.trans (le_ceil a)
state_before: F : Type ?u.221444
α : Type u_1
β : Type ?u.221450
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
ha : 0 ≤ a
⊢ 0 ≤ ⌈a⌉
Theorem: Polynomial.roots_monomial
File: Mathlib/Data/Polynomial/RingDivision.lean

tactic: rw [← C_mul_X_pow_eq_monomial, roots_C_mul_X_pow ha]
state_before: R : Type u
S : Type v
T : Type w
a b : R
n✝ : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q : R[X]
ha : a ≠ 0
n : ℕ
⊢ roots (↑(monomial n) a) = n • {0}
Theorem: CategoryTheory.Limits.kernel.lift_zero
File: Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean

tactic: apply equalizer.hom_ext
state_before: C : Type u
inst✝² : Category C
inst✝¹ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
inst✝ : HasKernel f
W : C
h : 0 ≫ f = 0
⊢ lift f 0 h = 0

tactic: simp
state_before: case h
C : Type u
inst✝² : Category C
inst✝¹ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
inst✝ : HasKernel f
W : C
h : 0 ≫ f = 0
⊢ lift f 0 h ≫ equalizer.ι f 0 = 0 ≫ equalizer.ι f 0
Theorem: Pmf.support_bind
File: Mathlib/Probability/ProbabilityMassFunction/Monad.lean

tactic: simp [mem_support_iff, ENNReal.tsum_eq_zero, not_or]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.10223
p : Pmf α
f : α → Pmf β
g : β → Pmf γ
b : β
⊢ b ∈ support (bind p f) ↔ b ∈ ⋃ (a : α) (_ : a ∈ support p), support (f a)
Theorem: Polynomial.degree_add_eq_left_of_degree_lt
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: rw [coeff_add, coeff_natDegree_eq_zero_of_degree_lt h, add_zero]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p q : R[X]
ι : Type ?u.529420
h : degree q < degree p
⊢ coeff (p + q) (natDegree p) ≠ 0

tactic: exact mt leadingCoeff_eq_zero.1 (ne_zero_of_degree_gt h)
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p q : R[X]
ι : Type ?u.529420
h : degree q < degree p
⊢ coeff p (natDegree p) ≠ 0
Theorem: Finset.uIcc_eq_union
File: Mathlib/Data/Finset/LocallyFinite.lean

tactic: push_cast
state_before: ι : Type ?u.199082
α : Type u_1
inst✝¹ : LinearOrder α
inst✝ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
⊢ ↑[[a, b]] = ↑(Icc a b ∪ Icc b a)

tactic: exact Set.uIcc_eq_union
state_before: ι : Type ?u.199082
α : Type u_1
inst✝¹ : LinearOrder α
inst✝ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
⊢ Set.uIcc a b = Set.Icc a b ∪ Set.Icc b a
Theorem: Matrix.col_vecMul
File: Mathlib/Data/Matrix/Basic.lean

tactic: ext
state_before: l : Type ?u.1215363
m : Type u_1
n : Type u_2
o : Type ?u.1215372
m' : o → Type ?u.1215377
n' : o → Type ?u.1215382
R : Type ?u.1215385
S : Type ?u.1215388
α : Type v
β : Type w
γ : Type ?u.1215395
inst✝¹ : Fintype m
inst✝ : NonUnitalNonAssocSemiring α
M : Matrix m n α
v : m → α
⊢ col (vecMul v M) = (row v ⬝ M)ᵀ

tactic: rfl
state_before: case a.h
l : Type ?u.1215363
m : Type u_1
n : Type u_2
o : Type ?u.1215372
m' : o → Type ?u.1215377
n' : o → Type ?u.1215382
R : Type ?u.1215385
S : Type ?u.1215388
α : Type v
β : Type w
γ : Type ?u.1215395
inst✝¹ : Fintype m
inst✝ : NonUnitalNonAssocSemiring α
M : Matrix m n α
v : m → α
i✝ : n
x✝ : Unit
⊢ col (vecMul v M) i✝ x✝ = (row v ⬝ M)ᵀ i✝ x✝
Theorem: LinearMap.linearProjOfIsCompl_of_proj
File: Mathlib/LinearAlgebra/Projection.lean

tactic: ext x
state_before: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type ?u.361842
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type ?u.362358
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type ?u.363321
inst✝² : Semiring S
M : Type ?u.363327
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] { x // x ∈ p }
hf : ∀ (x : { x // x ∈ p }), ↑f ↑x = x
⊢ linearProjOfIsCompl p (ker f) (_ : IsCompl p (ker f)) = f

tactic: have : x ∈ p ⊔ (ker f) := by simp only [(isCompl_of_proj hf).sup_eq_top, mem_top]
state_before: case h.a
R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type ?u.361842
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type ?u.362358
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type ?u.363321
inst✝² : Semiring S
M : Type ?u.363327
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] { x // x ∈ p }
hf : ∀ (x : { x // x ∈ p }), ↑f ↑x = x
x : E
⊢ ↑(↑(linearProjOfIsCompl p (ker f) (_ : IsCompl p (ker f))) x) = ↑(↑f x)

tactic: rcases mem_sup'.1 this with ⟨x, y, rfl⟩
state_before: case h.a
R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type ?u.361842
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type ?u.362358
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type ?u.363321
inst✝² : Semiring S
M : Type ?u.363327
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] { x // x ∈ p }
hf : ∀ (x : { x // x ∈ p }), ↑f ↑x = x
x : E
this : x ∈ p ⊔ ker f
⊢ ↑(↑(linearProjOfIsCompl p (ker f) (_ : IsCompl p (ker f))) x) = ↑(↑f x)

tactic: simp [hf]
state_before: case h.a.intro.intro
R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type ?u.361842
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type ?u.362358
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type ?u.363321
inst✝² : Semiring S
M : Type ?u.363327
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] { x // x ∈ p }
hf : ∀ (x : { x // x ∈ p }), ↑f ↑x = x
x : { x // x ∈ p }
y : { x // x ∈ ker f }
this : ↑x + ↑y ∈ p ⊔ ker f
⊢ ↑(↑(linearProjOfIsCompl p (ker f) (_ : IsCompl p (ker f))) (↑x + ↑y)) = ↑(↑f (↑x + ↑y))

tactic: simp only [(isCompl_of_proj hf).sup_eq_top, mem_top]
state_before: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type ?u.361842
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type ?u.362358
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type ?u.363321
inst✝² : Semiring S
M : Type ?u.363327
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] { x // x ∈ p }
hf : ∀ (x : { x // x ∈ p }), ↑f ↑x = x
x : E
⊢ x ∈ p ⊔ ker f
Theorem: FirstOrder.Language.Formula.realize_relabel_sum_inr
File: Mathlib/ModelTheory/Semantics.lean

tactic: rw [BoundedFormula.realize_relabel, Formula.Realize, Sum.elim_comp_inr, Fin.castAdd_zero,
  cast_refl, OrderIso.coe_refl, Function.comp.right_id,
  Subsingleton.elim (x ∘ (natAdd n : Fin 0 → Fin n)) default]
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.239536
P : Type ?u.239539
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
n : ℕ
φ✝ ψ : Formula L α
v✝ : α → M
φ : Formula L (Fin n)
v : Empty → M
x : Fin n → M
⊢ BoundedFormula.Realize (BoundedFormula.relabel Sum.inr φ) v x ↔ Realize φ x
Theorem: AddCircle.liftIco_zero_coe_apply
File: Mathlib/Topology/Instances/AddCircle.lean

tactic: rwa [zero_add]
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p a : 𝕜
hp : Fact (0 < p)
inst✝ : Archimedean 𝕜
f : 𝕜 → B
x : 𝕜
hx : x ∈ Ico 0 p
⊢ x ∈ Ico 0 (0 + p)
Theorem: Asymptotics.isEquivalent_zero_iff_eventually_zero
File: Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean

tactic: rw [IsEquivalent, sub_zero]
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
⊢ u ~[l] 0 ↔ u =ᶠ[l] 0

tactic: exact isLittleO_zero_right_iff
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
⊢ u =o[l] 0 ↔ u =ᶠ[l] 0
Theorem: Cycle.toMultiset_eq_nil
File: Mathlib/Data/List/Cycle.lean

tactic: simp
state_before: α : Type u_1
s : Cycle α
⊢ ∀ (a : List α), toMultiset (Quotient.mk'' a) = 0 ↔ Quotient.mk'' a = nil
Theorem: Real.fourierChar_apply
File: Mathlib/Analysis/Fourier/FourierTransform.lean

tactic: rfl
state_before: x : ℝ
⊢ ↑(↑fourierChar (↑Multiplicative.ofAdd x)) = Complex.exp (↑(2 * π * x) * Complex.I)
Theorem: antisymmetrization_fibration
File: Mathlib/Order/Antisymmetrization.lean

tactic: rintro a ⟨b⟩ h
state_before: α : Type u_1
β : Type ?u.3549
inst✝¹ : Preorder α
inst✝ : Preorder β
a b : α
⊢ Relation.Fibration (fun x x_1 => x < x_1) (fun x x_1 => x < x_1) (toAntisymmetrization fun x x_1 => x ≤ x_1)

tactic: exact ⟨b, h, rfl⟩
state_before: case mk
α : Type u_1
β : Type ?u.3549
inst✝¹ : Preorder α
inst✝ : Preorder β
a✝ b✝¹ a : α
b✝ : Antisymmetrization α fun x x_1 => x ≤ x_1
b : α
h : Quot.mk Setoid.r b < toAntisymmetrization (fun x x_1 => x ≤ x_1) a
⊢ ∃ a', (fun x x_1 => x < x_1) a' a ∧ toAntisymmetrization (fun x x_1 => x ≤ x_1) a' = Quot.mk Setoid.r b
Theorem: IsOpen.closure_inter
File: Mathlib/Topology/Basic.lean

tactic: simpa only [inter_comm t] using h.inter_closure
state_before: α : Type u
β : Type v
ι : Sort w
a : α
s✝ s₁ s₂ t✝ : Set α
p p₁ p₂ : α → Prop
inst✝ : TopologicalSpace α
s t : Set α
h : IsOpen t
⊢ closure s ∩ t ⊆ closure (s ∩ t)
Theorem: add_tsub_le_tsub_add
File: Mathlib/Algebra/Order/Sub/Defs.lean

tactic: rw [add_comm, add_comm _ b]
state_before: α : Type u_1
β : Type ?u.8408
inst✝⁴ : Preorder α
inst✝³ : AddCommSemigroup α
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ a + b - c ≤ a - c + b

tactic: exact add_tsub_le_assoc
state_before: α : Type u_1
β : Type ?u.8408
inst✝⁴ : Preorder α
inst✝³ : AddCommSemigroup α
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ b + a - c ≤ b + (a - c)
Theorem: xor_true
File: Mathlib/Logic/Basic.lean

tactic: simp [Xor']
state_before: ⊢ Xor' True = Not
Theorem: SemidirectProduct.lift_inr
File: Mathlib/GroupTheory/SemidirectProduct.lean

tactic: simp [lift]
state_before: N : Type u_2
G : Type u_3
H : Type u_1
inst✝² : Group N
inst✝¹ : Group G
inst✝ : Group H
φ : G →* MulAut N
f₁ : N →* H
f₂ : G →* H
h :
  ∀ (g : G),
    MonoidHom.comp f₁ (MulEquiv.toMonoidHom (↑φ g)) = MonoidHom.comp (MulEquiv.toMonoidHom (↑MulAut.conj (↑f₂ g))) f₁
g : G
⊢ ↑(lift f₁ f₂ h) (↑inr g) = ↑f₂ g
Theorem: Std.TransCmp.ge_trans
File: Std/Classes/Order.lean

tactic: have := @TransCmp.le_trans _ cmp _ z y x
state_before: cmp✝ : ?m.1112 → ?m.1112 → Ordering
inst✝¹ : TransCmp cmp✝
x✝ : Sort ?u.1110
cmp : x✝ → x✝ → Ordering
inst✝ : TransCmp cmp
x y z : x✝
h₁ : cmp x y ≠ Ordering.lt
h₂ : cmp y z ≠ Ordering.lt
⊢ cmp x z ≠ Ordering.lt

tactic: simp [cmp_eq_gt] at *
state_before: cmp✝ : ?m.1112 → ?m.1112 → Ordering
inst✝¹ : TransCmp cmp✝
x✝ : Sort ?u.1110
cmp : x✝ → x✝ → Ordering
inst✝ : TransCmp cmp
x y z : x✝
h₁ : cmp x y ≠ Ordering.lt
h₂ : cmp y z ≠ Ordering.lt
this : cmp z y ≠ Ordering.gt → cmp y x ≠ Ordering.gt → cmp z x ≠ Ordering.gt
⊢ cmp x z ≠ Ordering.lt

tactic: exact this h₂ h₁
state_before: cmp✝ : ?m.1112 → ?m.1112 → Ordering
inst✝¹ : TransCmp cmp✝
x✝ : Sort ?u.1110
cmp : x✝ → x✝ → Ordering
inst✝ : TransCmp cmp
x y z : x✝
h₁ : ¬cmp x y = Ordering.lt
h₂ : ¬cmp y z = Ordering.lt
this : ¬cmp y z = Ordering.lt → ¬cmp x y = Ordering.lt → ¬cmp x z = Ordering.lt
⊢ ¬cmp x z = Ordering.lt
Theorem: Finset.image₂_right_identity
File: Mathlib/Data/Finset/NAry.lean

tactic: rw [image₂_singleton_right, funext h, image_id']
state_before: α : Type ?u.99320
α' : Type ?u.99323
β : Type u_2
β' : Type ?u.99329
γ : Type u_1
γ' : Type ?u.99335
δ : Type ?u.99338
δ' : Type ?u.99341
ε : Type ?u.99344
ε' : Type ?u.99347
ζ : Type ?u.99350
ζ' : Type ?u.99353
ν : Type ?u.99356
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f✝ f' : α → β → γ
g g' : α → β → γ → δ
s✝ s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b✝ b' : β
c : γ
f : γ → β → γ
b : β
h : ∀ (a : γ), f a b = a
s : Finset γ
⊢ image₂ f s {b} = s
Theorem: Nat.shiftr_zero
File: Mathlib/Init/Data/Nat/Bitwise.lean

tactic: intro n
state_before: ⊢ ∀ (n : ℕ), shiftr 0 n = 0

tactic: induction' n with n IH
state_before: n : ℕ
⊢ shiftr 0 n = 0

tactic: case zero =>
  rw [shiftr]
state_before: case zero

⊢ shiftr 0 zero = 0

case succ
n : ℕ
IH : shiftr 0 n = 0
⊢ shiftr 0 (succ n) = 0

tactic: case succ =>
  rw [shiftr, div2, IH]
  rfl
state_before: case succ
n : ℕ
IH : shiftr 0 n = 0
⊢ shiftr 0 (succ n) = 0

tactic: rw [shiftr]
state_before: ⊢ shiftr 0 zero = 0

tactic: rw [shiftr, div2, IH]
state_before: n : ℕ
IH : shiftr 0 n = 0
⊢ shiftr 0 (succ n) = 0

tactic: rfl
state_before: n : ℕ
IH : shiftr 0 n = 0
⊢ (boddDiv2 0).snd = 0
Theorem: Finset.forall_mem_insert
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [mem_insert, or_imp, forall_and, forall_eq]
state_before: α : Type u_1
β : Type ?u.438931
γ : Type ?u.438934
inst✝ : DecidableEq α
a : α
s : Finset α
p : α → Prop
⊢ (∀ (x : α), x ∈ insert a s → p x) ↔ p a ∧ ∀ (x : α), x ∈ s → p x
Theorem: Bool.bool_iff_false
File: Mathlib/Init/Data/Bool/Lemmas.lean

tactic: cases b <;> exact by decide
state_before: b : Bool
⊢ ¬b = true ↔ b = false

tactic: decide
state_before: ⊢ ¬true = true ↔ true = false
Theorem: Zsqrtd.norm_int_cast
File: Mathlib/NumberTheory/Zsqrtd/Basic.lean

tactic: simp [norm]
state_before: d n : ℤ
⊢ norm ↑n = n * n
Theorem: extChartAt_prod
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: simp only [mfld_simps]
state_before: 𝕜 : Type u_5
E : Type u_3
M : Type u_1
H : Type u_6
E' : Type u_4
M' : Type u_2
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x✝ : M
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x : M × M'
⊢ extChartAt (ModelWithCorners.prod I I') x = LocalEquiv.prod (extChartAt I x.fst) (extChartAt I' x.snd)

tactic: rw [LocalEquiv.prod_trans]
state_before: 𝕜 : Type u_5
E : Type u_3
M : Type u_1
H : Type u_6
E' : Type u_4
M' : Type u_2
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x✝ : M
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x : M × M'
⊢ LocalEquiv.prod (chartAt H x.fst).toLocalEquiv (chartAt H' x.snd).toLocalEquiv ≫
      LocalEquiv.prod I.toLocalEquiv I'.toLocalEquiv =
    LocalEquiv.prod ((chartAt H x.fst).toLocalEquiv ≫ I.toLocalEquiv)
      ((chartAt H' x.snd).toLocalEquiv ≫ I'.toLocalEquiv)
Theorem: Continuous.exists_forall_le_of_hasCompactMulSupport
File: Mathlib/Topology/Algebra/Order/Compact.lean

tactic: obtain ⟨_, ⟨x, rfl⟩, hx⟩ := (h.isCompact_range hf).exists_isLeast (range_nonempty _)
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.55513
inst✝⁶ : ConditionallyCompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : Nonempty β
inst✝ : One α
f : β → α
hf : Continuous f
h : HasCompactMulSupport f
⊢ ∃ x, ∀ (y : β), f x ≤ f y

tactic: rw [mem_lowerBounds, forall_range_iff] at hx
state_before: case intro.intro.intro
α : Type u_2
β : Type u_1
γ : Type ?u.55513
inst✝⁶ : ConditionallyCompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : Nonempty β
inst✝ : One α
f : β → α
hf : Continuous f
h : HasCompactMulSupport f
x : β
hx : f x ∈ lowerBounds (range f)
⊢ ∃ x, ∀ (y : β), f x ≤ f y

tactic: exact ⟨x, hx⟩
state_before: case intro.intro.intro
α : Type u_2
β : Type u_1
γ : Type ?u.55513
inst✝⁶ : ConditionallyCompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : Nonempty β
inst✝ : One α
f : β → α
hf : Continuous f
h : HasCompactMulSupport f
x : β
hx : ∀ (i : β), f x ≤ f i
⊢ ∃ x, ∀ (y : β), f x ≤ f y
Theorem: Multiset.count_eq_card
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp [countp_eq_card, count, @eq_comm _ a]
state_before: α : Type u_1
β : Type ?u.359485
γ : Type ?u.359488
inst✝ : DecidableEq α
a : α
s : Multiset α
⊢ count a s = ↑card s ↔ ∀ (x : α), x ∈ s → a = x
Theorem: Pi.mulSupport_mulSingle_one
File: Mathlib/Algebra/Support.lean

tactic: simp
state_before: A : Type u_1
B : Type u_2
inst✝¹ : DecidableEq A
inst✝ : One B
a : A
b : B
⊢ mulSupport (mulSingle a 1) = ∅
Theorem: Pi.card_Ioo
File: Mathlib/Data/Pi/Interval.lean

tactic: rw [card_Ioo_eq_card_Icc_sub_two, card_Icc]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝⁴ : DecidableEq ι
inst✝³ : Fintype ι
inst✝² : (i : ι) → DecidableEq (α i)
inst✝¹ : (i : ι) → PartialOrder (α i)
inst✝ : (i : ι) → LocallyFiniteOrder (α i)
a b : (i : ι) → α i
⊢ Finset.card (Ioo a b) = ∏ i : ι, Finset.card (Icc (a i) (b i)) - 2
Theorem: Finset.univ_pi_univ
File: Mathlib/Data/Fintype/Pi.lean

tactic: ext
state_before: α✝ : Type ?u.22866
α : Type u_1
β : α → Type u_2
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : (a : α) → Fintype (β a)
⊢ (pi univ fun a => univ) = univ

tactic: simp
state_before: case a
α✝ : Type ?u.22866
α : Type u_1
β : α → Type u_2
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : (a : α) → Fintype (β a)
a✝ : (a : α) → a ∈ univ → β a
⊢ (a✝ ∈ pi univ fun a => univ) ↔ a✝ ∈ univ
Theorem: SetLike.int_cast_mem_graded
File: Mathlib/Algebra/DirectSum/Internal.lean

tactic: induction z
state_before: ι : Type u_1
σ : Type u_3
S : Type ?u.28560
R : Type u_2
inst✝⁴ : Zero ι
inst✝³ : AddGroupWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubgroupClass σ R
A : ι → σ
inst✝ : GradedOne A
z : ℤ
⊢ ↑z ∈ A 0

tactic: rw [Int.ofNat_eq_coe, Int.cast_ofNat]
state_before: case ofNat
ι : Type u_1
σ : Type u_3
S : Type ?u.28560
R : Type u_2
inst✝⁴ : Zero ι
inst✝³ : AddGroupWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubgroupClass σ R
A : ι → σ
inst✝ : GradedOne A
a✝ : ℕ
⊢ ↑(Int.ofNat a✝) ∈ A 0

tactic: exact SetLike.nat_cast_mem_graded _ _
state_before: case ofNat
ι : Type u_1
σ : Type u_3
S : Type ?u.28560
R : Type u_2
inst✝⁴ : Zero ι
inst✝³ : AddGroupWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubgroupClass σ R
A : ι → σ
inst✝ : GradedOne A
a✝ : ℕ
⊢ ↑a✝ ∈ A 0

tactic: rw [Int.cast_negSucc]
state_before: case negSucc
ι : Type u_1
σ : Type u_3
S : Type ?u.28560
R : Type u_2
inst✝⁴ : Zero ι
inst✝³ : AddGroupWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubgroupClass σ R
A : ι → σ
inst✝ : GradedOne A
a✝ : ℕ
⊢ ↑(Int.negSucc a✝) ∈ A 0

tactic: exact neg_mem (SetLike.nat_cast_mem_graded _ _)
state_before: case negSucc
ι : Type u_1
σ : Type u_3
S : Type ?u.28560
R : Type u_2
inst✝⁴ : Zero ι
inst✝³ : AddGroupWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubgroupClass σ R
A : ι → σ
inst✝ : GradedOne A
a✝ : ℕ
⊢ -↑(a✝ + 1) ∈ A 0
Theorem: MeasureTheory.integral_fintype_iUnion
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: convert integral_finset_biUnion Finset.univ (fun i _ => hs i) _ fun i _ => hf i
state_before: α : Type u_2
β : Type ?u.19521
E : Type u_3
F : Type ?u.19527
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
f g : α → E
s✝ t : Set α
μ ν : Measure α
l l' : Filter α
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
ι : Type u_1
inst✝ : Fintype ι
s : ι → Set α
hs : ∀ (i : ι), MeasurableSet (s i)
h's : Pairwise (Disjoint on s)
hf : ∀ (i : ι), IntegrableOn f (s i)
⊢ (∫ (x : α) in ⋃ (i : ι), s i, f x ∂μ) = ∑ i : ι, ∫ (x : α) in s i, f x ∂μ

tactic: simp
state_before: case h.e'_2.h.e'_7.h.e'_4.h.e'_3.h
α : Type u_2
β : Type ?u.19521
E : Type u_3
F : Type ?u.19527
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
f g : α → E
s✝ t : Set α
μ ν : Measure α
l l' : Filter α
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
ι : Type u_1
inst✝ : Fintype ι
s : ι → Set α
hs : ∀ (i : ι), MeasurableSet (s i)
h's : Pairwise (Disjoint on s)
hf : ∀ (i : ι), IntegrableOn f (s i)
x✝ : ι
⊢ s x✝ = ⋃ (_ : x✝ ∈ Finset.univ), s x✝

tactic: simp [pairwise_univ, h's]
state_before: α : Type u_2
β : Type ?u.19521
E : Type u_3
F : Type ?u.19527
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
f g : α → E
s✝ t : Set α
μ ν : Measure α
l l' : Filter α
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
ι : Type u_1
inst✝ : Fintype ι
s : ι → Set α
hs : ∀ (i : ι), MeasurableSet (s i)
h's : Pairwise (Disjoint on s)
hf : ∀ (i : ι), IntegrableOn f (s i)
⊢ Set.Pairwise (↑Finset.univ) (Disjoint on fun i => s i)
Theorem: Pmf.bind_comm
File: Mathlib/Probability/ProbabilityMassFunction/Monad.lean

tactic: simpa only [ENNReal.coe_eq_coe.symm, bind_apply, ENNReal.tsum_mul_left.symm,
  ENNReal.tsum_mul_right.symm, mul_assoc, mul_left_comm, mul_comm] using ENNReal.tsum_comm
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
p✝ : Pmf α
f✝ : α → Pmf β
g : β → Pmf γ
p : Pmf α
q : Pmf β
f : α → β → Pmf γ
b : γ
⊢ ↑(bind p fun a => bind q (f a)) b = ↑(bind q fun b => bind p fun a => f a b) b