1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.scheme_toScheme
File: Mathlib/AlgebraicGeometry/OpenImmersion.lean

tactic: apply scheme_eq_of_locallyRingedSpace_eq
state_before: C : Type u
inst✝¹ : Category.{v, u} C
X✝ : PresheafedSpace CommRingCat
Y✝ : Scheme
f✝ : X✝ ⟶ Y✝.toPresheafedSpace
H : IsOpenImmersion f✝
X Y : Scheme
f : X ⟶ Y
inst✝ : AlgebraicGeometry.IsOpenImmersion f
⊢ toScheme Y f.val = X
state_after: case H
C : Type u
inst✝¹ : Category.{v, u} C
X✝ : PresheafedSpace CommRingCat
Y✝ : Scheme
f✝ : X✝ ⟶ Y✝.toPresheafedSpace
H : IsOpenImmersion f✝
X Y : Scheme
f : X ⟶ Y
inst✝ : AlgebraicGeometry.IsOpenImmersion f
⊢ (toScheme Y f.val).toLocallyRingedSpace = X.toLocallyRingedSpace

tactic: exact locallyRingedSpace_toLocallyRingedSpace f
state_before: case H
C : Type u
inst✝¹ : Category.{v, u} C
X✝ : PresheafedSpace CommRingCat
Y✝ : Scheme
f✝ : X✝ ⟶ Y✝.toPresheafedSpace
H : IsOpenImmersion f✝
X Y : Scheme
f : X ⟶ Y
inst✝ : AlgebraicGeometry.IsOpenImmersion f
⊢ (toScheme Y f.val).toLocallyRingedSpace = X.toLocallyRingedSpace
state_after: no goals
Theorem: MvPowerSeries.coeff_monomial
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: erw [coeff, monomial_def, LinearMap.proj_apply (i := m)]
state_before: σ : Type u_1
R : Type u_2
inst✝¹ : Semiring R
inst✝ : DecidableEq σ
m n : σ →₀ ℕ
a : R
⊢ (coeff R m) ((monomial R n) a) = if m = n then a else 0
state_after: σ : Type u_1
R : Type u_2
inst✝¹ : Semiring R
inst✝ : DecidableEq σ
m n : σ →₀ ℕ
a : R
⊢ (LinearMap.stdBasis R (fun x => R) n) a m = if m = n then a else 0

tactic: erw [LinearMap.stdBasis_apply, Function.update_apply, Pi.zero_apply]
state_before: σ : Type u_1
R : Type u_2
inst✝¹ : Semiring R
inst✝ : DecidableEq σ
m n : σ →₀ ℕ
a : R
⊢ (LinearMap.stdBasis R (fun x => R) n) a m = if m = n then a else 0
state_after: no goals
Theorem: Algebra.traceMatrix_of_matrix_mulVec
File: Mathlib/RingTheory/Trace.lean

tactic: refine AddEquiv.injective (transposeAddEquiv κ κ A) ?_
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁹ : CommRing R
inst✝¹⁸ : CommRing S
inst✝¹⁷ : CommRing T
inst✝¹⁶ : Algebra R S
inst✝¹⁵ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁴ : Field K
inst✝¹³ : Field L
inst✝¹² : Algebra K L
ι κ : Type w
inst✝¹¹ : Fintype ι
F : Type u_6
inst✝¹⁰ : Field F
inst✝⁹ : Algebra R L
inst✝⁸ : Algebra L F
inst✝⁷ : Algebra R F
inst✝⁶ : IsScalarTower R L F
A : Type u
B : Type v
C : Type z
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : CommRing C
inst✝¹ : Algebra A C
inst✝ : Fintype κ
b : κ → B
P : Matrix κ κ A
⊢ traceMatrix A (P.map ⇑(algebraMap A B) *ᵥ b) = P * traceMatrix A b * Pᵀ
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁹ : CommRing R
inst✝¹⁸ : CommRing S
inst✝¹⁷ : CommRing T
inst✝¹⁶ : Algebra R S
inst✝¹⁵ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁴ : Field K
inst✝¹³ : Field L
inst✝¹² : Algebra K L
ι κ : Type w
inst✝¹¹ : Fintype ι
F : Type u_6
inst✝¹⁰ : Field F
inst✝⁹ : Algebra R L
inst✝⁸ : Algebra L F
inst✝⁷ : Algebra R F
inst✝⁶ : IsScalarTower R L F
A : Type u
B : Type v
C : Type z
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : CommRing C
inst✝¹ : Algebra A C
inst✝ : Fintype κ
b : κ → B
P : Matrix κ κ A
⊢ (transposeAddEquiv κ κ A) (traceMatrix A (P.map ⇑(algebraMap A B) *ᵥ b)) =
    (transposeAddEquiv κ κ A) (P * traceMatrix A b * Pᵀ)

