1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: AddMonoidAlgebra.infDegree_withTop_some_comp
File: Mathlib/Algebra/MonoidAlgebra/Degree.lean

tactic: unfold AddMonoidAlgebra.infDegree
state_before: R : Type u_1
R' : Type u_2
A : Type u_3
T : Type u_4
B : Type u_5
ι : Type u_6
inst✝⁵ : Semiring R
inst✝⁴ : Ring R'
inst✝³ : AddZeroClass A
inst✝² : SemilatticeInf T
inst✝¹ : Add T
inst✝ : OrderTop T
D : A → T
s : R[A]
hs : s.support.Nonempty
⊢ infDegree (WithTop.some ∘ D) s = ↑(infDegree D s)
state_after: R : Type u_1
R' : Type u_2
A : Type u_3
T : Type u_4
B : Type u_5
ι : Type u_6
inst✝⁵ : Semiring R
inst✝⁴ : Ring R'
inst✝³ : AddZeroClass A
inst✝² : SemilatticeInf T
inst✝¹ : Add T
inst✝ : OrderTop T
D : A → T
s : R[A]
hs : s.support.Nonempty
⊢ s.support.inf (WithTop.some ∘ D) = ↑(s.support.inf D)

tactic: rw [← Finset.coe_inf' hs, Finset.inf'_eq_inf]
state_before: R : Type u_1
R' : Type u_2
A : Type u_3
T : Type u_4
B : Type u_5
ι : Type u_6
inst✝⁵ : Semiring R
inst✝⁴ : Ring R'
inst✝³ : AddZeroClass A
inst✝² : SemilatticeInf T
inst✝¹ : Add T
inst✝ : OrderTop T
D : A → T
s : R[A]
hs : s.support.Nonempty
⊢ s.support.inf (WithTop.some ∘ D) = ↑(s.support.inf D)
state_after: no goals
Theorem: Tuple.monotone_sort
File: Mathlib/Data/Fin/Tuple/Sort.lean

tactic: rw [self_comp_sort]
state_before: n : ℕ
α : Type u_1
inst✝ : LinearOrder α
f : Fin n → α
⊢ Monotone (f ∘ ⇑(sort f))
state_after: n : ℕ
α : Type u_1
inst✝ : LinearOrder α
f : Fin n → α
⊢ Monotone (graph.proj ∘ ⇑(graphEquiv₂ f))

tactic: exact (monotone_proj f).comp (graphEquiv₂ f).monotone
state_before: n : ℕ
α : Type u_1
inst✝ : LinearOrder α
f : Fin n → α
⊢ Monotone (graph.proj ∘ ⇑(graphEquiv₂ f))
state_after: no goals
Theorem: SimpleGraph.Subgraph.iSup_adj
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: simp [iSup]
state_before: ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : G.Subgraph
a b : V
f : ι → G.Subgraph
⊢ (⨆ i, f i).Adj a b ↔ ∃ i, (f i).Adj a b
state_after: no goals
Theorem: Cardinal.lift_ord
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: refine le_antisymm (le_of_forall_lt fun a ha => ?_) ?_
state_before: α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
c : Cardinal.{v}
⊢ Ordinal.lift.{u, v} c.ord = (lift.{u, v} c).ord
state_after: case refine_1
α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
c : Cardinal.{v}
a : Ordinal.{max v u}
ha : a < Ordinal.lift.{u, v} c.ord
⊢ a < (lift.{u, v} c).ord

case refine_2
α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
c : Cardinal.{v}
⊢ (lift.{u, v} c).ord ≤ Ordinal.lift.{u, v} c.ord

tactic: rcases Ordinal.lt_lift_iff.1 ha with ⟨a, rfl, _⟩
state_before: case refine_1
α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
c : Cardinal.{v}
a : Ordinal.{max v u}
ha : a < Ordinal.lift.{u, v} c.ord
⊢ a < (lift.{u, v} c).ord
state_after: case refine_1.intro.intro
α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
c : Cardinal.{v}
a : Ordinal.{v}
right✝ : a < c.ord
ha : Ordinal.lift.{u, v} a < Ordinal.lift.{u, v} c.ord
⊢ Ordinal.lift.{u, v} a < (lift.{u, v} c).ord

