1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Stream'.WSeq.join_cons
File: Mathlib/Data/Seq/WSeq.lean

tactic: simp only [join, think]
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
S : WSeq (WSeq α)
⊢ (cons s S).join = (s.append S.join).think
state_after: α : Type u
β : Type v
γ : Type w
s : WSeq α
S : WSeq (WSeq α)
⊢ ((fun o =>
          match o with
          | none => Seq1.ret none
          | some s => (none, s)) <$>
        cons s S).join =
    Seq.cons none
      (s.append
        ((fun o =>
              match o with
              | none => Seq1.ret none
              | some s => (none, s)) <$>
            S).join)

tactic: simp [join, cons, append]
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
S : WSeq (WSeq α)
⊢ (Seq.map
        (fun o =>
          match o with
          | none => Seq1.ret none
          | some s => (none, s))
        (cons s S)).join =
    Seq.cons none
      (s.append
        (Seq.map
            (fun o =>
              match o with
              | none => Seq1.ret none
              | some s => (none, s))
            S).join)
state_after: no goals
Theorem: Rat.cast_strictMono
File: Mathlib/Data/Rat/Cast/Order.lean

tactic: simpa only [sub_pos, cast_sub] using cast_pos_of_pos (K := K) (q := q - p)
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
p✝ q✝ : ℚ
K : Type u_5
inst✝ : LinearOrderedField K
p q : ℚ
⊢ p < q → ↑p < ↑q
state_after: no goals
Theorem: Seminorm.smul_ball_preimage
File: Mathlib/Analysis/Seminorm.lean

tactic: rw [mem_preimage, mem_ball, mem_ball, lt_div_iff (norm_pos_iff.mpr ha), mul_comm, ←
  map_smul_eq_mul p, smul_sub, smul_inv_smul₀ ha]
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a✝ : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
y : E
r : ℝ
a : 𝕜
ha : a ≠ 0
x✝ : E
⊢ x✝ ∈ (fun x => a • x) ⁻¹' p.ball y r ↔ x✝ ∈ p.ball (a⁻¹ • y) (r / ‖a‖)
state_after: no goals
Theorem: closedBall_pi
File: Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean

tactic: ext p
state_before: α : Type u_1
β : Type u_2
inst✝² : PseudoMetricSpace α
π : β → Type u_3
inst✝¹ : Fintype β
inst✝ : (b : β) → PseudoMetricSpace (π b)
x : (b : β) → π b
r : ℝ
hr : 0 ≤ r
⊢ closedBall x r = Set.univ.pi fun b => closedBall (x b) r
state_after: case h
α : Type u_1
β : Type u_2
inst✝² : PseudoMetricSpace α
π : β → Type u_3
inst✝¹ : Fintype β
inst✝ : (b : β) → PseudoMetricSpace (π b)
x : (b : β) → π b
r : ℝ
hr : 0 ≤ r
p : (b : β) → π b
⊢ p ∈ closedBall x r ↔ p ∈ Set.univ.pi fun b => closedBall (x b) r

tactic: simp [dist_pi_le_iff hr]
state_before: case h
α : Type u_1
β : Type u_2
inst✝² : PseudoMetricSpace α
π : β → Type u_3
inst✝¹ : Fintype β
inst✝ : (b : β) → PseudoMetricSpace (π b)
x : (b : β) → π b
r : ℝ
hr : 0 ≤ r
p : (b : β) → π b
⊢ p ∈ closedBall x r ↔ p ∈ Set.univ.pi fun b => closedBall (x b) r
state_after: no goals
Theorem: Nat.Primrec.id
File: Mathlib/Computability/Primrec.lean

tactic: simp
state_before: n : ℕ
⊢ Nat.pair (unpair n).1 (unpair n).2 = id n
state_after: no goals
Theorem: CategoryTheory.Limits.pullbackDiagonalMapIso_hom_fst
File: Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean

tactic: delta pullbackDiagonalMapIso
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
X Y Z : C
inst✝¹ : HasPullbacks C
U V₁ V₂ : C
f : X ⟶ Y
i : U ⟶ Y
i₁ : V₁ ⟶ pullback f i
i₂ : V₂ ⟶ pullback f i
inst✝ : HasPullback i₁ i₂
⊢ (pullbackDiagonalMapIso f i i₁ i₂).hom ≫ fst = snd ≫ fst
state_after: C : Type u_1
inst✝² : Category.{u_2, u_1} C
X Y Z : C
inst✝¹ : HasPullbacks C
U V₁ V₂ : C
f : X ⟶ Y
i : U ⟶ Y
i₁ : V₁ ⟶ pullback f i
i₂ : V₂ ⟶ pullback f i
inst✝ : HasPullback i₁ i₂
⊢ { hom := lift (snd ≫ fst) (snd ≫ snd) ⋯,
          inv := lift (fst ≫ i₁ ≫ fst) (map i₁ i₂ (i₁ ≫ snd) (i₂ ≫ snd) (𝟙 V₁) (𝟙 V₂) snd ⋯ ⋯) ⋯, hom_inv_id := ⋯,
          inv_hom_id := ⋯ }.hom ≫
      fst =
    snd ≫ fst

tactic: simp
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
X Y Z : C
inst✝¹ : HasPullbacks C
U V₁ V₂ : C
f : X ⟶ Y
i : U ⟶ Y
i₁ : V₁ ⟶ pullback f i
i₂ : V₂ ⟶ pullback f i
inst✝ : HasPullback i₁ i₂
⊢ { hom := lift (snd ≫ fst) (snd ≫ snd) ⋯,
          inv := lift (fst ≫ i₁ ≫ fst) (map i₁ i₂ (i₁ ≫ snd) (i₂ ≫ snd) (𝟙 V₁) (𝟙 V₂) snd ⋯ ⋯) ⋯, hom_inv_id := ⋯,
          inv_hom_id := ⋯ }.hom ≫
      fst =
    snd ≫ fst
state_after: no goals
Theorem: ArithmeticFunction.one_eq_delta
File: Mathlib/NumberTheory/LSeries/Dirichlet.lean

tactic: ext
state_before: ⊢ (fun n => 1 n) = δ
state_after: case h
x✝ : ℕ
⊢ 1 x✝ = δ x✝

tactic: simp only [one_apply, LSeries.delta]
state_before: case h
x✝ : ℕ
⊢ 1 x✝ = δ x✝
state_after: no goals
Theorem: Polynomial.aroots_X_pow
File: Mathlib/Algebra/Polynomial/Roots.lean

tactic: rw [aroots_pow, aroots_X]
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]
inst✝³ : CommRing T
inst✝² : CommRing S
inst✝¹ : IsDomain S
inst✝ : Algebra T S
n : ℕ
⊢ (X ^ n).aroots S = n • {0}
state_after: no goals
Theorem: Nat.primeFactors_eq_empty
File: Mathlib/Data/Nat/PrimeFin.lean

tactic: constructor
state_before: a b k m n p : ℕ
⊢ n.primeFactors = ∅ ↔ n = 0 ∨ n = 1
state_after: case mp
a b k m n p : ℕ
⊢ n.primeFactors = ∅ → n = 0 ∨ n = 1

case mpr
a b k m n p : ℕ
⊢ n = 0 ∨ n = 1 → n.primeFactors = ∅

tactic: contrapose!
state_before: case mp
a b k m n p : ℕ
⊢ n.primeFactors = ∅ → n = 0 ∨ n = 1
state_after: case mp
a b k m n p : ℕ
⊢ n ≠ 0 ∧ n ≠ 1 → n.primeFactors ≠ ∅

tactic: rintro hn
state_before: case mp
a b k m n p : ℕ
⊢ n ≠ 0 ∧ n ≠ 1 → n.primeFactors ≠ ∅
state_after: case mp
a b k m n p : ℕ
hn : n ≠ 0 ∧ n ≠ 1
⊢ n.primeFactors ≠ ∅