tactic: rw [transposeAddEquiv_apply, transposeAddEquiv_apply, ← vecMul_transpose, ← transpose_map,
  traceMatrix_of_matrix_vecMul, transpose_transpose]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁹ : CommRing R
inst✝¹⁸ : CommRing S
inst✝¹⁷ : CommRing T
inst✝¹⁶ : Algebra R S
inst✝¹⁵ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁴ : Field K
inst✝¹³ : Field L
inst✝¹² : Algebra K L
ι κ : Type w
inst✝¹¹ : Fintype ι
F : Type u_6
inst✝¹⁰ : Field F
inst✝⁹ : Algebra R L
inst✝⁸ : Algebra L F
inst✝⁷ : Algebra R F
inst✝⁶ : IsScalarTower R L F
A : Type u
B : Type v
C : Type z
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : CommRing C
inst✝¹ : Algebra A C
inst✝ : Fintype κ
b : κ → B
P : Matrix κ κ A
⊢ (transposeAddEquiv κ κ A) (traceMatrix A (P.map ⇑(algebraMap A B) *ᵥ b)) =
    (transposeAddEquiv κ κ A) (P * traceMatrix A b * Pᵀ)
state_after: no goals
Theorem: isClosed_induced_iff'
File: Mathlib/Topology/Order.lean

tactic: letI := t.induced f
state_before: α : Type u_1
β : Type u_2
t : TopologicalSpace β
f✝ f : α → β
s : Set α
⊢ IsClosed s ↔ ∀ (a : α), f a ∈ closure (f '' s) → a ∈ s
state_after: α : Type u_1
β : Type u_2
t : TopologicalSpace β
f✝ f : α → β
s : Set α
this : TopologicalSpace α := induced f t
⊢ IsClosed s ↔ ∀ (a : α), f a ∈ closure (f '' s) → a ∈ s

tactic: simp only [← closure_subset_iff_isClosed, subset_def, closure_induced]
state_before: α : Type u_1
β : Type u_2
t : TopologicalSpace β
f✝ f : α → β
s : Set α
this : TopologicalSpace α := induced f t
⊢ IsClosed s ↔ ∀ (a : α), f a ∈ closure (f '' s) → a ∈ s
state_after: no goals
Theorem: Finset.weightedVSubOfPoint_subtype_eq_filter
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: rw [weightedVSubOfPoint_apply, weightedVSubOfPoint_apply, ← sum_subtype_eq_sum_filter]
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
ι : Type u_4
s : Finset ι
ι₂ : Type u_5
s₂ : Finset ι₂
w : ι → k
p : ι → P
b : P
pred : ι → Prop
inst✝ : DecidablePred pred
⊢ (((Finset.subtype pred s).weightedVSubOfPoint (fun i => p ↑i) b) fun i => w ↑i) =
    ((filter pred s).weightedVSubOfPoint p b) w
state_after: no goals
Theorem: Polynomial.monomial_one_eq_iff
File: Mathlib/Algebra/Polynomial/Monomial.lean

tactic: simp_rw [← ofFinsupp_single, ofFinsupp.injEq]
state_before: R : Type u
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Nontrivial R
i j : ℕ
⊢ (monomial i) 1 = (monomial j) 1 ↔ i = j
state_after: R : Type u
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Nontrivial R
i j : ℕ
⊢ Finsupp.single i 1 = Finsupp.single j 1 ↔ i = j

