ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: LinearOrderedRing.orderOf_le_two
File: Mathlib/GroupTheory/OrderOfElement.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : LinearOrderedRing G
a x : G
⊢ orderOf x ≤ 2
state_after: case inl
G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : LinearOrderedRing G
a x : G
h : |x| ≠ 1
⊢ orderOf x ≤ 2

case inr
G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : LinearOrderedRing G
a x : G
h : |x| = 1
⊢ orderOf x ≤ 2
tactic: cases' ne_or_eq |x| 1 with h h
state_before: case inr
G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : LinearOrderedRing G
a x : G
h : |x| = 1
⊢ orderOf x ≤ 2
state_after: case inr.inl
G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : LinearOrderedRing G
a : G
h : |1| = 1
⊢ orderOf 1 ≤ 2

case inr.inr
G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : LinearOrderedRing G
a : G
h : |(-1)| = 1
⊢ orderOf (-1) ≤ 2
tactic: rcases eq_or_eq_neg_of_abs_eq h with (rfl | rfl)
state_before: case inr.inr
G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : LinearOrderedRing G
a : G
h : |(-1)| = 1
⊢ orderOf (-1) ≤ 2
state_after: no goals
tactic: apply orderOf_le_of_pow_eq_one <;> norm_num
Theorem: Finset.Colex.singleton_le_singleton
File: Mathlib/Combinatorics/Colex.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : PartialOrder α
inst✝ : PartialOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s t u : Finset α
a b : α
⊢ { ofColex := {a} } ≤ { ofColex := {b} } ↔ a ≤ b
state_after: no goals
tactic: simp [toColex_le_singleton, eq_comm]
Theorem: Part.union_mem_union
File: Mathlib/Data/Part.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Union α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ma ∪ mb ∈ a ∪ b
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Union α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ∃ a_1 ∈ a, ∃ a ∈ b, a_1 ∪ a = ma ∪ mb
tactic: simp [union_def]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Union α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ∃ a_1 ∈ a, ∃ a ∈ b, a_1 ∪ a = ma ∪ mb
state_after: no goals
tactic: aesop
Theorem: Bornology.nonempty_of_not_isBounded
File: Mathlib/Topology/Bornology/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
s t : Set α
x : α
h : ¬IsBounded s
⊢ s.Nonempty
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
s t : Set α
x : α
h : ¬IsBounded s
⊢ s ≠ ∅
tactic: rw [nonempty_iff_ne_empty]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
s t : Set α
x : α
h : ¬IsBounded s
⊢ s ≠ ∅
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
t : Set α
x : α
h : ¬IsBounded ∅
⊢ False
tactic: rintro rfl
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
t : Set α
x : α
h : ¬IsBounded ∅
⊢ False
state_after: no goals
tactic: exact h isBounded_empty
Theorem: MvPolynomial.esymm_zero
File: Mathlib/RingTheory/MvPolynomial/Symmetric.lean

Proof steps:
state_before: σ : Type u_1
R : Type u_2
τ : Type u_3
S : Type u_4
inst✝³ : CommSemiring R
inst✝² : CommSemiring S
inst✝¹ : Fintype σ
inst✝ : Fintype τ
⊢ esymm σ R 0 = 1
state_after: no goals
tactic: simp only [esymm, powersetCard_zero, sum_singleton, prod_empty]
Theorem: Subgroup.map_le_map_iff
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

Proof steps:
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁴ : Group G
inst✝³ : Group G'
inst✝² : Group G''
A : Type u_4
inst✝¹ : AddGroup A
N : Type u_5
inst✝ : Group N
f✝ f : G →* N
H K : Subgroup G
⊢ map f H ≤ map f K ↔ H ≤ K ⊔ f.ker
state_after: no goals
tactic: rw [map_le_iff_le_comap, comap_map_eq]
Theorem: AlgebraicIndependent.aevalEquiv_symm_apply
File: Mathlib/RingTheory/AlgebraicIndependent.lean