tactic: obtain ⟨p, hp, hpn⟩ := exists_prime_and_dvd hn.2
state_before: case mp
a b k m n p : ℕ
hn : n ≠ 0 ∧ n ≠ 1
⊢ n.primeFactors ≠ ∅
state_after: case mp.intro.intro
a b k m n p✝ : ℕ
hn : n ≠ 0 ∧ n ≠ 1
p : ℕ
hp : Prime p
hpn : p ∣ n
⊢ n.primeFactors ≠ ∅

tactic: exact Nonempty.ne_empty <| ⟨_, mem_primeFactors.2 ⟨hp, hpn, hn.1⟩⟩
state_before: case mp.intro.intro
a b k m n p✝ : ℕ
hn : n ≠ 0 ∧ n ≠ 1
p : ℕ
hp : Prime p
hpn : p ∣ n
⊢ n.primeFactors ≠ ∅
state_after: no goals

tactic: rintro (rfl | rfl) <;> simp
state_before: case mpr
a b k m n p : ℕ
⊢ n = 0 ∨ n = 1 → n.primeFactors = ∅
state_after: no goals
Theorem: dense_biInter_of_Gδ
File: Mathlib/Topology/Baire/Lemmas.lean

tactic: rw [biInter_eq_iInter]
state_before: X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
S : Set α
f : (x : α) → x ∈ S → Set X
ho : ∀ (s : α) (H : s ∈ S), IsGδ (f s H)
hS : S.Countable
hd : ∀ (s : α) (H : s ∈ S), Dense (f s H)
⊢ Dense (⋂ s, ⋂ (h : s ∈ S), f s h)
state_after: X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
S : Set α
f : (x : α) → x ∈ S → Set X
ho : ∀ (s : α) (H : s ∈ S), IsGδ (f s H)
hS : S.Countable
hd : ∀ (s : α) (H : s ∈ S), Dense (f s H)
⊢ Dense (⋂ x, f ↑x ⋯)

tactic: haveI := hS.to_subtype
state_before: X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
S : Set α
f : (x : α) → x ∈ S → Set X
ho : ∀ (s : α) (H : s ∈ S), IsGδ (f s H)
hS : S.Countable
hd : ∀ (s : α) (H : s ∈ S), Dense (f s H)
⊢ Dense (⋂ x, f ↑x ⋯)
state_after: X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
S : Set α
f : (x : α) → x ∈ S → Set X
ho : ∀ (s : α) (H : s ∈ S), IsGδ (f s H)
hS : S.Countable
hd : ∀ (s : α) (H : s ∈ S), Dense (f s H)
this : Countable ↑S
⊢ Dense (⋂ x, f ↑x ⋯)

tactic: exact dense_iInter_of_Gδ (fun s => ho s s.2) fun s => hd s s.2
state_before: X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
S : Set α
f : (x : α) → x ∈ S → Set X
ho : ∀ (s : α) (H : s ∈ S), IsGδ (f s H)
hS : S.Countable
hd : ∀ (s : α) (H : s ∈ S), Dense (f s H)
this : Countable ↑S
⊢ Dense (⋂ x, f ↑x ⋯)
state_after: no goals
Theorem: set_fintype_card_eq_univ_iff
File: Mathlib/Data/Fintype/Card.lean

tactic: rw [← Set.toFinset_card, Finset.card_eq_iff_eq_univ, ← Set.toFinset_univ, Set.toFinset_inj]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Fintype α
s : Set α
inst✝ : Fintype ↑s
⊢ Fintype.card ↑s = Fintype.card α ↔ s = Set.univ
state_after: no goals
Theorem: uniformity_prod_eq_prod
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: rw [map_swap4_eq_comap, uniformity_prod_eq_comap_prod]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
⊢ 𝓤 (α × β) = map (fun p => ((p.1.1, p.2.1), p.1.2, p.2.2)) (𝓤 α ×ˢ 𝓤 β)
state_after: no goals
Theorem: ContinuousLinearEquiv.image_symm_eq_preimage
File: Mathlib/Topology/Algebra/Module/Basic.lean

tactic: rw [e.symm.image_eq_preimage, e.symm_symm]
state_before: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
s : Set M₂
⊢ ⇑e.symm '' s = ⇑e ⁻¹' s
state_after: no goals
Theorem: Finset.powerset_eq_univ
File: Mathlib/Data/Fintype/Powerset.lean