tactic: exact AddMonoidAlgebra.of_injective.eq_iff
state_before: R : Type u
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Nontrivial R
i j : ℕ
⊢ Finsupp.single i 1 = Finsupp.single j 1 ↔ i = j
state_after: no goals
Theorem: Multiset.isAtom_iff
File: Mathlib/Data/Finset/Grade.lean

tactic: simp [← bot_covBy_iff, covBy_iff, eq_comm]
state_before: α : Type u_1
s t : Multiset α
a : α
⊢ IsAtom s ↔ ∃ a, s = {a}
state_after: no goals
Theorem: Polynomial.nthRoots_two_eq_zero_iff
File: Mathlib/Algebra/Polynomial/Roots.lean

tactic: simp_rw [isSquare_iff_exists_sq, eq_zero_iff_forall_not_mem, mem_nthRoots (by norm_num : 0 < 2),
  ← not_exists, eq_comm]
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]
r : R
⊢ nthRoots 2 r = 0 ↔ ¬IsSquare r
state_after: no goals

tactic: norm_num
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]
r : R
⊢ 0 < 2
state_after: no goals
Theorem: Set.univ_eq_true_false
File: Mathlib/Data/Set/Subsingleton.lean

tactic: rw [mem_insert_iff, mem_singleton_iff]
state_before: α : Type u
a : α
s t : Set α
x : Prop
⊢ x ∈ {True, False}
state_after: α : Type u
a : α
s t : Set α
x : Prop
⊢ x = True ∨ x = False

tactic: exact Classical.propComplete x
state_before: α : Type u
a : α
s t : Set α
x : Prop
⊢ x = True ∨ x = False
state_after: no goals
Theorem: Set.ncard_insert_of_mem
File: Mathlib/Data/Set/Card.lean

tactic: rw [insert_eq_of_mem h]
state_before: α : Type u_1
β : Type u_2
s t : Set α
a : α
h : a ∈ s
⊢ (insert a s).ncard = s.ncard
state_after: no goals
Theorem: Matrix.mulVec_smul_assoc
File: Mathlib/Data/Matrix/Basic.lean

tactic: ext
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✝¹ : CommSemiring α
inst✝ : Fintype n
A : Matrix m n α
b : n → α
a : α
⊢ A *ᵥ a • b = a • A *ᵥ b
state_after: case h
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✝¹ : CommSemiring α
inst✝ : Fintype n
A : Matrix m n α
b : n → α
a : α
x✝ : m
⊢ (A *ᵥ a • b) x✝ = (a • A *ᵥ b) x✝

tactic: apply dotProduct_smul
state_before: case h
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✝¹ : CommSemiring α
inst✝ : Fintype n
A : Matrix m n α
b : n → α
a : α
x✝ : m
⊢ (A *ᵥ a • b) x✝ = (a • A *ᵥ b) x✝
state_after: no goals
Theorem: Filter.map_lift'_eq
File: Mathlib/Order/Filter/Lift.lean