Proof steps:
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ MvPolynomial ι R ≃ₐ[R] ↥(adjoin R (range x))
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ Bijective ⇑((aeval x).codRestrict (adjoin R (range x)) ?m.269898)

ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ ∀ (x_1 : MvPolynomial ι R), (aeval x) x_1 ∈ adjoin R (range x)
tactic: apply
    AlgEquiv.ofBijective (AlgHom.codRestrict (@aeval R A ι _ _ _ x) (Algebra.adjoin R (range x)) _)
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ Bijective ⇑((aeval x).codRestrict (adjoin R (range x)) ?m.269898)

ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ ∀ (x_1 : MvPolynomial ι R), (aeval x) x_1 ∈ adjoin R (range x)
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ ∀ (x_1 : MvPolynomial ι R), (aeval x) x_1 ∈ adjoin R (range x)

ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx✝ hx : AlgebraicIndependent R x
⊢ Bijective ⇑((aeval x).codRestrict (adjoin R (range x)) ?m.269898)
tactic: swap
Theorem: LieModule.isNilpotent_quotient_iff
File: Mathlib/Algebra/Lie/Nilpotent.lean

Proof steps:
state_before: R : Type u
L : Type v
M : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
k : ℕ
N : LieSubmodule R L M
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
⊢ IsNilpotent R L (M ⧸ N) ↔ ∃ k, lowerCentralSeries R L M k ≤ N
state_after: R : Type u
L : Type v
M : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
k : ℕ
N : LieSubmodule R L M
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
⊢ (∃ k, lowerCentralSeries R L (M ⧸ N) k = ⊥) ↔ ∃ k, lowerCentralSeries R L M k ≤ N
tactic: rw [LieModule.isNilpotent_iff]
state_before: R : Type u
L : Type v
M : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
k : ℕ
N : LieSubmodule R L M
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
⊢ (∃ k, lowerCentralSeries R L (M ⧸ N) k = ⊥) ↔ ∃ k, lowerCentralSeries R L M k ≤ N
state_after: R : Type u
L : Type v
M : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
k✝ : ℕ
N : LieSubmodule R L M
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
⊢ lowerCentralSeries R L (M ⧸ N) k = ⊥ ↔ lowerCentralSeries R L M k ≤ N
tactic: refine exists_congr fun k ↦ ?_
state_before: R : Type u
L : Type v
M : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
k✝ : ℕ
N : LieSubmodule R L M
M₂ : Type w₁
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
k : ℕ
⊢ lowerCentralSeries R L (M ⧸ N) k = ⊥ ↔ lowerCentralSeries R L M k ≤ N
state_after: no goals
tactic: rw [← LieSubmodule.Quotient.map_mk'_eq_bot_le, map_lowerCentralSeries_eq k
    (LieSubmodule.Quotient.surjective_mk' N)]
Theorem: elementalStarAlgebra.closedEmbedding_coe
File: Mathlib/Topology/Algebra/StarSubalgebra.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
B : Type u_3
inst✝¹² : CommSemiring R
inst✝¹¹ : StarRing R
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : StarRing A
inst✝⁷ : TopologicalSemiring A
inst✝⁶ : ContinuousStar A
inst✝⁵ : Algebra R A
inst✝⁴ : StarModule R A
inst✝³ : TopologicalSpace B
inst✝² : Semiring B
inst✝¹ : StarRing B
inst✝ : Algebra R B
x : A
⊢ IsClosed (range Subtype.val)
state_after: case h.e'_3
R : Type u_1
A : Type u_2
B : Type u_3
inst✝¹² : CommSemiring R
inst✝¹¹ : StarRing R
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : StarRing A
inst✝⁷ : TopologicalSemiring A
inst✝⁶ : ContinuousStar A
inst✝⁵ : Algebra R A
inst✝⁴ : StarModule R A
inst✝³ : TopologicalSpace B
inst✝² : Semiring B
inst✝¹ : StarRing B
inst✝ : Algebra R B
x : A
⊢ range Subtype.val = ↑(elementalStarAlgebra R x)
tactic: convert isClosed R x
state_before: case h.e'_3
R : Type u_1
A : Type u_2
B : Type u_3
inst✝¹² : CommSemiring R
inst✝¹¹ : StarRing R
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : StarRing A
inst✝⁷ : TopologicalSemiring A
inst✝⁶ : ContinuousStar A
inst✝⁵ : Algebra R A
inst✝⁴ : StarModule R A
inst✝³ : TopologicalSpace B
inst✝² : Semiring B
inst✝¹ : StarRing B
inst✝ : Algebra R B
x : A
⊢ range Subtype.val = ↑(elementalStarAlgebra R x)
state_after: no goals
tactic: exact
        Set.ext fun y =>
          ⟨by
            rintro ⟨y, rfl⟩
            exact y.prop, fun hy => ⟨⟨y, hy⟩, rfl⟩⟩
Theorem: PosNum.size_eq_natSize
File: Mathlib/Data/Num/Lemmas.lean

Proof steps:
state_before: α : Type u_1
n : PosNum
⊢ ↑n.bit0.size = n.bit0.natSize
state_after: no goals
tactic: rw [size, succ_to_nat, natSize, size_eq_natSize n]
state_before: α : Type u_1
n : PosNum
⊢ ↑n.bit1.size = n.bit1.natSize
state_after: no goals
tactic: rw [size, succ_to_nat, natSize, size_eq_natSize n]
Theorem: List.toFinset_surj_on
File: Mathlib/Data/Finset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
l l' : List α
a : α
⊢ Set.SurjOn toFinset {l | l.Nodup} Set.univ
state_after: case mk.mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
l✝ l' : List α
a : α
val✝ : Multiset α
l : List α
hl : Multiset.Nodup (Quot.mk Setoid.r l)
a✝ : { val := Quot.mk Setoid.r l, nodup := hl } ∈ Set.univ
⊢ { val := Quot.mk Setoid.r l, nodup := hl } ∈ toFinset '' {l | l.Nodup}
tactic: rintro ⟨⟨l⟩, hl⟩ _
state_before: case mk.mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
l✝ l' : List α
a : α
val✝ : Multiset α
l : List α
hl : Multiset.Nodup (Quot.mk Setoid.r l)
a✝ : { val := Quot.mk Setoid.r l, nodup := hl } ∈ Set.univ
⊢ { val := Quot.mk Setoid.r l, nodup := hl } ∈ toFinset '' {l | l.Nodup}
state_after: no goals
tactic: exact ⟨l, hl, (toFinset_eq hl).symm⟩
Theorem: smul_iterate
File: Mathlib/Algebra/GroupPower/IterateHom.lean

Proof steps:
state_before: M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
inst✝¹ : Monoid G
a : G
n : ℕ
inst✝ : MulAction G H
b : H
⊢ (fun x => a • x)^[Nat.zero] b = a ^ Nat.zero • b
state_after: no goals
tactic: rw [iterate_zero, id, pow_zero, one_smul]
state_before: M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
inst✝¹ : Monoid G
a : G
n✝ : ℕ
inst✝ : MulAction G H
b : H
n : ℕ
ih : (fun x => a • x)^[n] b = a ^ n • b
⊢ (fun x => a • x)^[n.succ] b = a ^ n.succ • b
state_after: no goals
tactic: rw [iterate_succ', comp_apply, ih, pow_succ', mul_smul]
Theorem: closure_induced
File: Mathlib/Topology/Order.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
t : TopologicalSpace β
f✝ f : α → β
a : α
s : Set α
⊢ a ∈ closure s ↔ f a ∈ closure (f '' s)
state_after: α : Type u_1
β : Type u_2
t : TopologicalSpace β
f✝ f : α → β
a : α
s : Set α
this : TopologicalSpace α := induced f t
⊢ a ∈ closure s ↔ f a ∈ closure (f '' s)
tactic: letI := t.induced f
state_before: α : Type u_1
β : Type u_2
t : TopologicalSpace β
f✝ f : α → β
a : α
s : Set α
this : TopologicalSpace α := induced f t
⊢ a ∈ closure s ↔ f a ∈ closure (f '' s)
state_after: no goals
tactic: simp only [mem_closure_iff_frequently, nhds_induced, frequently_comap, mem_image, and_comm]
Theorem: Algebra.Generators.Hom.toAlgHom_comp_apply
File: Mathlib/RingTheory/Generators.lean

Proof steps:
state_before: R : Type u
S : Type v
inst✝²⁵ : CommRing R
inst✝²⁴ : CommRing S
inst✝²³ : Algebra R S
P : Generators R S
R' : Type u_1
S' : Type u_2
inst✝²² : CommRing R'
inst✝²¹ : CommRing S'
inst✝²⁰ : Algebra R' S'
P' : Generators R' S'
inst✝¹⁹ : Algebra R R'
inst✝¹⁸ : Algebra S S'
inst✝¹⁷ : Algebra R S'
inst✝¹⁶ : IsScalarTower R R' S'
inst✝¹⁵ : IsScalarTower R S S'
R'' : Type u_4
S'' : Type u_5
inst✝¹⁴ : CommRing R''
inst✝¹³ : CommRing S''
inst✝¹² : Algebra R'' S''
P'' : Generators R'' S''
inst✝¹¹ : Algebra R R''
inst✝¹⁰ : Algebra S S''
inst✝⁹ : Algebra R S''
inst✝⁸ : IsScalarTower R R'' S''
inst✝⁷ : IsScalarTower R S S''
inst✝⁶ : Algebra R' R''
inst✝⁵ : Algebra S' S''
inst✝⁴ : Algebra R' S''
inst✝³ : IsScalarTower R' R'' S''
inst✝² : IsScalarTower R' S' S''
inst✝¹ : IsScalarTower R R' R''
inst✝ : IsScalarTower S S' S''
f : P.Hom P'
g : P'.Hom P''
x : P.Ring
⊢ (g.comp f).toAlgHom x = g.toAlgHom (f.toAlgHom x)
state_after: no goals
tactic: induction x using MvPolynomial.induction_on with
  | h_C r => simp only [← MvPolynomial.algebraMap_eq, AlgHom.map_algebraMap]
  | h_add x y hx hy => simp only [map_add, hx, hy]
  | h_X p i hp => simp only [_root_.map_mul, hp, toAlgHom_X, comp_val]; rfl
Theorem: neg_lt_self_iff
File: Mathlib/Algebra/Order/Group/Defs.lean

Proof steps:
state_before: α : Type u
inst✝ : LinearOrderedCommGroup α
a b c : α
⊢ a⁻¹ < a ↔ 1 < a
state_after: no goals
tactic: simp [inv_lt_iff_one_lt_mul]
Theorem: IsSelfAdjoint.toReal_spectralRadius_eq_norm
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Order.lean

Proof steps:
state_before: A : Type u_1
inst✝⁷ : NormedRing A
inst✝⁶ : StarRing A
inst✝⁵ : CstarRing A
inst✝⁴ : CompleteSpace A
inst✝³ : NormedAlgebra ℂ A
inst✝² : StarModule ℂ A
inst✝¹ : PartialOrder A
inst✝ : StarOrderedRing A
a : A
ha : IsSelfAdjoint a
⊢ (spectralRadius ℝ a).toReal = ‖a‖
state_after: no goals
tactic: simp [ha.spectrumRestricts.spectralRadius_eq, ha.spectralRadius_eq_nnnorm]
Theorem: AddMonoidAlgebra.mem_span_support'
File: Mathlib/Algebra/MonoidAlgebra/Support.lean

Proof steps:
state_before: k : Type u₁
G : Type u₂
inst✝ : Semiring k
f : k[G]
⊢ f ∈ Submodule.span k (of' k G '' ↑f.support)
state_after: k : Type u₁
G : Type u₂
inst✝ : Semiring k
f : k[G]
⊢ f ∈ Submodule.span k ((fun a => single a 1) '' ↑f.support)
tactic: delta of'
state_before: k : Type u₁
G : Type u₂
inst✝ : Semiring k
f : k[G]
⊢ f ∈ Submodule.span k ((fun a => single a 1) '' ↑f.support)
state_after: no goals
tactic: rw [← Finsupp.supported_eq_span_single, Finsupp.mem_supported]
Theorem: Finset.card_eq_sum_ones
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

Proof steps:
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
s : Finset α
⊢ s.card = ∑ x ∈ s, 1
state_after: no goals
tactic: simp
Theorem: Matrix.zpow_mul
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

Proof steps:
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : IsUnit A.det
m n : ℕ
⊢ A ^ (↑m * ↑n) = (A ^ ↑m) ^ ↑n
state_after: no goals
tactic: rw [zpow_natCast, zpow_natCast, ← pow_mul, ← zpow_natCast, Int.ofNat_mul]
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : IsUnit A.det
m n : ℕ
⊢ A ^ (↑m * -[n+1]) = (A ^ ↑m) ^ -[n+1]
state_after: no goals
tactic: rw [zpow_natCast, zpow_negSucc, ← pow_mul, ofNat_mul_negSucc, zpow_neg_natCast]
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : IsUnit A.det
m n : ℕ
⊢ A ^ (-[m+1] * ↑n) = (A ^ -[m+1]) ^ ↑n
state_after: no goals
tactic: rw [zpow_natCast, zpow_negSucc, ← inv_pow', ← pow_mul, negSucc_mul_ofNat, zpow_neg_natCast,
        inv_pow']
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : IsUnit A.det
m n : ℕ
⊢ A ^ (-[m+1] * -[n+1]) = (A ^ -[m+1]) ^ -[n+1]
state_after: case h
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : IsUnit A.det
m n : ℕ
⊢ IsUnit (A ^ ((m + 1) * (n + 1))).det
tactic: rw [zpow_negSucc, zpow_negSucc, negSucc_mul_negSucc, ← Int.ofNat_mul, zpow_natCast, inv_pow', ←
      pow_mul, nonsing_inv_nonsing_inv]
state_before: case h
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : IsUnit A.det
m n : ℕ
⊢ IsUnit (A ^ ((m + 1) * (n + 1))).det
state_after: case h
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : IsUnit A.det
m n : ℕ
⊢ IsUnit (A.det ^ ((m + 1) * (n + 1)))
tactic: rw [det_pow]
state_before: case h
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : IsUnit A.det
m n : ℕ
⊢ IsUnit (A.det ^ ((m + 1) * (n + 1)))
state_after: no goals
tactic: exact h.pow _
Theorem: Mathlib.Meta.NormNum.isNat_eq_false
File: Mathlib/Tactic/NormNum/Eq.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : AddMonoidWithOne α
inst✝ : CharZero α
n✝¹ n✝ : ℕ
h : n✝¹.beq n✝ = false
⊢ ¬↑n✝¹ = ↑n✝
state_after: no goals
tactic: simpa using Nat.ne_of_beq_eq_false h
Theorem: QuadraticMap.polar_add
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

Proof steps:
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : AddCommGroup N
f g : M → N
x y : M
⊢ polar (f + g) x y = polar f x y + polar g x y
state_after: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : AddCommGroup N
f g : M → N
x y : M
⊢ f (x + y) + g (x + y) - (f x + g x) - (f y + g y) = f (x + y) - f x - f y + (g (x + y) - g x - g y)
tactic: simp only [polar, Pi.add_apply]
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : AddCommGroup N
f g : M → N
x y : M
⊢ f (x + y) + g (x + y) - (f x + g x) - (f y + g y) = f (x + y) - f x - f y + (g (x + y) - g x - g y)
state_after: no goals
tactic: abel
Theorem: exists_mem_frontier_infDist_compl_eq_dist
File: Mathlib/Analysis/Normed/Module/FiniteDimension.lean

Proof steps:
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : FiniteDimensional ℝ E
x : E
s : Set E
hx : x ∈ s
hs : s ≠ univ
⊢ ∃ y ∈ frontier s, infDist x sᶜ = dist x y
state_after: case intro.intro
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : FiniteDimensional ℝ E
x : E
s : Set E
hx : x ∈ s
hs : s ≠ univ
y : E
hys : y ∈ closure sᶜ
hyd : infDist x sᶜ = dist x y
⊢ ∃ y ∈ frontier s, infDist x sᶜ = dist x y
tactic: rcases Metric.exists_mem_closure_infDist_eq_dist (nonempty_compl.2 hs) x with ⟨y, hys, hyd⟩
state_before: case intro.intro
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : FiniteDimensional ℝ E
x : E
s : Set E
hx : x ∈ s
hs : s ≠ univ
y : E
hys : y ∈ closure sᶜ
hyd : infDist x sᶜ = dist x y
⊢ ∃ y ∈ frontier s, infDist x sᶜ = dist x y
state_after: case intro.intro
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : FiniteDimensional ℝ E
x : E
s : Set E
hx : x ∈ s
hs : s ≠ univ
y : E
hys : y ∈ (interior s)ᶜ
hyd : infDist x sᶜ = dist x y
⊢ ∃ y ∈ frontier s, infDist x sᶜ = dist x y
tactic: rw [closure_compl] at hys
state_before: case intro.intro
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : FiniteDimensional ℝ E
x : E
s : Set E
hx : x ∈ s
hs : s ≠ univ
y : E
hys : y ∈ (interior s)ᶜ
hyd : infDist x sᶜ = dist x y
⊢ ∃ y ∈ frontier s, infDist x sᶜ = dist x y
state_after: case intro.intro
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : FiniteDimensional ℝ E
x : E
s : Set E
hx : x ∈ s
hs : s ≠ univ
y : E
hys : y ∈ (interior s)ᶜ
hyd : infDist x sᶜ = dist x y
⊢ infDist x sᶜ = dist y x
tactic: refine ⟨y, ⟨Metric.closedBall_infDist_compl_subset_closure hx <|
    Metric.mem_closedBall.2 <| ge_of_eq ?_, hys⟩, hyd⟩
state_before: case intro.intro
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : FiniteDimensional ℝ E
x : E
s : Set E
hx : x ∈ s
hs : s ≠ univ
y : E
hys : y ∈ (interior s)ᶜ
hyd : infDist x sᶜ = dist x y
⊢ infDist x sᶜ = dist y x
state_after: no goals
tactic: rwa [dist_comm]
Theorem: HomologicalComplex.complexOfFunctorsToFunctorToComplex_obj
File: Mathlib/Algebra/Homology/Functor.lean

Proof steps:
state_before: V : Type u
inst✝² : Category.{v, u} V
inst✝¹ : HasZeroMorphisms V
ι : Type u_1
c : ComplexShape ι
T : Type u_2
inst✝ : Category.{?u.3840, u_2} T
X✝ Y✝ : HomologicalComplex (T ⥤ V) c
f : X✝ ⟶ Y✝
t t' : T
g : t ⟶ t'
⊢ ((fun C => C.asFunctor) X✝).map g ≫ (fun t => { f := fun i => (f.f i).app t, comm' := ⋯ }) t' =
    (fun t => { f := fun i => (f.f i).app t, comm' := ⋯ }) t ≫ ((fun C => C.asFunctor) Y✝).map g
state_after: case h
V : Type u
inst✝² : Category.{v, u} V
inst✝¹ : HasZeroMorphisms V
ι : Type u_1
c : ComplexShape ι
T : Type u_2
inst✝ : Category.{?u.3840, u_2} T
X✝ Y✝ : HomologicalComplex (T ⥤ V) c
f : X✝ ⟶ Y✝
t t' : T
g : t ⟶ t'
i : ι
⊢ (((fun C => C.asFunctor) X✝).map g ≫ (fun t => { f := fun i => (f.f i).app t, comm' := ⋯ }) t').f i =
    ((fun t => { f := fun i => (f.f i).app t, comm' := ⋯ }) t ≫ ((fun C => C.asFunctor) Y✝).map g).f i
tactic: ext i
state_before: case h
V : Type u
inst✝² : Category.{v, u} V
inst✝¹ : HasZeroMorphisms V
ι : Type u_1
c : ComplexShape ι
T : Type u_2
inst✝ : Category.{?u.3840, u_2} T
X✝ Y✝ : HomologicalComplex (T ⥤ V) c
f : X✝ ⟶ Y✝
t t' : T
g : t ⟶ t'
i : ι
⊢ (((fun C => C.asFunctor) X✝).map g ≫ (fun t => { f := fun i => (f.f i).app t, comm' := ⋯ }) t').f i =
    ((fun t => { f := fun i => (f.f i).app t, comm' := ⋯ }) t ≫ ((fun C => C.asFunctor) Y✝).map g).f i
state_after: no goals
tactic: exact (f.f i).naturality g
Theorem: Cardinal.sup_lt_ord_lift_of_isRegular
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

Proof steps:
state_before: α : Type u_1
r : α → α → Prop
ι : Type u
f : ι → Ordinal.{max u v}
c : Cardinal.{max u v}
hc : c.IsRegular
hι : lift.{v, u} #ι < c
⊢ lift.{v, u} #ι < c.ord.cof
state_after: no goals
tactic: rwa [hc.cof_eq]