tactic: rwa [lt_ord, ← lift_card, lift_lt, ← lt_ord, ← Ordinal.lift_lt]
state_before: case refine_1.intro.intro
α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
c : Cardinal.{v}
a : Ordinal.{v}
right✝ : a < c.ord
ha : Ordinal.lift.{u, v} a < Ordinal.lift.{u, v} c.ord
⊢ Ordinal.lift.{u, v} a < (lift.{u, v} c).ord
state_after: no goals

tactic: rw [ord_le, ← lift_card, card_ord]
state_before: case refine_2
α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
c : Cardinal.{v}
⊢ (lift.{u, v} c).ord ≤ Ordinal.lift.{u, v} c.ord
state_after: no goals
Theorem: Int.lt_toNat
File: Mathlib/Data/Int/Defs.lean

tactic: rw [← Int.not_le, ← Nat.not_le, toNat_le]
state_before: a b c d m✝ n : ℤ
m : ℕ
⊢ m < n.toNat ↔ ↑m < n
state_after: no goals
Theorem: Polynomial.roots_prod
File: Mathlib/Algebra/Polynomial/Roots.lean

tactic: rcases s with ⟨m, hm⟩
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]
ι : Type u_1
f : ι → R[X]
s : Finset ι
⊢ s.prod f ≠ 0 → (s.prod f).roots = s.val.bind fun i => (f i).roots
state_after: case mk
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q : R[X]
ι : Type u_1
f : ι → R[X]
m : Multiset ι
hm : m.Nodup
⊢ { val := m, nodup := hm }.prod f ≠ 0 →
    ({ val := m, nodup := hm }.prod f).roots = { val := m, nodup := hm }.val.bind fun i => (f i).roots

tactic: simpa [Multiset.prod_eq_zero_iff, Multiset.bind_map] using roots_multiset_prod (m.map f)
state_before: case mk
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q : R[X]
ι : Type u_1
f : ι → R[X]
m : Multiset ι
hm : m.Nodup
⊢ { val := m, nodup := hm }.prod f ≠ 0 →
    ({ val := m, nodup := hm }.prod f).roots = { val := m, nodup := hm }.val.bind fun i => (f i).roots
state_after: no goals
Theorem: spectrum.map_pow_of_pos
File: Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean

tactic: simpa only [aeval_X_pow, eval_pow, eval_X]
  using map_polynomial_aeval_of_degree_pos a (X ^ n : 𝕜[X]) (by rwa [degree_X_pow, Nat.cast_pos])
state_before: 𝕜 : Type u
A : Type v
inst✝³ : Field 𝕜
inst✝² : Ring A
inst✝¹ : Algebra 𝕜 A
inst✝ : IsAlgClosed 𝕜
a : A
n : ℕ
hn : 0 < n
⊢ σ (a ^ n) = (fun x => x ^ n) '' σ a
state_after: no goals

tactic: rwa [degree_X_pow, Nat.cast_pos]
state_before: 𝕜 : Type u
A : Type v
inst✝³ : Field 𝕜
inst✝² : Ring A
inst✝¹ : Algebra 𝕜 A
inst✝ : IsAlgClosed 𝕜
a : A
n : ℕ
hn : 0 < n
⊢ 0 < (X ^ n).degree
state_after: no goals
Theorem: WithBot.le_bot_iff
File: Mathlib/Order/WithBot.lean

tactic: simp [not_coe_le_bot _]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a✝ b : α
inst✝ : LE α
a : α
⊢ ↑a ≤ ⊥ ↔ ↑a = ⊥
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a b : α
inst✝ : LE α
⊢ ⊥ ≤ ⊥ ↔ ⊥ = ⊥
state_after: no goals
Theorem: NormedAddGroupHom.zero_comp
File: Mathlib/Analysis/Normed/Group/Hom.lean