tactic: simp only [comp, Filter.lift', map_principal]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
f f₁ f₂ : Filter α
h h₁ h₂ : Set α → Set β
m : β → γ
hh : Monotone h
⊢ f.lift (map m ∘ 𝓟 ∘ h) = f.lift' (image m ∘ h)
state_after: no goals
Theorem: Rat.inv_divInt
File: .lake/packages/batteries/Batteries/Data/Rat/Lemmas.lean

tactic: if z : d = 0 then simp [z] else
cases e : n /. d; rcases divInt_num_den z e with ⟨g, zg, rfl, rfl⟩
simp [inv_def, divInt_mul_right zg]
state_before: n d : Int
⊢ (n /. d).inv = d /. n
state_after: no goals

tactic: simp [z]
state_before: n d : Int
z : d = 0
⊢ (n /. d).inv = d /. n
state_after: no goals

tactic: cases e : n /. d
state_before: n d : Int
z : ¬d = 0
⊢ (n /. d).inv = d /. n
state_after: case mk'
n d : Int
z : ¬d = 0
num✝ : Int
den✝ : Nat
den_nz✝ : den✝ ≠ 0
reduced✝ : num✝.natAbs.Coprime den✝
e : n /. d = { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }
⊢ { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }.inv = d /. n

tactic: rcases divInt_num_den z e with ⟨g, zg, rfl, rfl⟩
state_before: case mk'
n d : Int
z : ¬d = 0
num✝ : Int
den✝ : Nat
den_nz✝ : den✝ ≠ 0
reduced✝ : num✝.natAbs.Coprime den✝
e : n /. d = { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }
⊢ { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }.inv = d /. n
state_after: case mk'.intro.intro.intro
num✝ : Int
den✝ : Nat
den_nz✝ : den✝ ≠ 0
reduced✝ : num✝.natAbs.Coprime den✝
g : Int
zg : g ≠ 0
z : ¬↑den✝ * g = 0
e : num✝ * g /. (↑den✝ * g) = { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }
⊢ { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }.inv = ↑den✝ * g /. (num✝ * g)

tactic: simp [inv_def, divInt_mul_right zg]
state_before: case mk'.intro.intro.intro
num✝ : Int
den✝ : Nat
den_nz✝ : den✝ ≠ 0
reduced✝ : num✝.natAbs.Coprime den✝
g : Int
zg : g ≠ 0
z : ¬↑den✝ * g = 0
e : num✝ * g /. (↑den✝ * g) = { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }
⊢ { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }.inv = ↑den✝ * g /. (num✝ * g)
state_after: no goals
Theorem: Module.End.map_genEigenrange_le
File: Mathlib/LinearAlgebra/Eigenspace/Basic.lean

tactic: rw [genEigenrange]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
μ : K
n : ℕ
⊢ Submodule.map f (f.genEigenrange μ n) = LinearMap.range (f * (f - (algebraMap K (End K V)) μ) ^ n)
state_after: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
μ : K
n : ℕ
⊢ Submodule.map f (LinearMap.range ((f - (algebraMap K (End K V)) μ) ^ n)) =
    LinearMap.range (f * (f - (algebraMap K (End K V)) μ) ^ n)

tactic: exact (LinearMap.range_comp _ _).symm
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
μ : K
n : ℕ
⊢ Submodule.map f (LinearMap.range ((f - (algebraMap K (End K V)) μ) ^ n)) =
    LinearMap.range (f * (f - (algebraMap K (End K V)) μ) ^ n)
state_after: no goals

tactic: rw [Algebra.mul_sub_algebraMap_pow_commutes]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
μ : K
n : ℕ
⊢ LinearMap.range (f * (f - (algebraMap K (End K V)) μ) ^ n) =
    LinearMap.range ((f - (algebraMap K (End K V)) μ) ^ n * f)
state_after: no goals
Theorem: comap_upperCentralSeries_quotient_center
File: Mathlib/GroupTheory/Nilpotent.lean

tactic: induction' n with n ih
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
⊢ comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) n) = upperCentralSeries G n.succ
state_after: case zero
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
⊢ comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) 0) = upperCentralSeries G (Nat.succ 0)

case succ
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
ih : comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) n) = upperCentralSeries G n.succ
⊢ comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) (n + 1)) = upperCentralSeries G (n + 1).succ

tactic: simp only [Nat.zero_eq, upperCentralSeries_zero, MonoidHom.comap_bot, ker_mk',
  (upperCentralSeries_one G).symm]
state_before: case zero
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
⊢ comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) 0) = upperCentralSeries G (Nat.succ 0)
state_after: no goals

tactic: let Hn := upperCentralSeries (G ⧸ center G) n
state_before: case succ
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
ih : comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) n) = upperCentralSeries G n.succ
⊢ comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) (n + 1)) = upperCentralSeries G (n + 1).succ
state_after: case succ
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
ih : comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) n) = upperCentralSeries G n.succ
Hn : Subgroup (G ⧸ center G) := upperCentralSeries (G ⧸ center G) n
⊢ comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) (n + 1)) = upperCentralSeries G (n + 1).succ