tactic: rw [← Finset.powerset_univ, powerset_inj]
state_before: α : Type u_1
inst✝ : Fintype α
s : Finset α
k : ℕ
⊢ s.powerset = univ ↔ s = univ
state_after: no goals
Theorem: isLittleO_log_rpow_nhds_zero
File: Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean

tactic: simp [abs_of_nonpos (log_nonpos hx.1 hx.2)]
state_before: r : ℝ
hr : r < 0
x : ℝ
hx : x ∈ Set.Icc 0 1
⊢ x ∈ {x | (fun x => (fun x => -|log x| ^ 1) x = log x) x}
state_after: no goals
Theorem: Ordinal.natCast_mul
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: simp
state_before: m : ℕ
⊢ ↑(m * 0) = ↑m * ↑0
state_after: no goals

tactic: rw [Nat.mul_succ, Nat.cast_add, natCast_mul m n, Nat.cast_succ, mul_add_one]
state_before: m n : ℕ
⊢ ↑(m * (n + 1)) = ↑m * ↑(n + 1)
state_after: no goals
Theorem: Equiv.Perm.sign_prodExtendRight
File: Mathlib/GroupTheory/Perm/Sign.lean

tactic: simp [eq_of_prodExtendRight_ne hab]
state_before: α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Fintype α
inst✝¹ : DecidableEq β
inst✝ : Fintype β
a : α
σ : Perm β
x✝¹ : α × β
a' : α
b : β
hab : (prodExtendRight a σ) (a', b) ≠ (a', b)
x✝ : (prodExtendRight a σ) ((prodExtendRight a σ) (a', b)) ≠ (prodExtendRight a σ) (a', b)
⊢ (fun ab x => ab.2) ((prodExtendRight a σ) (a', b)) x✝ = σ ((fun ab x => ab.2) (a', b) hab)
state_after: no goals

tactic: simpa [eq_of_prodExtendRight_ne hab₁, eq_of_prodExtendRight_ne hab₂] using h
state_before: α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Fintype α
inst✝¹ : DecidableEq β
inst✝ : Fintype β
a : α
σ : Perm β
x✝¹ x✝ : α × β
a₁ : α
b₁ : β
hab₁ : (prodExtendRight a σ) (a₁, b₁) ≠ (a₁, b₁)
a₂ : α
b₂ : β
hab₂ : (prodExtendRight a σ) (a₂, b₂) ≠ (a₂, b₂)
h : (fun ab x => ab.2) (a₁, b₁) hab₁ = (fun ab x => ab.2) (a₂, b₂) hab₂
⊢ (a₁, b₁) = (a₂, b₂)
state_after: no goals

tactic: simpa
state_before: α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Fintype α
inst✝¹ : DecidableEq β
inst✝ : Fintype β
a : α
σ : Perm β
y : β
hy : σ y ≠ y
⊢ (prodExtendRight a σ) (a, y) ≠ (a, y)
state_after: no goals

tactic: simp
state_before: α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Fintype α
inst✝¹ : DecidableEq β
inst✝ : Fintype β
a : α
σ : Perm β
y : β
hy : σ y ≠ y
⊢ (fun ab x => ab.2) (a, y) ⋯ = y
state_after: no goals
Theorem: dist_mul_self_left
File: Mathlib/Analysis/Normed/Group/Uniform.lean

tactic: rw [dist_comm, dist_mul_self_right]
state_before: 𝓕 : Type u_1
α : Type u_2
E : Type u_3
F : Type u_4
inst✝¹ : SeminormedGroup E
inst✝ : SeminormedGroup F
s : Set E
a✝ a₁ a₂ b✝ b₁ b₂ : E
r r₁ r₂ : ℝ
a b : E
⊢ dist (a * b) b = ‖a‖
state_after: no goals
Theorem: Finset.forall_disjSups_iff
File: Mathlib/Data/Finset/Sups.lean

tactic: simp_rw [mem_disjSups]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : DecidableEq α
inst✝³ : DecidableEq β
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a b c : α
p : α → Prop
⊢ (∀ c ∈ s ○ t, p c) ↔ ∀ a ∈ s, ∀ b ∈ t, Disjoint a b → p (a ⊔ b)
state_after: F : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : DecidableEq α
inst✝³ : DecidableEq β
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a b c : α
p : α → Prop
⊢ (∀ (c : α), (∃ a ∈ s, ∃ b ∈ t, Disjoint a b ∧ a ⊔ b = c) → p c) ↔ ∀ a ∈ s, ∀ b ∈ t, Disjoint a b → p (a ⊔ b)

tactic: refine ⟨fun h a ha b hb hab => h _ ⟨_, ha, _, hb, hab, rfl⟩, ?_⟩
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : DecidableEq α
inst✝³ : DecidableEq β
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a b c : α
p : α → Prop
⊢ (∀ (c : α), (∃ a ∈ s, ∃ b ∈ t, Disjoint a b ∧ a ⊔ b = c) → p c) ↔ ∀ a ∈ s, ∀ b ∈ t, Disjoint a b → p (a ⊔ b)
state_after: F : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : DecidableEq α
inst✝³ : DecidableEq β
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a b c : α
p : α → Prop
⊢ (∀ a ∈ s, ∀ b ∈ t, Disjoint a b → p (a ⊔ b)) → ∀ (c : α), (∃ a ∈ s, ∃ b ∈ t, Disjoint a b ∧ a ⊔ b = c) → p c

tactic: rintro h _ ⟨a, ha, b, hb, hab, rfl⟩
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : DecidableEq α
inst✝³ : DecidableEq β
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a b c : α
p : α → Prop
⊢ (∀ a ∈ s, ∀ b ∈ t, Disjoint a b → p (a ⊔ b)) → ∀ (c : α), (∃ a ∈ s, ∃ b ∈ t, Disjoint a b ∧ a ⊔ b = c) → p c
state_after: case intro.intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : DecidableEq α
inst✝³ : DecidableEq β
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a✝ b✝ c : α
p : α → Prop
h : ∀ a ∈ s, ∀ b ∈ t, Disjoint a b → p (a ⊔ b)
a : α
ha : a ∈ s
b : α
hb : b ∈ t
hab : Disjoint a b
⊢ p (a ⊔ b)

tactic: exact h _ ha _ hb hab
state_before: case intro.intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : DecidableEq α
inst✝³ : DecidableEq β
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a✝ b✝ c : α
p : α → Prop
h : ∀ a ∈ s, ∀ b ∈ t, Disjoint a b → p (a ⊔ b)
a : α
ha : a ∈ s
b : α
hb : b ∈ t
hab : Disjoint a b
⊢ p (a ⊔ b)
state_after: no goals
Theorem: SimpleGraph.fromEdgeSet_union
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: ext v w
state_before: ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v w : V
e : Sym2 V
s✝ s t : Set (Sym2 V)
⊢ fromEdgeSet (s ∪ t) = fromEdgeSet s ⊔ fromEdgeSet t
state_after: case Adj.h.h.a
ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
s✝ s t : Set (Sym2 V)
v w : V
⊢ (fromEdgeSet (s ∪ t)).Adj v w ↔ (fromEdgeSet s ⊔ fromEdgeSet t).Adj v w

tactic: simp [Set.mem_union, or_and_right]
state_before: case Adj.h.h.a
ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
s✝ s t : Set (Sym2 V)
v w : V
⊢ (fromEdgeSet (s ∪ t)).Adj v w ↔ (fromEdgeSet s ⊔ fromEdgeSet t).Adj v w
state_after: no goals
Theorem: Orientation.rightAngleRotationAux₁_rightAngleRotationAux₁
File: Mathlib/Analysis/InnerProductSpace/TwoDim.lean

tactic: apply ext_inner_left ℝ
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x : E
⊢ o.rightAngleRotationAux₁ (o.rightAngleRotationAux₁ x) = -x
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x : E
⊢ ∀ (v : E), ⟪v, o.rightAngleRotationAux₁ (o.rightAngleRotationAux₁ x)⟫_ℝ = ⟪v, -x⟫_ℝ

tactic: intro y
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x : E
⊢ ∀ (v : E), ⟪v, o.rightAngleRotationAux₁ (o.rightAngleRotationAux₁ x)⟫_ℝ = ⟪v, -x⟫_ℝ
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ ⟪y, o.rightAngleRotationAux₁ (o.rightAngleRotationAux₁ x)⟫_ℝ = ⟪y, -x⟫_ℝ

tactic: have : ⟪o.rightAngleRotationAux₁ y, o.rightAngleRotationAux₁ x⟫ = ⟪y, x⟫ :=
  LinearIsometry.inner_map_map o.rightAngleRotationAux₂ y x
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ ⟪y, o.rightAngleRotationAux₁ (o.rightAngleRotationAux₁ x)⟫_ℝ = ⟪y, -x⟫_ℝ
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
this : ⟪o.rightAngleRotationAux₁ y, o.rightAngleRotationAux₁ x⟫_ℝ = ⟪y, x⟫_ℝ
⊢ ⟪y, o.rightAngleRotationAux₁ (o.rightAngleRotationAux₁ x)⟫_ℝ = ⟪y, -x⟫_ℝ

tactic: rw [o.inner_rightAngleRotationAux₁_right, ← o.inner_rightAngleRotationAux₁_left, this,
  inner_neg_right]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
this : ⟪o.rightAngleRotationAux₁ y, o.rightAngleRotationAux₁ x⟫_ℝ = ⟪y, x⟫_ℝ
⊢ ⟪y, o.rightAngleRotationAux₁ (o.rightAngleRotationAux₁ x)⟫_ℝ = ⟪y, -x⟫_ℝ
state_after: no goals
Theorem: LightProfinite.pullback.hom_ext
File: Mathlib/Topology/Category/LightProfinite/Limits.lean

tactic: ext z
state_before: X Y B : LightProfinite
f : X ⟶ B
g : Y ⟶ B
Z : LightProfinite
a b : Z ⟶ pullback f g
hfst : a ≫ fst f g = b ≫ fst f g
hsnd : a ≫ snd f g = b ≫ snd f g
⊢ a = b
state_after: case w
X Y B : LightProfinite
f : X ⟶ B
g : Y ⟶ B
Z : LightProfinite
a b : Z ⟶ pullback f g
hfst : a ≫ fst f g = b ≫ fst f g
hsnd : a ≫ snd f g = b ≫ snd f g
z : (forget LightProfinite).obj Z
⊢ a z = b z

tactic: apply Subtype.ext
state_before: case w
X Y B : LightProfinite
f : X ⟶ B
g : Y ⟶ B
Z : LightProfinite
a b : Z ⟶ pullback f g
z : (forget LightProfinite).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ a z = b z
state_after: case w.a
X Y B : LightProfinite
f : X ⟶ B
g : Y ⟶ B
Z : LightProfinite
a b : Z ⟶ pullback f g
z : (forget LightProfinite).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ ↑(a z) = ↑(b z)

tactic: apply Prod.ext
state_before: case w.a
X Y B : LightProfinite
f : X ⟶ B
g : Y ⟶ B
Z : LightProfinite
a b : Z ⟶ pullback f g
z : (forget LightProfinite).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ ↑(a z) = ↑(b z)
state_after: case w.a.a
X Y B : LightProfinite
f : X ⟶ B
g : Y ⟶ B
Z : LightProfinite
a b : Z ⟶ pullback f g
z : (forget LightProfinite).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ (↑(a z)).1 = (↑(b z)).1

case w.a.a
X Y B : LightProfinite
f : X ⟶ B
g : Y ⟶ B
Z : LightProfinite
a b : Z ⟶ pullback f g
z : (forget LightProfinite).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ (↑(a z)).2 = (↑(b z)).2

tactic: exact hfst
state_before: case w.a.a
X Y B : LightProfinite
f : X ⟶ B
g : Y ⟶ B
Z : LightProfinite
a b : Z ⟶ pullback f g
z : (forget LightProfinite).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ (↑(a z)).1 = (↑(b z)).1
state_after: no goals

tactic: exact hsnd
state_before: case w.a.a
X Y B : LightProfinite
f : X ⟶ B
g : Y ⟶ B
Z : LightProfinite
a b : Z ⟶ pullback f g
z : (forget LightProfinite).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ (↑(a z)).2 = (↑(b z)).2
state_after: no goals
Theorem: OrthonormalBasis.span_apply
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: simp only [OrthonormalBasis.span, Basis.span_apply, LinearIsometryEquiv.ofEq_symm,
  OrthonormalBasis.map_apply, OrthonormalBasis.coe_mk, LinearIsometryEquiv.coe_ofEq_apply,
  comp_apply]
state_before: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝¹⁰ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
F' : Type u_7
inst✝³ : NormedAddCommGroup F'
inst✝² : InnerProductSpace ℝ F'
inst✝¹ : Fintype ι
v : ι → E
inst✝ : DecidableEq E
v' : ι' → E
h : Orthonormal 𝕜 v'
s : Finset ι'
i : { x // x ∈ s }
⊢ ↑((OrthonormalBasis.span h s) i) = v' ↑i
state_after: no goals
Theorem: Cardinal.powerlt_le
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [powerlt, ciSup_le_iff']
state_before: α β : Type u
c✝ : Cardinal.{?u.248058}
a b c : Cardinal.{u}
⊢ a ^< b ≤ c ↔ ∀ x < b, a ^ x ≤ c
state_after: α β : Type u
c✝ : Cardinal.{?u.248058}
a b c : Cardinal.{u}
⊢ (∀ (i : ↑(Iio b)), a ^ ↑i ≤ c) ↔ ∀ x < b, a ^ x ≤ c

case h
α β : Type u
c✝ : Cardinal.{?u.248058}
a b c : Cardinal.{u}
⊢ BddAbove (range fun c => a ^ ↑c)

tactic: simp
state_before: α β : Type u
c✝ : Cardinal.{?u.248058}
a b c : Cardinal.{u}
⊢ (∀ (i : ↑(Iio b)), a ^ ↑i ≤ c) ↔ ∀ x < b, a ^ x ≤ c
state_after: no goals

tactic: rw [← image_eq_range]
state_before: case h
α β : Type u
c✝ : Cardinal.{?u.248058}
a b c : Cardinal.{u}
⊢ BddAbove (range fun c => a ^ ↑c)
state_after: case h
α β : Type u
c✝ : Cardinal.{?u.248058}
a b c : Cardinal.{u}
⊢ BddAbove (HPow.hPow a '' Iio b)

tactic: exact bddAbove_image.{u, u} _ bddAbove_Iio
state_before: case h
α β : Type u
c✝ : Cardinal.{?u.248058}
a b c : Cardinal.{u}
⊢ BddAbove (HPow.hPow a '' Iio b)
state_after: no goals
Theorem: Real.exp_sub_sum_range_isBigO_pow
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

tactic: have := (Complex.exp_sub_sum_range_isBigO_pow n).comp_tendsto
  (Complex.continuous_ofReal.tendsto' 0 0 rfl)
state_before: n : ℕ
⊢ (fun x => rexp x - ∑ i ∈ Finset.range n, x ^ i / ↑i !) =O[𝓝 0] fun x => x ^ n
state_after: n : ℕ
this :
  ((fun x => Complex.exp x - ∑ i ∈ Finset.range n, x ^ i / ↑i !) ∘ Complex.ofReal') =O[𝓝 0]
    ((fun x => x ^ n) ∘ Complex.ofReal')
⊢ (fun x => rexp x - ∑ i ∈ Finset.range n, x ^ i / ↑i !) =O[𝓝 0] fun x => x ^ n

tactic: norm_cast at this
state_before: n : ℕ
this : (fun x => Complex.exp ↑x - ∑ i ∈ Finset.range n, ↑x ^ i / ↑i !) =O[𝓝 0] fun x => ↑x ^ n
⊢ (fun x => rexp x - ∑ i ∈ Finset.range n, x ^ i / ↑i !) =O[𝓝 0] fun x => x ^ n
state_after: no goals