tactic: ext
state_before: V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f✝ g f : NormedAddGroupHom V₁ V₂
⊢ NormedAddGroupHom.comp 0 f = 0
state_after: case H
V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f✝ g f : NormedAddGroupHom V₁ V₂
x✝ : V₁
⊢ (NormedAddGroupHom.comp 0 f) x✝ = 0 x✝

tactic: rfl
state_before: case H
V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f✝ g f : NormedAddGroupHom V₁ V₂
x✝ : V₁
⊢ (NormedAddGroupHom.comp 0 f) x✝ = 0 x✝
state_after: no goals
Theorem: IsAdjoinRoot.aequiv_map
File: Mathlib/RingTheory/IsAdjoinRoot.lean

tactic: rw [aequiv, AlgEquiv.coe_mk, liftHom_map, aeval_eq]
state_before: R : Type u
S : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing S
inst✝² : Algebra R S
f : R[X]
T : Type u_1
inst✝¹ : CommRing T
inst✝ : Algebra R T
h : IsAdjoinRoot S f
h' : IsAdjoinRoot T f
z : R[X]
⊢ (h.aequiv h') (h.map z) = h'.map z
state_after: no goals
Theorem: Batteries.RBNode.toStream_toList
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: simp [toStream_toList']
state_before: α : Type u_1
t : RBNode α
⊢ t.toStream.toList = t.toList
state_after: no goals
Theorem: List.map_permutations
File: Mathlib/Data/List/Permutation.lean

tactic: rw [permutations, permutations, map, map_permutationsAux, map]
state_before: α : Type u_1
β : Type u_2
f : α → β
ts : List α
⊢ map (map f) ts.permutations = (map f ts).permutations
state_after: no goals
Theorem: symmDiff_eq_left
File: Mathlib/Order/SymmDiff.lean

tactic: rw [symmDiff_bot]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedBooleanAlgebra α
a b c d : α
⊢ a ∆ b = a ↔ a ∆ b = a ∆ ⊥
state_after: no goals

tactic: rw [symmDiff_right_inj]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedBooleanAlgebra α
a b c d : α
⊢ a ∆ b = a ∆ ⊥ ↔ b = ⊥
state_after: no goals
Theorem: Odd.neg_zpow
File: Mathlib/Algebra/Field/Power.lean

tactic: have hn : n ≠ 0 := by rintro rfl; exact Int.odd_iff_not_even.1 h even_zero
state_before: α : Type u_1
inst✝ : DivisionRing α
n : ℤ
h : Odd n
a : α
⊢ (-a) ^ n = -a ^ n
state_after: α : Type u_1
inst✝ : DivisionRing α
n : ℤ
h : Odd n
a : α
hn : n ≠ 0
⊢ (-a) ^ n = -a ^ n

tactic: obtain ⟨k, rfl⟩ := h
state_before: α : Type u_1
inst✝ : DivisionRing α
n : ℤ
h : Odd n
a : α
hn : n ≠ 0
⊢ (-a) ^ n = -a ^ n
state_after: case intro
α : Type u_1
inst✝ : DivisionRing α
a : α
k : ℤ
hn : 2 * k + 1 ≠ 0
⊢ (-a) ^ (2 * k + 1) = -a ^ (2 * k + 1)

tactic: simp_rw [zpow_add' (.inr (.inl hn)), zpow_one, zpow_mul, zpow_two, neg_mul_neg,
  neg_mul_eq_mul_neg]
state_before: case intro
α : Type u_1
inst✝ : DivisionRing α
a : α
k : ℤ
hn : 2 * k + 1 ≠ 0
⊢ (-a) ^ (2 * k + 1) = -a ^ (2 * k + 1)
state_after: no goals

tactic: rintro rfl
state_before: α : Type u_1
inst✝ : DivisionRing α
n : ℤ
h : Odd n
a : α
⊢ n ≠ 0
state_after: α : Type u_1
inst✝ : DivisionRing α
a : α
h : Odd 0
⊢ False

tactic: exact Int.odd_iff_not_even.1 h even_zero
state_before: α : Type u_1
inst✝ : DivisionRing α
a : α
h : Odd 0
⊢ False
state_after: no goals
Theorem: Multiset.coe_sigma
File: Mathlib/Data/Multiset/Bind.lean

tactic: rw [Multiset.sigma, List.sigma, ← coe_bind]
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
σ : α → Type u_4
a : α
s : Multiset α
t : (a : α) → Multiset (σ a)
l₁ : List α
l₂ : (a : α) → List (σ a)
⊢ ((↑l₁).sigma fun a => ↑(l₂ a)) = ↑(l₁.sigma l₂)
state_after: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
σ : α → Type u_4
a : α
s : Multiset α
t : (a : α) → Multiset (σ a)
l₁ : List α
l₂ : (a : α) → List (σ a)
⊢ ((↑l₁).bind fun a => map (Sigma.mk a) ↑(l₂ a)) = (↑l₁).bind fun a => ↑(List.map (Sigma.mk a) (l₂ a))

tactic: simp
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
σ : α → Type u_4
a : α
s : Multiset α
t : (a : α) → Multiset (σ a)
l₁ : List α
l₂ : (a : α) → List (σ a)
⊢ ((↑l₁).bind fun a => map (Sigma.mk a) ↑(l₂ a)) = (↑l₁).bind fun a => ↑(List.map (Sigma.mk a) (l₂ a))
state_after: no goals
Theorem: Nat.count_succ
File: Mathlib/Data/Nat/Count.lean

tactic: split_ifs with h <;> simp [count, List.range_succ, h]
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
⊢ count p (n + 1) = count p n + if p n then 1 else 0
state_after: no goals
Theorem: LieModule.exists_weightSpace_zero_le_ker_of_isNoetherian
File: Mathlib/Algebra/Lie/Weights/Basic.lean

tactic: simpa using exists_weightSpace_le_ker_of_isNoetherian M (0 : L → R) x
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : LieRing L
inst✝⁶ : LieAlgebra R L
inst✝⁵ : LieAlgebra.IsNilpotent R L
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : IsNoetherian R M
x : L
⊢ ∃ k, ↑(weightSpace M 0) ≤ LinearMap.ker ((toEnd R L M) x ^ k)
state_after: no goals
Theorem: Set.preimage_boolIndicator_eq_union
File: Mathlib/Data/Set/BoolIndicator.lean

tactic: ext x
state_before: α : Type u_1
s : Set α
t : Set Bool
⊢ s.boolIndicator ⁻¹' t = (if true ∈ t then s else ∅) ∪ if false ∈ t then sᶜ else ∅
state_after: case h
α : Type u_1
s : Set α
t : Set Bool
x : α
⊢ x ∈ s.boolIndicator ⁻¹' t ↔ x ∈ (if true ∈ t then s else ∅) ∪ if false ∈ t then sᶜ else ∅

tactic: simp only [boolIndicator, mem_preimage]
state_before: case h
α : Type u_1
s : Set α
t : Set Bool
x : α
⊢ x ∈ s.boolIndicator ⁻¹' t ↔ x ∈ (if true ∈ t then s else ∅) ∪ if false ∈ t then sᶜ else ∅
state_after: case h
α : Type u_1
s : Set α
t : Set Bool
x : α
⊢ (if x ∈ s then true else false) ∈ t ↔ x ∈ (if true ∈ t then s else ∅) ∪ if false ∈ t then sᶜ else ∅

tactic: split_ifs <;> simp [*]
state_before: case h
α : Type u_1
s : Set α
t : Set Bool
x : α
⊢ (if x ∈ s then true else false) ∈ t ↔ x ∈ (if true ∈ t then s else ∅) ∪ if false ∈ t then sᶜ else ∅
state_after: no goals
Theorem: Polynomial.mirror_zero
File: Mathlib/Algebra/Polynomial/Mirror.lean

tactic: simp [mirror]
state_before: R : Type u_1
inst✝ : Semiring R
p q : R[X]
⊢ mirror 0 = 0
state_after: no goals
Theorem: Nat.squarefree_of_factorization_le_one
File: Mathlib/Data/Nat/Squarefree.lean

tactic: rw [squarefree_iff_nodup_factors hn, List.nodup_iff_count_le_one]
state_before: s : Finset ℕ
m n✝ p n : ℕ
hn : n ≠ 0
hn' : ∀ (p : ℕ), n.factorization p ≤ 1
⊢ Squarefree n
state_after: s : Finset ℕ
m n✝ p n : ℕ
hn : n ≠ 0
hn' : ∀ (p : ℕ), n.factorization p ≤ 1
⊢ ∀ (a : ℕ), List.count a n.factors ≤ 1

tactic: intro a
state_before: s : Finset ℕ
m n✝ p n : ℕ
hn : n ≠ 0
hn' : ∀ (p : ℕ), n.factorization p ≤ 1
⊢ ∀ (a : ℕ), List.count a n.factors ≤ 1
state_after: s : Finset ℕ
m n✝ p n : ℕ
hn : n ≠ 0
hn' : ∀ (p : ℕ), n.factorization p ≤ 1
a : ℕ
⊢ List.count a n.factors ≤ 1

tactic: rw [factors_count_eq]
state_before: s : Finset ℕ
m n✝ p n : ℕ
hn : n ≠ 0
hn' : ∀ (p : ℕ), n.factorization p ≤ 1
a : ℕ
⊢ List.count a n.factors ≤ 1
state_after: s : Finset ℕ
m n✝ p n : ℕ
hn : n ≠ 0
hn' : ∀ (p : ℕ), n.factorization p ≤ 1
a : ℕ
⊢ n.factorization a ≤ 1

tactic: apply hn'
state_before: s : Finset ℕ
m n✝ p n : ℕ
hn : n ≠ 0
hn' : ∀ (p : ℕ), n.factorization p ≤ 1
a : ℕ
⊢ n.factorization a ≤ 1
state_after: no goals
Theorem: Set.Finite.toFinset_eq_toFinset
File: Mathlib/Data/Set/Finite.lean

tactic: have : h.fintype = ‹_› := Subsingleton.elim _ _
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
inst✝ : Fintype ↑s
h : s.Finite
⊢ h.toFinset = s.toFinset
state_after: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
inst✝ : Fintype ↑s
h : s.Finite
this : h.fintype = inst✝
⊢ h.toFinset = s.toFinset

tactic: rw [Finite.toFinset, this]
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
inst✝ : Fintype ↑s
h : s.Finite
this : h.fintype = inst✝
⊢ h.toFinset = s.toFinset
state_after: no goals
Theorem: CategoryTheory.OverPresheafAux.counitBackward_counitForward
File: Mathlib/CategoryTheory/Comma/Presheaf.lean

tactic: simp [counitBackward]
state_before: C : Type u
inst✝ : Category.{v, u} C
A : Cᵒᵖ ⥤ Type v
F✝ : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
X : C
F : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
s : CostructuredArrow yoneda A
x : F.obj { unop := s }
⊢ (counitBackward F s ∘ counitForward F s) x = id x
state_after: no goals
Theorem: gramSchmidtOrthonormalBasis_inv_triangular
File: Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean

tactic: by_cases hi : gramSchmidtNormed 𝕜 f j = 0
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁷ : RCLike 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
ι : Type u_3
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
⊢ ⟪(gramSchmidtOrthonormalBasis h f) j, f i⟫_𝕜 = 0
state_after: case pos
𝕜 : Type u_1
E : Type u_2
inst✝⁷ : RCLike 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
ι : Type u_3
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
⊢ ⟪(gramSchmidtOrthonormalBasis h f) j, f i⟫_𝕜 = 0

case neg
𝕜 : Type u_1
E : Type u_2
inst✝⁷ : RCLike 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
ι : Type u_3
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
⊢ ⟪(gramSchmidtOrthonormalBasis h f) j, f i⟫_𝕜 = 0

tactic: rw [inner_gramSchmidtOrthonormalBasis_eq_zero h hi]
state_before: case pos
𝕜 : Type u_1
E : Type u_2
inst✝⁷ : RCLike 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
ι : Type u_3
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
⊢ ⟪(gramSchmidtOrthonormalBasis h f) j, f i⟫_𝕜 = 0
state_after: no goals

tactic: simp [gramSchmidtOrthonormalBasis_apply h hi, gramSchmidtNormed, inner_smul_left,
  gramSchmidt_inv_triangular 𝕜 f hij]
state_before: case neg
𝕜 : Type u_1
E : Type u_2
inst✝⁷ : RCLike 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : InnerProductSpace 𝕜 E
ι : Type u_3
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
⊢ ⟪(gramSchmidtOrthonormalBasis h f) j, f i⟫_𝕜 = 0
state_after: no goals
Theorem: Submonoid.LocalizationMap.mk'_eq_of_eq'
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: simpa only [mul_comm] using H
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
a₁ b₁ : M
a₂ b₂ : ↥S
H : b₁ * ↑a₂ = a₁ * ↑b₂
⊢ ↑a₂ * b₁ = ↑b₂ * a₁
state_after: no goals
Theorem: inf_eq_minDefault
File: Mathlib/Order/Lattice.lean

tactic: ext x y
state_before: α : Type u
β : Type v
inst✝² : SemilatticeInf α
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
inst✝ : IsTotal α fun x x_1 => x ≤ x_1
⊢ (fun x x_1 => x ⊓ x_1) = minDefault
state_after: case h.h
α : Type u
β : Type v
inst✝² : SemilatticeInf α
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
inst✝ : IsTotal α fun x x_1 => x ≤ x_1
x y : α
⊢ x ⊓ y = minDefault x y

tactic: unfold minDefault
state_before: case h.h
α : Type u
β : Type v
inst✝² : SemilatticeInf α
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
inst✝ : IsTotal α fun x x_1 => x ≤ x_1
x y : α
⊢ x ⊓ y = minDefault x y
state_after: case h.h
α : Type u
β : Type v
inst✝² : SemilatticeInf α
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
inst✝ : IsTotal α fun x x_1 => x ≤ x_1
x y : α
⊢ x ⊓ y = if x ≤ y then x else y

tactic: split_ifs with h'
state_before: case h.h
α : Type u
β : Type v
inst✝² : SemilatticeInf α
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
inst✝ : IsTotal α fun x x_1 => x ≤ x_1
x y : α
⊢ x ⊓ y = if x ≤ y then x else y
state_after: case pos
α : Type u
β : Type v
inst✝² : SemilatticeInf α
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
inst✝ : IsTotal α fun x x_1 => x ≤ x_1
x y : α
h' : x ≤ y
⊢ x ⊓ y = x

case neg
α : Type u
β : Type v
inst✝² : SemilatticeInf α
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
inst✝ : IsTotal α fun x x_1 => x ≤ x_1
x y : α
h' : ¬x ≤ y
⊢ x ⊓ y = y
Theorem: CategoryTheory.Adjunction.rightAdjointUniq_trans_app
File: Mathlib/CategoryTheory/Adjunction/Unique.lean

tactic: rw [← rightAdjointUniq_trans adj1 adj2 adj3]
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
adj3 : F ⊣ G''
x : D
⊢ (adj1.rightAdjointUniq adj2).hom.app x ≫ (adj2.rightAdjointUniq adj3).hom.app x =
    (adj1.rightAdjointUniq adj3).hom.app x
state_after: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
adj3 : F ⊣ G''
x : D
⊢ (adj1.rightAdjointUniq adj2).hom.app x ≫ (adj2.rightAdjointUniq adj3).hom.app x =
    ((adj1.rightAdjointUniq adj2).hom ≫ (adj2.rightAdjointUniq adj3).hom).app x

tactic: rfl
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
adj3 : F ⊣ G''
x : D
⊢ (adj1.rightAdjointUniq adj2).hom.app x ≫ (adj2.rightAdjointUniq adj3).hom.app x =
    ((adj1.rightAdjointUniq adj2).hom ≫ (adj2.rightAdjointUniq adj3).hom).app x
state_after: no goals
Theorem: Nat.pred_le_iff
File: Mathlib/Data/Nat/Defs.lean

tactic: cases m
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
⊢ m ≤ n.succ → m.pred ≤ n
state_after: case zero
a b c d n k : ℕ
p q : ℕ → Prop
⊢ 0 ≤ n.succ → pred 0 ≤ n

case succ
a b c d n k : ℕ
p q : ℕ → Prop
n✝ : ℕ
⊢ n✝ + 1 ≤ n.succ → (n✝ + 1).pred ≤ n

tactic: exacts [fun _ ↦ zero_le n, le_of_succ_le_succ]
state_before: case zero
a b c d n k : ℕ
p q : ℕ → Prop
⊢ 0 ≤ n.succ → pred 0 ≤ n

case succ
a b c d n k : ℕ
p q : ℕ → Prop
n✝ : ℕ
⊢ n✝ + 1 ≤ n.succ → (n✝ + 1).pred ≤ n
state_after: no goals
Theorem: intervalIntegrable_iff'
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rw [intervalIntegrable_iff, ← Icc_min_max, uIoc, integrableOn_Icc_iff_integrableOn_Ioc]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
f : ℝ → E
a b : ℝ
μ : Measure ℝ
inst✝ : NoAtoms μ
⊢ IntervalIntegrable f μ a b ↔ IntegrableOn f [[a, b]] μ
state_after: no goals
Theorem: Int.natAbs_lt_iff_sq_lt
File: Mathlib/Data/Int/Lemmas.lean

tactic: rw [sq, sq]
state_before: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
⊢ a.natAbs < b.natAbs ↔ a ^ 2 < b ^ 2
state_after: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
⊢ a.natAbs < b.natAbs ↔ a * a < b * b

tactic: exact natAbs_lt_iff_mul_self_lt
state_before: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
⊢ a.natAbs < b.natAbs ↔ a * a < b * b
state_after: no goals
Theorem: MeasureTheory.Measure.eq_withDensity_rnDeriv₀
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: rw [withDensity_congr_ae hf.ae_eq_mk] at hadd ⊢
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν s : Measure α
f : α → ℝ≥0∞
hf : AEMeasurable f ν
hs : s ⟂ₘ ν
hadd : μ = s + ν.withDensity f
⊢ ν.withDensity f = ν.withDensity (μ.rnDeriv ν)
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν s : Measure α
f : α → ℝ≥0∞
hf : AEMeasurable f ν
hs : s ⟂ₘ ν
hadd : μ = s + ν.withDensity (AEMeasurable.mk f hf)
⊢ ν.withDensity (AEMeasurable.mk f hf) = ν.withDensity (μ.rnDeriv ν)

tactic: exact eq_withDensity_rnDeriv hf.measurable_mk hs hadd
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν s : Measure α
f : α → ℝ≥0∞
hf : AEMeasurable f ν
hs : s ⟂ₘ ν
hadd : μ = s + ν.withDensity (AEMeasurable.mk f hf)
⊢ ν.withDensity (AEMeasurable.mk f hf) = ν.withDensity (μ.rnDeriv ν)
state_after: no goals
Theorem: Matrix.conjTranspose_one
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp [conjTranspose]
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : DecidableEq n
inst✝¹ : Semiring α
inst✝ : StarRing α
⊢ 1ᴴ = 1
state_after: no goals
Theorem: PadicInt.inv_mul
File: Mathlib/NumberTheory/Padics/PadicIntegers.lean

tactic: rw [mul_comm, mul_inv hz]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
z : ℤ_[p]
hz : ‖z‖ = 1
⊢ z.inv * z = 1
state_after: no goals