tactic: calc
  comap (mk' (center G)) (upperCentralSeriesStep Hn) =
      comap (mk' (center G)) (comap (mk' Hn) (center ((G ⧸ center G) ⧸ Hn))) := by
    rw [upperCentralSeriesStep_eq_comap_center]
  _ = comap (mk' (comap (mk' (center G)) Hn)) (center (G ⧸ comap (mk' (center G)) Hn)) :=
    QuotientGroup.comap_comap_center
  _ = comap (mk' (upperCentralSeries G n.succ)) (center (G ⧸ upperCentralSeries G n.succ)) :=
    (comap_center_subst ih)
  _ = upperCentralSeriesStep (upperCentralSeries G n.succ) :=
    symm (upperCentralSeriesStep_eq_comap_center _)
state_before: case succ
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
ih : comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) n) = upperCentralSeries G n.succ
Hn : Subgroup (G ⧸ center G) := upperCentralSeries (G ⧸ center G) n
⊢ comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) (n + 1)) = upperCentralSeries G (n + 1).succ
state_after: no goals

tactic: rw [upperCentralSeriesStep_eq_comap_center]
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
ih : comap (mk' (center G)) (upperCentralSeries (G ⧸ center G) n) = upperCentralSeries G n.succ
Hn : Subgroup (G ⧸ center G) := upperCentralSeries (G ⧸ center G) n
⊢ comap (mk' (center G)) (upperCentralSeriesStep Hn) =
    comap (mk' (center G)) (comap (mk' Hn) (center ((G ⧸ center G) ⧸ Hn)))
state_after: no goals
Theorem: Multiset.sup_le
File: Mathlib/Data/Multiset/Lattice.lean

tactic: simp
state_before: α : Type u_1
inst✝¹ : SemilatticeSup α
inst✝ : OrderBot α
s : Multiset α
a : α
⊢ sup 0 ≤ a ↔ ∀ b ∈ 0, b ≤ a
state_after: no goals

tactic: simp (config := { contextual := true }) [or_imp, forall_and]
state_before: α : Type u_1
inst✝¹ : SemilatticeSup α
inst✝ : OrderBot α
s : Multiset α
a : α
⊢ ∀ (a_1 : α) (s : Multiset α), (s.sup ≤ a ↔ ∀ b ∈ s, b ≤ a) → ((a_1 ::ₘ s).sup ≤ a ↔ ∀ b ∈ a_1 ::ₘ s, b ≤ a)
state_after: no goals
Theorem: List.length_eq_reduceOption_length_add_filter_none
File: Mathlib/Data/List/ReduceOption.lean

tactic: simp_rw [reduceOption_length_eq, l.length_eq_length_filter_add Option.isSome, Option.bnot_isSome]
state_before: α : Type u_1
β : Type u_2
l : List (Option α)
⊢ l.length = l.reduceOption.length + (filter Option.isNone l).length
state_after: no goals
Theorem: InfHom.cancel_left
File: Mathlib/Order/Hom/Lattice.lean

tactic: rw [← InfHom.comp_apply, h, InfHom.comp_apply]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝⁴ : FunLike F α β
inst✝³ : Inf α
inst✝² : Inf β
inst✝¹ : Inf γ
inst✝ : Inf δ
g : InfHom β γ
f₁ f₂ : InfHom α β
hg : Injective ⇑g
h : g.comp f₁ = g.comp f₂
a : α
⊢ g (f₁ a) = g (f₂ a)
state_after: no goals
Theorem: StarOrderedRing.of_nonneg_iff
File: Mathlib/Algebra/Star/Order.lean

tactic: simpa only [← sub_eq_iff_eq_add', sub_nonneg, exists_eq_right'] using h_nonneg_iff (y - x)
state_before: R : Type u
inst✝² : NonUnitalRing R
inst✝¹ : PartialOrder R
inst✝ : StarRing R
h_add : ∀ {x y : R}, x ≤ y → ∀ (z : R), z + x ≤ z + y
h_nonneg_iff : ∀ (x : R), 0 ≤ x ↔ x ∈ AddSubmonoid.closure (range fun s => star s * s)
x y : R
this : CovariantClass R R (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ x ≤ y ↔ ∃ p ∈ AddSubmonoid.closure (range fun s => star s * s), y = x + p
state_after: no goals
Theorem: ENNReal.ofReal_lt_ofReal_iff
File: Mathlib/Data/ENNReal/Real.lean

tactic: rw [ENNReal.ofReal, ENNReal.ofReal, coe_lt_coe, Real.toNNReal_lt_toNNReal_iff h]
state_before: a b c d : ℝ≥0∞
r p✝ q✝ : ℝ≥0
p q : ℝ
h : 0 < q
⊢ ENNReal.ofReal p < ENNReal.ofReal q ↔ p < q
state_after: no goals
Theorem: MeasureTheory.ProbabilityMeasure.continuous_map
File: Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean

tactic: rw [continuous_iff_continuousAt]
state_before: Ω : Type u_1
Ω' : Type u_2
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : MeasurableSpace Ω'
inst✝³ : TopologicalSpace Ω
inst✝² : OpensMeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω'
inst✝ : BorelSpace Ω'
f : Ω → Ω'
f_cont : Continuous f
⊢ Continuous fun ν => ν.map ⋯
state_after: Ω : Type u_1
Ω' : Type u_2
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : MeasurableSpace Ω'
inst✝³ : TopologicalSpace Ω
inst✝² : OpensMeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω'
inst✝ : BorelSpace Ω'
f : Ω → Ω'
f_cont : Continuous f
⊢ ∀ (x : ProbabilityMeasure Ω), ContinuousAt (fun ν => ν.map ⋯) x

tactic: exact fun _ ↦ tendsto_map_of_tendsto_of_continuous _ _ continuous_id.continuousAt f_cont
state_before: Ω : Type u_1
Ω' : Type u_2
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : MeasurableSpace Ω'
inst✝³ : TopologicalSpace Ω
inst✝² : OpensMeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω'
inst✝ : BorelSpace Ω'
f : Ω → Ω'
f_cont : Continuous f
⊢ ∀ (x : ProbabilityMeasure Ω), ContinuousAt (fun ν => ν.map ⋯) x
state_after: no goals
Theorem: DFinsupp.mem_neLocus
File: Mathlib/Data/DFinsupp/NeLocus.lean

tactic: simpa only [neLocus, Finset.mem_filter, Finset.mem_union, mem_support_iff,
  and_iff_right_iff_imp] using Ne.ne_or_ne _
state_before: α : Type u_1
N : α → Type u_2
inst✝² : DecidableEq α
inst✝¹ : (a : α) → DecidableEq (N a)
inst✝ : (a : α) → Zero (N a)
f✝ g✝ f g : Π₀ (a : α), N a
a : α
⊢ a ∈ f.neLocus g ↔ f a ≠ g a
state_after: no goals
Theorem: div_add_same
File: Mathlib/Algebra/Field/Basic.lean

tactic: rw [← div_self h, add_div]
state_before: α : Type u_1
β : Type u_2
K : Type u_3
inst✝ : DivisionSemiring α
a b c d : α
h : b ≠ 0
⊢ (a + b) / b = a / b + 1
state_after: no goals
Theorem: RingQuot.Rel.add_right
File: Mathlib/Algebra/RingQuot.lean

tactic: rw [add_comm a b, add_comm a c]
state_before: R : Type uR
inst✝³ : Semiring R
S : Type uS
inst✝² : CommSemiring S
T : Type uT
A : Type uA
inst✝¹ : Semiring A
inst✝ : Algebra S A
r : R → R → Prop
a b c : R
h : Rel r b c
⊢ Rel r (a + b) (a + c)
state_after: R : Type uR
inst✝³ : Semiring R
S : Type uS
inst✝² : CommSemiring S
T : Type uT
A : Type uA
inst✝¹ : Semiring A
inst✝ : Algebra S A
r : R → R → Prop
a b c : R
h : Rel r b c
⊢ Rel r (b + a) (c + a)

tactic: exact Rel.add_left h
state_before: R : Type uR
inst✝³ : Semiring R
S : Type uS
inst✝² : CommSemiring S
T : Type uT
A : Type uA
inst✝¹ : Semiring A
inst✝ : Algebra S A
r : R → R → Prop
a b c : R
h : Rel r b c
⊢ Rel r (b + a) (c + a)
state_after: no goals
Theorem: CategoryTheory.Limits.Cone.ofFork_π
File: Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean

tactic: aesop
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : C
f g : X ⟶ Y
F : WalkingParallelPair ⥤ C
t : Fork (F.map left) (F.map right)
j : WalkingParallelPair
⊢ (parallelPair (F.map left) (F.map right)).obj j = F.obj j
state_after: no goals
Theorem: abs_one_div
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [abs_div, abs_one]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a✝ b c d : α
n : ℤ
a : α
⊢ |1 / a| = 1 / |a|
state_after: no goals
Theorem: Cardinal.toENat_lift
File: Mathlib/SetTheory/Cardinal/ENat.lean

tactic: cases le_total a ℵ₀ with
| inl ha => lift a to ℕ∞ using ha; simp
| inr ha => simp [toENat_eq_top.2, ha]
state_before: a : Cardinal.{v}
⊢ toENat (lift.{u, v} a) = toENat a
state_after: no goals

tactic: lift a to ℕ∞ using ha
state_before: case inl
a : Cardinal.{v}
ha : a ≤ ℵ₀
⊢ toENat (lift.{u, v} a) = toENat a
state_after: case inl.intro
a : ℕ∞
⊢ toENat (lift.{u, v} ↑a) = toENat ↑a

tactic: simp
state_before: case inl.intro
a : ℕ∞
⊢ toENat (lift.{u, v} ↑a) = toENat ↑a
state_after: no goals

tactic: simp [toENat_eq_top.2, ha]
state_before: case inr
a : Cardinal.{v}
ha : ℵ₀ ≤ a
⊢ toENat (lift.{u, v} a) = toENat a
state_after: no goals
Theorem: SimpleGraph.Walk.IsHamiltonianCycle.length_eq
File: Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean

tactic: rw [← length_tail_add_one hp.not_nil, hp.isHamiltonian_tail.length_eq, Nat.sub_add_cancel]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Fintype α
inst✝² : Fintype β
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
G : SimpleGraph α
a b : α
p✝ : G.Walk a b
p : G.Walk a a
hp : p.IsHamiltonianCycle
⊢ p.length = Fintype.card α
state_after: α : Type u_1
β : Type u_2
inst✝³ : Fintype α
inst✝² : Fintype β
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
G : SimpleGraph α
a b : α
p✝ : G.Walk a b
p : G.Walk a a
hp : p.IsHamiltonianCycle
⊢ 1 ≤ Fintype.card α

tactic: rw [Nat.succ_le, Fintype.card_pos_iff]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Fintype α
inst✝² : Fintype β
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
G : SimpleGraph α
a b : α
p✝ : G.Walk a b
p : G.Walk a a
hp : p.IsHamiltonianCycle
⊢ 1 ≤ Fintype.card α
state_after: α : Type u_1
β : Type u_2
inst✝³ : Fintype α
inst✝² : Fintype β
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
G : SimpleGraph α
a b : α
p✝ : G.Walk a b
p : G.Walk a a
hp : p.IsHamiltonianCycle
⊢ Nonempty α

tactic: exact ⟨a⟩
state_before: α : Type u_1
β : Type u_2
inst✝³ : Fintype α
inst✝² : Fintype β
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
G : SimpleGraph α
a b : α
p✝ : G.Walk a b
p : G.Walk a a
hp : p.IsHamiltonianCycle
⊢ Nonempty α
state_after: no goals