tasksource/leandojo huggingface dataset:
Theorem: Set.IccExtend_eq_self
File: Mathlib/Data/Set/Intervals/ProjIcc.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x : α
f : α → β
ha : ∀ (x : α), x < a → f x = f a
hb : ∀ (x : α), b < x → f x = f b
⊢ IccExtend h (f ∘ Subtype.val) = f

tactic: cases' lt_or_le x a with hxa hax
state_before: case h
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x✝ : α
f : α → β
ha : ∀ (x : α), x < a → f x = f a
hb : ∀ (x : α), b < x → f x = f b
x : α
⊢ IccExtend h (f ∘ Subtype.val) x = f x

tactic: simp [IccExtend_of_le_left _ _ hxa.le, ha x hxa]
state_before: case h.inl
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x✝ : α
f : α → β
ha : ∀ (x : α), x < a → f x = f a
hb : ∀ (x : α), b < x → f x = f b
x : α
hxa : x < a
⊢ IccExtend h (f ∘ Subtype.val) x = f x

tactic: cases' le_or_lt x b with hxb hbx
state_before: case h.inr
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x✝ : α
f : α → β
ha : ∀ (x : α), x < a → f x = f a
hb : ∀ (x : α), b < x → f x = f b
x : α
hax : a ≤ x
⊢ IccExtend h (f ∘ Subtype.val) x = f x

tactic: lift x to Icc a b using ⟨hax, hxb⟩
state_before: case h.inr.inl
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x✝ : α
f : α → β
ha : ∀ (x : α), x < a → f x = f a
hb : ∀ (x : α), b < x → f x = f b
x : α
hax : a ≤ x
hxb : x ≤ b
⊢ IccExtend h (f ∘ Subtype.val) x = f x

tactic: rw [IccExtend_val, comp_apply]
state_before: case h.inr.inl.intro
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x✝ : α
f : α → β
ha : ∀ (x : α), x < a → f x = f a
hb : ∀ (x : α), b < x → f x = f b
x : { x // x ∈ Icc a b }
hax : a ≤ ↑x
hxb : ↑x ≤ b
⊢ IccExtend h (f ∘ Subtype.val) ↑x = f ↑x

tactic: simp [IccExtend_of_right_le _ _ hbx.le, hb x hbx]
state_before: case h.inr.inr
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x✝ : α
f : α → β
ha : ∀ (x : α), x < a → f x = f a
hb : ∀ (x : α), b < x → f x = f b
x : α
hax : a ≤ x
hbx : b < x
⊢ IccExtend h (f ∘ Subtype.val) x = f x
Theorem: MvPolynomial.rename_eq
File: Mathlib/Data/MvPolynomial/Rename.lean

tactic: simp only [rename, aeval_def, eval₂, Finsupp.mapDomain, algebraMap_eq, comp_apply,
  X_pow_eq_monomial, ← monomial_finsupp_sum_index]
state_before: σ : Type u_1
τ : Type u_3
α : Type ?u.245747
R : Type u_2
S : Type ?u.245753
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
f : σ → τ
p : MvPolynomial σ R
⊢ ↑(rename f) p = Finsupp.mapDomain (Finsupp.mapDomain f) p

tactic: rfl
state_before: σ : Type u_1
τ : Type u_3
α : Type ?u.245747
R : Type u_2
S : Type ?u.245753
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
f : σ → τ
p : MvPolynomial σ R
⊢ (sum p fun s a => ↑(monomial (sum s fun a b => Finsupp.single (f a) b)) a) =
    sum p fun a => Finsupp.single (sum a fun a => Finsupp.single (f a))
Theorem: NNReal.hasSum_iff_tendsto_nat
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: rw [← ENNReal.hasSum_coe, ENNReal.hasSum_iff_tendsto_nat]
state_before: α : Type ?u.312215
β : Type ?u.312218
γ : Type ?u.312221
f : ℕ → ℝ≥0
r : ℝ≥0
⊢ HasSum f r ↔ Tendsto (fun n => ∑ i in Finset.range n, f i) atTop (𝓝 r)

tactic: simp only [← ENNReal.coe_finset_sum]
state_before: α : Type ?u.312215
β : Type ?u.312218
γ : Type ?u.312221
f : ℕ → ℝ≥0
r : ℝ≥0
⊢ Tendsto (fun n => ∑ i in Finset.range n, ↑(f i)) atTop (𝓝 ↑r) ↔
    Tendsto (fun n => ∑ i in Finset.range n, f i) atTop (𝓝 r)

tactic: exact ENNReal.tendsto_coe
state_before: α : Type ?u.312215
β : Type ?u.312218
γ : Type ?u.312221
f : ℕ → ℝ≥0
r : ℝ≥0
⊢ Tendsto (fun n => ↑(∑ a in Finset.range n, f a)) atTop (𝓝 ↑r) ↔
    Tendsto (fun n => ∑ a in Finset.range n, f a) atTop (𝓝 r)
Theorem: Tuple.self_comp_sort
File: Mathlib/Data/Fin/Tuple/Sort.lean

tactic: simp
state_before: n : ℕ
α : Type u_1
inst✝ : LinearOrder α
f : Fin n → α
⊢ graph.proj ∘ (↑(graphEquiv₁ f) ∘ ↑(graphEquiv₁ f).symm) ∘ ↑(graphEquiv₂ f).toEquiv = graph.proj ∘ ↑(graphEquiv₂ f)
Theorem: Lattice.ext
File: Mathlib/Order/Lattice.lean

tactic: cases A
state_before: α✝ : Type u
β : Type v
inst✝ : Lattice α✝
a b c d : α✝
α : Type u_1
A B : Lattice α
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
⊢ A = B

tactic: cases B
state_before: case mk
α✝ : Type u
β : Type v
inst✝ : Lattice α✝
a b c d : α✝
α : Type u_1
B : Lattice α
toSemilatticeSup✝ : SemilatticeSup α
toInf✝ : Inf α
inf_le_left✝ : ∀ (a b : α), a ⊓ b ≤ a
inf_le_right✝ : ∀ (a b : α), a ⊓ b ≤ b
le_inf✝ : ∀ (a b c : α), a ≤ b → a ≤ c → a ≤ b ⊓ c
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
⊢ mk inf_le_left✝ inf_le_right✝ le_inf✝ = B

tactic: cases SemilatticeSup.ext H
state_before: case mk.mk
α✝ : Type u
β : Type v
inst✝ : Lattice α✝
a b c d : α✝
α : Type u_1
toSemilatticeSup✝¹ : SemilatticeSup α
toInf✝¹ : Inf α
inf_le_left✝¹ : ∀ (a b : α), a ⊓ b ≤ a
inf_le_right✝¹ : ∀ (a b : α), a ⊓ b ≤ b
le_inf✝¹ : ∀ (a b c : α), a ≤ b → a ≤ c → a ≤ b ⊓ c
toSemilatticeSup✝ : SemilatticeSup α
toInf✝ : Inf α
inf_le_left✝ : ∀ (a b : α), a ⊓ b ≤ a
inf_le_right✝ : ∀ (a b : α), a ⊓ b ≤ b
le_inf✝ : ∀ (a b c : α), a ≤ b → a ≤ c → a ≤ b ⊓ c
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
⊢ mk inf_le_left✝¹ inf_le_right✝¹ le_inf✝¹ = mk inf_le_left✝ inf_le_right✝ le_inf✝

tactic: cases SemilatticeInf.ext H
state_before: case mk.mk.refl
α✝ : Type u
β : Type v
inst✝ : Lattice α✝
a b c d : α✝
α : Type u_1
toSemilatticeSup✝ : SemilatticeSup α
toInf✝¹ : Inf α
inf_le_left✝¹ : ∀ (a b : α), a ⊓ b ≤ a
inf_le_right✝¹ : ∀ (a b : α), a ⊓ b ≤ b
le_inf✝¹ : ∀ (a b c : α), a ≤ b → a ≤ c → a ≤ b ⊓ c
toInf✝ : Inf α
inf_le_left✝ : ∀ (a b : α), a ⊓ b ≤ a
inf_le_right✝ : ∀ (a b : α), a ⊓ b ≤ b
le_inf✝ : ∀ (a b c : α), a ≤ b → a ≤ c → a ≤ b ⊓ c
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
⊢ mk inf_le_left✝¹ inf_le_right✝¹ le_inf✝¹ = mk inf_le_left✝ inf_le_right✝ le_inf✝

tactic: congr
state_before: case mk.mk.refl.refl
α✝ : Type u
β : Type v
inst✝ : Lattice α✝
a b c d : α✝
α : Type u_1
toSemilatticeSup✝ : SemilatticeSup α
toInf✝ : Inf α
inf_le_left✝¹ : ∀ (a b : α), a ⊓ b ≤ a
inf_le_right✝¹ : ∀ (a b : α), a ⊓ b ≤ b
le_inf✝¹ : ∀ (a b c : α), a ≤ b → a ≤ c → a ≤ b ⊓ c
inf_le_left✝ : ∀ (a b : α), a ⊓ b ≤ a
inf_le_right✝ : ∀ (a b : α), a ⊓ b ≤ b
le_inf✝ : ∀ (a b c : α), a ≤ b → a ≤ c → a ≤ b ⊓ c
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
⊢ mk inf_le_left✝¹ inf_le_right✝¹ le_inf✝¹ = mk inf_le_left✝ inf_le_right✝ le_inf✝
Theorem: AlternatingMap.eq_smul_basis_det
File: Mathlib/LinearAlgebra/Determinant.lean

tactic: refine' Basis.ext_alternating e fun i h => _
state_before: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type ?u.2583010
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_3
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
f : AlternatingMap R M R ι
⊢ f = ↑f ↑e • Basis.det e

tactic: let σ : Equiv.Perm ι := Equiv.ofBijective i (Finite.injective_iff_bijective.1 h)
state_before: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type ?u.2583010
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_3
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
f : AlternatingMap R M R ι
i : ι → ι
h : Injective i
⊢ (↑f fun i_1 => ↑e (i i_1)) = ↑(↑f ↑e • Basis.det e) fun i_1 => ↑e (i i_1)

tactic: change f (e ∘ σ) = (f e • e.det) (e ∘ σ)
state_before: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type ?u.2583010
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_3
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
f : AlternatingMap R M R ι
i : ι → ι
h : Injective i
σ : Equiv.Perm ι := Equiv.ofBijective i (_ : Bijective i)
⊢ (↑f fun i_1 => ↑e (i i_1)) = ↑(↑f ↑e • Basis.det e) fun i_1 => ↑e (i i_1)

tactic: simp [AlternatingMap.map_perm, Basis.det_self]
state_before: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type ?u.2583010
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_3
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
f : AlternatingMap R M R ι
i : ι → ι
h : Injective i
σ : Equiv.Perm ι := Equiv.ofBijective i (_ : Bijective i)
⊢ ↑f (↑e ∘ ↑σ) = ↑(↑f ↑e • Basis.det e) (↑e ∘ ↑σ)
Theorem: genericPoint_specializes
File: Mathlib/Topology/Sober.lean

tactic: simp
state_before: α : Type u_1
β : Type ?u.5792
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : QuasiSober α
inst✝ : IrreducibleSpace α
x : α
⊢ x ∈ closure univ
Theorem: ZMod.valMinAbs_nonneg_iff
File: Mathlib/Data/ZMod/Basic.lean

tactic: rw [valMinAbs_def_pos]
state_before: n : ℕ
inst✝ : NeZero n
x : ZMod n
⊢ 0 ≤ valMinAbs x ↔ val x ≤ n / 2

tactic: split_ifs with h
state_before: n : ℕ
inst✝ : NeZero n
x : ZMod n
⊢ (0 ≤ if val x ≤ n / 2 then ↑(val x) else ↑(val x) - ↑n) ↔ val x ≤ n / 2

tactic: exact iff_of_true (Nat.cast_nonneg _) h
state_before: case inl
n : ℕ
inst✝ : NeZero n
x : ZMod n
h : val x ≤ n / 2
⊢ 0 ≤ ↑(val x) ↔ val x ≤ n / 2

tactic: exact iff_of_false (sub_lt_zero.2 <| Int.ofNat_lt.2 x.val_lt).not_le h
state_before: case inr
n : ℕ
inst✝ : NeZero n
x : ZMod n
h : ¬val x ≤ n / 2
⊢ 0 ≤ ↑(val x) - ↑n ↔ val x ≤ n / 2
Theorem: geom_sum_Ico_mul_neg
File: Mathlib/Algebra/GeomSum.lean

tactic: rw [sum_Ico_eq_sub _ hmn, sub_mul, geom_sum_mul_neg, geom_sum_mul_neg, sub_sub_sub_cancel_left]
state_before: α : Type u
inst✝ : Ring α
x : α
m n : ℕ
hmn : m ≤ n
⊢ (∑ i in Ico m n, x ^ i) * (1 - x) = x ^ m - x ^ n
Theorem: PrimeSpectrum.basicOpen_eq_bot_iff
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: rw [← TopologicalSpace.Opens.coe_inj, basicOpen_eq_zeroLocus_compl]
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R
⊢ basicOpen f = ⊥ ↔ IsNilpotent f

tactic: simp only [Set.eq_univ_iff_forall, Set.singleton_subset_iff, TopologicalSpace.Opens.coe_bot,
  nilpotent_iff_mem_prime, Set.compl_empty_iff, mem_zeroLocus, SetLike.mem_coe]
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R
⊢ zeroLocus {f}ᶜ = ↑⊥ ↔ IsNilpotent f

tactic: exact ⟨fun h I hI => h ⟨I, hI⟩, fun h ⟨I, hI⟩ => h I hI⟩
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R
⊢ (∀ (x : PrimeSpectrum R), f ∈ x.asIdeal) ↔ ∀ (J : Ideal R), Ideal.IsPrime J → f ∈ J
Theorem: Nat.bit1_mod_two
File: Mathlib/Data/Nat/Bits.lean

tactic: rw [Nat.mod_two_of_bodd]
state_before: n : ℕ
⊢ bit1 n % 2 = 1

tactic: simp
state_before: n : ℕ
⊢ (bif bodd (bit1 n) then 1 else 0) = 1
Theorem: Matrix.IsAdjMatrix.adjMatrix_toGraph_eq
File: Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean

tactic: ext (i j)
state_before: V : Type u_2
α : Type u_1
β : Type ?u.79711
inst✝² : MulZeroOneClass α
inst✝¹ : Nontrivial α
A : Matrix V V α
h : IsAdjMatrix A
inst✝ : DecidableEq α
⊢ adjMatrix α (toGraph h) = A

tactic: obtain h' | h' := h.zero_or_one i j <;> simp [h']
state_before: case a.h
V : Type u_2
α : Type u_1
β : Type ?u.79711
inst✝² : MulZeroOneClass α
inst✝¹ : Nontrivial α
A : Matrix V V α
h : IsAdjMatrix A
inst✝ : DecidableEq α
i j : V
⊢ adjMatrix α (toGraph h) i j = A i j
Theorem: List.perm_replicate_append_replicate
File: Mathlib/Data/List/Perm.lean

tactic: rw [perm_iff_count, ← Decidable.and_forall_ne a, ← Decidable.and_forall_ne b]
state_before: α : Type uu
β : Type vv
l₁ l₂ : List α
inst✝ : DecidableEq α
l : List α
a b : α
m n : ℕ
h : a ≠ b
⊢ l ~ replicate m a ++ replicate n b ↔ count a l = m ∧ count b l = n ∧ l ⊆ [a, b]

tactic: suffices : l ⊆ [a, b] ↔ ∀ c, c ≠ b → c ≠ a → c ∉ l
state_before: α : Type uu
β : Type vv
l₁ l₂ : List α
inst✝ : DecidableEq α
l : List α
a b : α
m n : ℕ
h : a ≠ b
⊢ (count a l = count a (replicate m a ++ replicate n b) ∧
      (b ≠ a → count b l = count b (replicate m a ++ replicate n b)) ∧
        ∀ (b_1 : α), b_1 ≠ b → b_1 ≠ a → count b_1 l = count b_1 (replicate m a ++ replicate n b)) ↔
    count a l = m ∧ count b l = n ∧ l ⊆ [a, b]

tactic: { simp (config := { contextual := true }) [count_replicate, h, h.symm, this] }
state_before: α : Type uu
β : Type vv
l₁ l₂ : List α
inst✝ : DecidableEq α
l : List α
a b : α
m n : ℕ
h : a ≠ b
this : l ⊆ [a, b] ↔ ∀ (c : α), c ≠ b → c ≠ a → ¬c ∈ l
⊢ (count a l = count a (replicate m a ++ replicate n b) ∧
      (b ≠ a → count b l = count b (replicate m a ++ replicate n b)) ∧
        ∀ (b_1 : α), b_1 ≠ b → b_1 ≠ a → count b_1 l = count b_1 (replicate m a ++ replicate n b)) ↔
    count a l = m ∧ count b l = n ∧ l ⊆ [a, b]

case this
α : Type uu
β : Type vv
l₁ l₂ : List α
inst✝ : DecidableEq α
l : List α
a b : α
m n : ℕ
h : a ≠ b
⊢ l ⊆ [a, b] ↔ ∀ (c : α), c ≠ b → c ≠ a → ¬c ∈ l

tactic: simp_rw [Ne.def, ← and_imp, ← not_or, Decidable.not_imp_not, subset_def, mem_cons,
  not_mem_nil, or_false, or_comm]
state_before: case this
α : Type uu
β : Type vv
l₁ l₂ : List α
inst✝ : DecidableEq α
l : List α
a b : α
m n : ℕ
h : a ≠ b
⊢ l ⊆ [a, b] ↔ ∀ (c : α), c ≠ b → c ≠ a → ¬c ∈ l
Theorem: Rat.nonneg_total
File: Mathlib/Data/Rat/Order.lean

tactic: cases' a with n
state_before: a b c : ℚ
⊢ Rat.Nonneg a ∨ Rat.Nonneg (-a)

tactic: exact Or.imp_right neg_nonneg_of_nonpos (le_total 0 n)
state_before: case mk'
b c : ℚ
n : ℤ
den✝ : ℕ
den_nz✝ : den✝ ≠ 0
reduced✝ : Nat.coprime (Int.natAbs n) den✝
⊢ Rat.Nonneg (mk' n den✝) ∨ Rat.Nonneg (-mk' n den✝)
Theorem: List.indexOf_eq_length
File: Mathlib/Data/List/Basic.lean

tactic: induction' l with b l ih
state_before: ι : Type ?u.79233
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
inst✝ : DecidableEq α
a : α
l : List α
⊢ indexOf a l = length l ↔ ¬a ∈ l

tactic: simp only [length, mem_cons, indexOf_cons]
state_before: case cons
ι : Type ?u.79233
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
inst✝ : DecidableEq α
a b : α
l : List α
ih : indexOf a l = length l ↔ ¬a ∈ l
⊢ indexOf a (b :: l) = length (b :: l) ↔ ¬a ∈ b :: l

tactic: split_ifs with h
state_before: case cons
ι : Type ?u.79233
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
inst✝ : DecidableEq α
a b : α
l : List α
ih : indexOf a l = length l ↔ ¬a ∈ l
⊢ (if a = b then 0 else succ (indexOf a l)) = length l + 1 ↔ ¬(a = b ∨ a ∈ l)

tactic: exact iff_of_true rfl (not_mem_nil _)
state_before: case nil
ι : Type ?u.79233
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
inst✝ : DecidableEq α
a : α
⊢ indexOf a [] = length [] ↔ ¬a ∈ []

tactic: exact iff_of_false (by rintro ⟨⟩) fun H => H <| Or.inl h
state_before: case cons.inl
ι : Type ?u.79233
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
inst✝ : DecidableEq α
a b : α
l : List α
ih : indexOf a l = length l ↔ ¬a ∈ l
h : a = b
⊢ 0 = length l + 1 ↔ ¬(a = b ∨ a ∈ l)

tactic: rintro ⟨⟩
state_before: ι : Type ?u.79233
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
inst✝ : DecidableEq α
a b : α
l : List α
ih : indexOf a l = length l ↔ ¬a ∈ l
h : a = b
⊢ ¬0 = length l + 1

tactic: simp only [h, false_or_iff]
state_before: case cons.inr
ι : Type ?u.79233
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
inst✝ : DecidableEq α
a b : α
l : List α
ih : indexOf a l = length l ↔ ¬a ∈ l
h : ¬a = b
⊢ succ (indexOf a l) = length l + 1 ↔ ¬(a = b ∨ a ∈ l)

tactic: rw [← ih]
state_before: case cons.inr
ι : Type ?u.79233
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
inst✝ : DecidableEq α
a b : α
l : List α
ih : indexOf a l = length l ↔ ¬a ∈ l
h : ¬a = b
⊢ succ (indexOf a l) = length l + 1 ↔ ¬a ∈ l

tactic: exact succ_inj'
state_before: case cons.inr
ι : Type ?u.79233
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
inst✝ : DecidableEq α
a b : α
l : List α
ih : indexOf a l = length l ↔ ¬a ∈ l
h : ¬a = b
⊢ succ (indexOf a l) = length l + 1 ↔ indexOf a l = length l
Theorem: goldConj_irrational
File: Mathlib/Data/Real/GoldenRatio.lean

tactic: have := Nat.Prime.irrational_sqrt (show Nat.Prime 5 by norm_num)
state_before: ⊢ Irrational ψ

tactic: have := this.rat_sub 1
state_before: this : Irrational (sqrt ↑5)
⊢ Irrational ψ

tactic: have := this.rat_mul (show (0.5 : ℚ) ≠ 0 by norm_num)
state_before: this✝ : Irrational (sqrt ↑5)
this : Irrational (↑1 - sqrt ↑5)
⊢ Irrational ψ

tactic: convert this
state_before: this✝¹ : Irrational (sqrt ↑5)
this✝ : Irrational (↑1 - sqrt ↑5)
this : Irrational (↑0.5 * (↑1 - sqrt ↑5))
⊢ Irrational ψ

tactic: norm_num
state_before: case h.e'_1
this✝¹ : Irrational (sqrt ↑5)
this✝ : Irrational (↑1 - sqrt ↑5)
this : Irrational (↑0.5 * (↑1 - sqrt ↑5))
⊢ ψ = ↑0.5 * (↑1 - sqrt ↑5)

tactic: field_simp
state_before: case h.e'_1
this✝¹ : Irrational (sqrt ↑5)
this✝ : Irrational (↑1 - sqrt ↑5)
this : Irrational (↑0.5 * (↑1 - sqrt ↑5))
⊢ ψ = 1 / 2 * (1 - sqrt 5)

tactic: norm_num
state_before: ⊢ Nat.Prime 5

tactic: norm_num
state_before: this✝ : Irrational (sqrt ↑5)
this : Irrational (↑1 - sqrt ↑5)
⊢ 0.5 ≠ 0
Theorem: StieltjesFunction.measure_Iic
File: Mathlib/MeasureTheory/Measure/Stieltjes.lean

tactic: refine' tendsto_nhds_unique (tendsto_measure_Ioc_atBot _ _) _
state_before: f : StieltjesFunction
l : ℝ
hf : Tendsto (↑f) atBot (𝓝 l)
x : ℝ
⊢ ↑↑(StieltjesFunction.measure f) (Iic x) = ofReal (↑f x - l)

tactic: simp_rw [measure_Ioc]
state_before: f : StieltjesFunction
l : ℝ
hf : Tendsto (↑f) atBot (𝓝 l)
x : ℝ
⊢ Tendsto (fun x_1 => ↑↑(StieltjesFunction.measure f) (Ioc x_1 x)) atBot (𝓝 (ofReal (↑f x - l)))

tactic: exact ENNReal.tendsto_ofReal (Tendsto.const_sub _ hf)
state_before: f : StieltjesFunction
l : ℝ
hf : Tendsto (↑f) atBot (𝓝 l)
x : ℝ
⊢ Tendsto (fun x_1 => ofReal (↑f x - ↑f x_1)) atBot (𝓝 (ofReal (↑f x - l)))
Theorem: pow_strictMono_right
File: Mathlib/Algebra/GroupPower/Order.lean

tactic: simpa only [one_mul, pow_succ] using mul_lt_mul h (le_refl (a ^ n)) (pow_pos this _) this.le
state_before: β : Type ?u.226813
A : Type ?u.226816
G : Type ?u.226819
M : Type ?u.226822
R : Type u_1
inst✝ : StrictOrderedSemiring R
a x y : R
n✝ m : ℕ
h : 1 < a
this : 0 < a
n : ℕ
⊢ a ^ n < a ^ (n + 1)
Theorem: Polynomial.cardinal_mk_le_max
File: Mathlib/Data/Polynomial/Cardinal.lean

tactic: cases subsingleton_or_nontrivial R
state_before: R : Type u
inst✝ : Semiring R
⊢ (#R[X]) ≤ max (#R) ℵ₀

tactic: exact (mk_eq_one _).trans_le (le_max_of_le_right one_le_aleph0)
state_before: case inl
R : Type u
inst✝ : Semiring R
h✝ : Subsingleton R
⊢ (#R[X]) ≤ max (#R) ℵ₀

tactic: exact cardinal_mk_eq_max.le
state_before: case inr
R : Type u
inst✝ : Semiring R
h✝ : Nontrivial R
⊢ (#R[X]) ≤ max (#R) ℵ₀
Theorem: Polynomial.comp_zero
File: Mathlib/Data/Polynomial/Eval.lean

tactic: rw [← C_0, comp_C]
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]
⊢ comp p 0 = ↑C (eval 0 p)
Theorem: AffineSubspace.direction_inf_of_mem
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: ext v
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s₁ s₂ : AffineSubspace k P
p : P
h₁ : p ∈ s₁
h₂ : p ∈ s₂
⊢ direction (s₁ ⊓ s₂) = direction s₁ ⊓ direction s₂

tactic: rw [Submodule.mem_inf, ← vadd_mem_iff_mem_direction v h₁, ← vadd_mem_iff_mem_direction v h₂, ←
  vadd_mem_iff_mem_direction v ((mem_inf_iff p s₁ s₂).2 ⟨h₁, h₂⟩), mem_inf_iff]
state_before: case h
k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s₁ s₂ : AffineSubspace k P
p : P
h₁ : p ∈ s₁
h₂ : p ∈ s₂
v : V
⊢ v ∈ direction (s₁ ⊓ s₂) ↔ v ∈ direction s₁ ⊓ direction s₂
Theorem: disjoint_nhds_atTop
File: Mathlib/Topology/Order/Basic.lean

tactic: rcases exists_gt x with ⟨y, hy : x < y⟩
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : NoMaxOrder α
x : α
⊢ Disjoint (𝓝 x) atTop

tactic: refine' disjoint_of_disjoint_of_mem _ (Iio_mem_nhds hy) (mem_atTop y)
state_before: case intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : NoMaxOrder α
x y : α
hy : x < y
⊢ Disjoint (𝓝 x) atTop

tactic: exact disjoint_left.mpr fun z => not_le.2
state_before: case intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : NoMaxOrder α
x y : α
hy : x < y
⊢ Disjoint (Iio y) {b | y ≤ b}
Theorem: Order.Ideal.lt_sup_principal_of_not_mem
File: Mathlib/Order/Ideal.lean

tactic: simpa only [left_eq_sup, principal_le_iff] using h
state_before: P : Type u_1
inst✝¹ : SemilatticeSup P
inst✝ : IsDirected P fun x x_1 => x ≥ x_1
x : P
I J K s t : Ideal P
hx : ¬x ∈ I
h : I = I ⊔ principal x
⊢ x ∈ I
Theorem: Nat.ArithmeticFunction.natCoe_one
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: ext n
state_before: R : Type u_1
inst✝ : AddMonoidWithOne R
⊢ ↑1 = 1

tactic: simp [one_apply]
state_before: case h
R : Type u_1
inst✝ : AddMonoidWithOne R
n : ℕ
⊢ ↑↑1 n = ↑1 n
Theorem: ProbabilityTheory.kernel.lintegral_deterministic
File: Mathlib/Probability/Kernel/Basic.lean

tactic: rw [kernel.deterministic_apply, lintegral_dirac (g a) f]
state_before: α : Type u_1
β : Type u_2
ι : Type ?u.398136
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : { x // x ∈ kernel α β }
f : β → ℝ≥0∞
g : α → β
a : α
hg : Measurable g
inst✝ : MeasurableSingletonClass β
⊢ (∫⁻ (x : β), f x ∂↑(deterministic g hg) a) = f (g a)
Theorem: FiniteField.X_pow_card_sub_X_natDegree_eq
File: Mathlib/FieldTheory/Finite/Basic.lean

tactic: have h1 : (X : K'[X]).degree < (X ^ p : K'[X]).degree := by
  rw [degree_X_pow, degree_X]
  exact WithBot.coe_lt_coe.2 hp
state_before: K : Type ?u.726863
R : Type ?u.726866
inst✝² : Field K
inst✝¹ : Fintype K
K' : Type u_1
inst✝ : Field K'
p n : ℕ
hp : 1 < p
⊢ natDegree (X ^ p - X) = p

tactic: rw [natDegree_eq_of_degree_eq (degree_sub_eq_left_of_degree_lt h1), natDegree_X_pow]
state_before: K : Type ?u.726863
R : Type ?u.726866
inst✝² : Field K
inst✝¹ : Fintype K
K' : Type u_1
inst✝ : Field K'
p n : ℕ
hp : 1 < p
h1 : degree X < degree (X ^ p)
⊢ natDegree (X ^ p - X) = p

tactic: rw [degree_X_pow, degree_X]
state_before: K : Type ?u.726863
R : Type ?u.726866
inst✝² : Field K
inst✝¹ : Fintype K
K' : Type u_1
inst✝ : Field K'
p n : ℕ
hp : 1 < p
⊢ degree X < degree (X ^ p)

tactic: exact WithBot.coe_lt_coe.2 hp
state_before: K : Type ?u.726863
R : Type ?u.726866
inst✝² : Field K
inst✝¹ : Fintype K
K' : Type u_1
inst✝ : Field K'
p n : ℕ
hp : 1 < p
⊢ 1 < ↑p
Theorem: Class.sInter_apply
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: refine' ⟨fun hxy z hxz => hxy _ ⟨z, rfl, hxz⟩, _⟩
state_before: x : Class
y : ZFSet
⊢ (⋂₀ x) y ↔ ∀ (z : ZFSet), x z → y ∈ z

tactic: rintro H - ⟨z, rfl, hxz⟩
state_before: x : Class
y : ZFSet
⊢ (∀ (z : ZFSet), x z → y ∈ z) → (⋂₀ x) y

tactic: exact H _ hxz
state_before: case intro.intro
x : Class
y : ZFSet
H : ∀ (z : ZFSet), x z → y ∈ z
z : ZFSet
hxz : x z
⊢ y ∈ ↑z