ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: LieDerivation.lie_der_ad_eq_ad_der
File: Mathlib/Algebra/Lie/Derivation/AdjointAction.lean

Proof steps:
state_before: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
D : LieDerivation R L L
x : L
⊢ ⁅D, (ad R L) x⁆ = (ad R L) (D x)
state_after: no goals
tactic: rw [ad_apply_lieDerivation, ← lie_ad, lie_skew]
Theorem: FreeGroup.closure_range_of
File: Mathlib/GroupTheory/FreeGroup/Basic.lean

Proof steps:
state_before: α✝ : Type u
L L₁ L₂ L₃ L₄ : List (α✝ × Bool)
β : Type v
inst✝ : Group β
f : α✝ → β
x y : FreeGroup α✝
α : Type u_1
⊢ Subgroup.closure (Set.range of) = ⊤
state_after: α✝ : Type u
L L₁ L₂ L₃ L₄ : List (α✝ × Bool)
β : Type v
inst✝ : Group β
f : α✝ → β
x y : FreeGroup α✝
α : Type u_1
⊢ (MonoidHom.id (FreeGroup α)).range = ⊤
tactic: rw [← lift.range_eq_closure, lift_of_eq_id]
state_before: α✝ : Type u
L L₁ L₂ L₃ L₄ : List (α✝ × Bool)
β : Type v
inst✝ : Group β
f : α✝ → β
x y : FreeGroup α✝
α : Type u_1
⊢ (MonoidHom.id (FreeGroup α)).range = ⊤
state_after: no goals
tactic: exact MonoidHom.range_top_of_surjective _ Function.surjective_id
Theorem: zpow_ne_zero
File: Mathlib/Algebra/GroupWithZero/Units/Basic.lean

Proof steps:
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝¹ b c d : G₀
m n : ℕ
a : G₀
a✝ : ℕ
⊢ a ≠ 0 → a ^ ↑a✝ ≠ 0
state_after: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝¹ b c d : G₀
m n : ℕ
a : G₀
a✝ : ℕ
⊢ a ≠ 0 → a ^ a✝ ≠ 0
tactic: rw [zpow_natCast]
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝¹ b c d : G₀
m n : ℕ
a : G₀
a✝ : ℕ
⊢ a ≠ 0 → a ^ a✝ ≠ 0
state_after: no goals
tactic: exact pow_ne_zero _
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝ b c d : G₀
m n✝ : ℕ
a : G₀
n : ℕ
ha : a ≠ 0
⊢ a ^ Int.negSucc n ≠ 0
state_after: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝ b c d : G₀
m n✝ : ℕ
a : G₀
n : ℕ
ha : a ≠ 0
⊢ (a ^ (n + 1))⁻¹ ≠ 0
tactic: rw [zpow_negSucc]
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a✝ b c d : G₀
m n✝ : ℕ
a : G₀
n : ℕ
ha : a ≠ 0
⊢ (a ^ (n + 1))⁻¹ ≠ 0
state_after: no goals
tactic: exact inv_ne_zero (pow_ne_zero _ ha)
Theorem: Subsingleton.convexIndependent
File: Mathlib/Analysis/Convex/Independent.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝³ : OrderedSemiring 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
s t : Set E
inst✝ : Subsingleton ι
p : ι → E
⊢ ConvexIndependent 𝕜 p
state_after: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝³ : OrderedSemiring 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
s✝ t : Set E
inst✝ : Subsingleton ι
p : ι → E
s : Set ι
x : ι
hx : p x ∈ (convexHull 𝕜) (p '' s)
⊢ x ∈ s
tactic: intro s x hx
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝³ : OrderedSemiring 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
s✝ t : Set E
inst✝ : Subsingleton ι
p : ι → E
s : Set ι
x : ι
hx : p x ∈ (convexHull 𝕜) (p '' s)
⊢ x ∈ s
state_after: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝³ : OrderedSemiring 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
s✝ t : Set E
inst✝ : Subsingleton ι
p : ι → E
s : Set ι
x : ι
hx : p x ∈ (convexHull 𝕜) (p '' s)
this : ((convexHull 𝕜) (p '' s)).Nonempty
⊢ x ∈ s
tactic: have : (convexHull 𝕜 (p '' s)).Nonempty := ⟨p x, hx⟩
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝³ : OrderedSemiring 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
s✝ t : Set E
inst✝ : Subsingleton ι
p : ι → E
s : Set ι
x : ι
hx : p x ∈ (convexHull 𝕜) (p '' s)
this : ((convexHull 𝕜) (p '' s)).Nonempty
⊢ x ∈ s
state_after: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝³ : OrderedSemiring 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
s✝ t : Set E
inst✝ : Subsingleton ι
p : ι → E
s : Set ι
x : ι
hx : p x ∈ (convexHull 𝕜) (p '' s)
this : s.Nonempty
⊢ x ∈ s
tactic: rw [convexHull_nonempty_iff, Set.image_nonempty] at this
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝³ : OrderedSemiring 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
s✝ t : Set E
inst✝ : Subsingleton ι
p : ι → E
s : Set ι
x : ι
hx : p x ∈ (convexHull 𝕜) (p '' s)
this : s.Nonempty
⊢ x ∈ s
state_after: no goals
tactic: rwa [Subsingleton.mem_iff_nonempty]
Theorem: Matrix.blockDiagonal'_smul
File: Mathlib/Data/Matrix/Block.lean

Proof steps:
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R✝ : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝³ : DecidableEq o
R : Type u_14
inst✝² : Semiring R
inst✝¹ : AddCommMonoid α
inst✝ : Module R α
x : R
M : (i : o) → Matrix (m' i) (n' i) α
⊢ blockDiagonal' (x • M) = x • blockDiagonal' M
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R✝ : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝³ : DecidableEq o
R : Type u_14
inst✝² : Semiring R
inst✝¹ : AddCommMonoid α
inst✝ : Module R α
x : R
M : (i : o) → Matrix (m' i) (n' i) α
i✝ : (i : o) × m' i
j✝ : (i : o) × n' i
⊢ blockDiagonal' (x • M) i✝ j✝ = (x • blockDiagonal' M) i✝ j✝
tactic: ext
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R✝ : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝³ : DecidableEq o
R : Type u_14
inst✝² : Semiring R
inst✝¹ : AddCommMonoid α
inst✝ : Module R α
x : R
M : (i : o) → Matrix (m' i) (n' i) α
i✝ : (i : o) × m' i
j✝ : (i : o) × n' i
⊢ blockDiagonal' (x • M) i✝ j✝ = (x • blockDiagonal' M) i✝ j✝
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R✝ : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝³ : DecidableEq o
R : Type u_14
inst✝² : Semiring R
inst✝¹ : AddCommMonoid α
inst✝ : Module R α
x : R
M : (i : o) → Matrix (m' i) (n' i) α
i✝ : (i : o) × m' i
j✝ : (i : o) × n' i
⊢ (if h : i✝.fst = j✝.fst then x • M i✝.fst i✝.snd (cast ⋯ j✝.snd) else 0) =
    x • if h : i✝.fst = j✝.fst then M i✝.fst i✝.snd (cast ⋯ j✝.snd) else 0
tactic: simp only [blockDiagonal'_apply, Pi.smul_apply, smul_apply]
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R✝ : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝³ : DecidableEq o
R : Type u_14
inst✝² : Semiring R
inst✝¹ : AddCommMonoid α
inst✝ : Module R α
x : R
M : (i : o) → Matrix (m' i) (n' i) α
i✝ : (i : o) × m' i
j✝ : (i : o) × n' i
⊢ (if h : i✝.fst = j✝.fst then x • M i✝.fst i✝.snd (cast ⋯ j✝.snd) else 0) =
    x • if h : i✝.fst = j✝.fst then M i✝.fst i✝.snd (cast ⋯ j✝.snd) else 0
state_after: no goals
tactic: split_ifs <;> simp
Theorem: InnerProductGeometry.norm_sub_sq_eq_norm_sq_add_norm_sq_iff_angle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean

Proof steps:
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
⊢ ‖x - y‖ * ‖x - y‖ = ‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ ↔ angle x y = π / 2
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
⊢ ⟪x, y⟫_ℝ = 0 ↔ angle x y = π / 2
tactic: rw [norm_sub_sq_eq_norm_sq_add_norm_sq_iff_real_inner_eq_zero]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
⊢ ⟪x, y⟫_ℝ = 0 ↔ angle x y = π / 2
state_after: no goals
tactic: exact inner_eq_zero_iff_angle_eq_pi_div_two x y
Theorem: AddSubmonoid.dense_induction
File: Mathlib/Algebra/Group/Submonoid/Basic.lean

Proof steps:
state_before: M : Type u_1
N : Type u_2
A : Type u_3
inst✝¹ : MulOneClass M
s✝ : Set M
inst✝ : AddZeroClass A
t : Set A
S : Submonoid M
p : M → Prop
x : M
s : Set M
hs : closure s = ⊤
mem : ∀ x ∈ s, p x
one : p 1
mul : ∀ (x y : M), p x → p y → p (x * y)
⊢ p x
state_after: M : Type u_1
N : Type u_2
A : Type u_3
inst✝¹ : MulOneClass M
s✝ : Set M
inst✝ : AddZeroClass A
t : Set A
S : Submonoid M
p : M → Prop
x : M
s : Set M
hs : closure s = ⊤
mem : ∀ x ∈ s, p x
one : p 1
mul : ∀ (x y : M), p x → p y → p (x * y)
this : ∀ x ∈ closure s, p x
⊢ p x
tactic: have : ∀ x ∈ closure s, p x := fun x hx => closure_induction hx mem one mul
state_before: M : Type u_1
N : Type u_2
A : Type u_3
inst✝¹ : MulOneClass M
s✝ : Set M
inst✝ : AddZeroClass A
t : Set A
S : Submonoid M
p : M → Prop
x : M
s : Set M
hs : closure s = ⊤
mem : ∀ x ∈ s, p x
one : p 1
mul : ∀ (x y : M), p x → p y → p (x * y)
this : ∀ x ∈ closure s, p x
⊢ p x
state_after: no goals
tactic: simpa [hs] using this x
Theorem: isSquare_iff_exists_sq
File: Mathlib/Algebra/Group/Even.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝ : Monoid α
n : ℕ
a m : α
⊢ IsSquare m ↔ ∃ c, m = c ^ 2
state_after: no goals
tactic: simp [IsSquare, pow_two]
Theorem: Computable.vector_ofFn
File: Mathlib/Computability/Partrec.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
f : Fin n → α → σ
hf : ∀ (i : Fin n), Computable (f i)
a : α
⊢ (Vector.mOfFn fun i => ↑(f i) a) = (↑fun a => Vector.ofFn fun i => f i a) a
state_after: no goals
tactic: simp
Theorem: AddCircle.homeomorphCircle_apply
File: Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean

Proof steps:
state_before: T : ℝ
hT : T ≠ 0
x : AddCircle T
⊢ (homeomorphCircle hT) x = x.toCircle
state_after: case H
T : ℝ
hT : T ≠ 0
x : ℝ
⊢ (homeomorphCircle hT) ↑x = toCircle ↑x
tactic: induction' x using QuotientAddGroup.induction_on' with x
state_before: case H
T : ℝ
hT : T ≠ 0
x : ℝ
⊢ (homeomorphCircle hT) ↑x = toCircle ↑x
state_after: case H
T : ℝ
hT : T ≠ 0
x : ℝ
⊢ expMapCircle (x * (T⁻¹ * (2 * π))) = expMapCircle (2 * π / T * x)
tactic: rw [homeomorphCircle, Homeomorph.trans_apply,
    homeomorphAddCircle_apply_mk, homeomorphCircle'_apply_mk, toCircle_apply_mk]
state_before: case H
T : ℝ
hT : T ≠ 0
x : ℝ
⊢ expMapCircle (x * (T⁻¹ * (2 * π))) = expMapCircle (2 * π / T * x)
state_after: no goals
tactic: ring_nf
Theorem: MeasureTheory.VectorMeasure.restrict_empty
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
m inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
M : Type u_3
inst✝¹ : AddCommMonoid M
inst✝ : TopologicalSpace M
v : VectorMeasure α M
i : Set α
hi : MeasurableSet i
⊢ ↑(v.restrict ∅) i = ↑0 i
state_after: no goals
tactic: rw [restrict_apply v MeasurableSet.empty hi, Set.inter_empty, v.empty, zero_apply]
Theorem: Finsupp.single_eq_of_ne
File: Mathlib/Data/Finsupp/Defs.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
a a' : α
b : M
h : a ≠ a'
⊢ (single a b) a' = 0
state_after: no goals
tactic: classical exact Pi.single_eq_of_ne' h _
Theorem: CategoryTheory.Subobject.factorThru_comp_arrow
File: Mathlib/CategoryTheory/Subobject/FactorThru.lean

Proof steps:
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y : C
P : Subobject Y
f : X ⟶ underlying.obj P
h : P.Factors (f ≫ P.arrow)
⊢ P.factorThru (f ≫ P.arrow) h = f
state_after: case h
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y : C
P : Subobject Y
f : X ⟶ underlying.obj P
h : P.Factors (f ≫ P.arrow)
⊢ P.factorThru (f ≫ P.arrow) h ≫ P.arrow = f ≫ P.arrow
tactic: ext
state_before: case h
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y✝ Z : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y : C
P : Subobject Y
f : X ⟶ underlying.obj P
h : P.Factors (f ≫ P.arrow)
⊢ P.factorThru (f ≫ P.arrow) h ≫ P.arrow = f ≫ P.arrow
state_after: no goals
tactic: simp
Theorem: Finset.powersetCard_nonempty
File: Mathlib/Data/Finset/Powerset.lean

Proof steps:
state_before: α : Type u_1
s✝ t✝ : Finset α
n : ℕ
s t : Finset α
⊢ (powersetCard n s).Nonempty ↔ n ≤ s.card
state_after: no goals
tactic: aesop (add simp [Finset.Nonempty, exists_subset_card_eq, card_le_card])
Theorem: AlgebraicGeometry.IsClosedImmersion.spec_of_surjective
File: Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean

Proof steps:
state_before: R S : CommRingCat
f : R ⟶ S
h : Function.Surjective ⇑f
x : ↑↑(Spec S).toPresheafedSpace
⊢ Function.Surjective ⇑(Scheme.Hom.stalkMap (Spec.map f) x)
state_after: R S : CommRingCat
f : R ⟶ S
h : Function.Surjective ⇑f
x : ↑↑(Spec S).toPresheafedSpace
this : (RingHom.toMorphismProperty fun {R S} [CommRing R] [CommRing S] f => Function.Surjective ⇑f).RespectsIso
⊢ Function.Surjective ⇑(Scheme.Hom.stalkMap (Spec.map f) x)
tactic: haveI : (RingHom.toMorphismProperty (fun f ↦ Function.Surjective f)).RespectsIso := by
      rw [← RingHom.toMorphismProperty_respectsIso_iff]
      exact surjective_respectsIso
state_before: R S : CommRingCat
f : R ⟶ S
h : Function.Surjective ⇑f
x : ↑↑(Spec S).toPresheafedSpace
this : (RingHom.toMorphismProperty fun {R S} [CommRing R] [CommRing S] f => Function.Surjective ⇑f).RespectsIso
⊢ Function.Surjective ⇑(Scheme.Hom.stalkMap (Spec.map f) x)
state_after: R S : CommRingCat
f : R ⟶ S
h : Function.Surjective ⇑f
x : ↑↑(Spec S).toPresheafedSpace
this : (RingHom.toMorphismProperty fun {R S} [CommRing R] [CommRing S] f => Function.Surjective ⇑f).RespectsIso
⊢ RingHom.toMorphismProperty (fun {R S} [CommRing R] [CommRing S] f => Function.Surjective ⇑f)
    (CommRingCat.ofHom (Localization.localRingHom ((PrimeSpectrum.comap f) x).asIdeal x.asIdeal f ⋯))
tactic: apply (MorphismProperty.arrow_mk_iso_iff
      (RingHom.toMorphismProperty (fun f ↦ Function.Surjective f))
      (Scheme.arrowStalkMapSpecIso f x)).mpr
state_before: R S : CommRingCat
f : R ⟶ S
h : Function.Surjective ⇑f
x : ↑↑(Spec S).toPresheafedSpace
this : (RingHom.toMorphismProperty fun {R S} [CommRing R] [CommRing S] f => Function.Surjective ⇑f).RespectsIso
⊢ RingHom.toMorphismProperty (fun {R S} [CommRing R] [CommRing S] f => Function.Surjective ⇑f)
    (CommRingCat.ofHom (Localization.localRingHom ((PrimeSpectrum.comap f) x).asIdeal x.asIdeal f ⋯))
state_after: no goals
tactic: exact surjective_localRingHom_of_surjective f h x.asIdeal
Theorem: MeasureTheory.condexpIndSMul_smul
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹⁹ : RCLike 𝕜
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : InnerProductSpace 𝕜 E
inst✝¹⁶ : CompleteSpace E
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : InnerProductSpace 𝕜 E'
inst✝¹³ : CompleteSpace E'
inst✝¹² : NormedSpace ℝ E'
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup G'
inst✝⁷ : NormedSpace ℝ G'
inst✝⁶ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
E'' : Type u_8
𝕜' : Type u_9
inst✝⁵ : RCLike 𝕜'
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : InnerProductSpace 𝕜' E''
inst✝² : CompleteSpace E''
inst✝¹ : NormedSpace ℝ E''
inst✝ : NormedSpace ℝ G
hm : m ≤ m0
hs : MeasurableSet s
hμs : μ s ≠ ⊤
c : ℝ
x : G
⊢ condexpIndSMul hm hs hμs (c • x) = c • condexpIndSMul hm hs hμs x
state_after: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹⁹ : RCLike 𝕜
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : InnerProductSpace 𝕜 E
inst✝¹⁶ : CompleteSpace E
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : InnerProductSpace 𝕜 E'
inst✝¹³ : CompleteSpace E'
inst✝¹² : NormedSpace ℝ E'
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup G'
inst✝⁷ : NormedSpace ℝ G'
inst✝⁶ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
E'' : Type u_8
𝕜' : Type u_9
inst✝⁵ : RCLike 𝕜'
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : InnerProductSpace 𝕜' E''
inst✝² : CompleteSpace E''
inst✝¹ : NormedSpace ℝ E''
inst✝ : NormedSpace ℝ G
hm : m ≤ m0
hs : MeasurableSet s
hμs : μ s ≠ ⊤
c : ℝ
x : G
⊢ (compLpL 2 μ (toSpanSingleton ℝ (c • x))) ↑((condexpL2 ℝ ℝ hm) (indicatorConstLp 2 hs hμs 1)) =
    c • (compLpL 2 μ (toSpanSingleton ℝ x)) ↑((condexpL2 ℝ ℝ hm) (indicatorConstLp 2 hs hμs 1))
tactic: simp_rw [condexpIndSMul]
state_before: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹⁹ : RCLike 𝕜
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : InnerProductSpace 𝕜 E
inst✝¹⁶ : CompleteSpace E
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : InnerProductSpace 𝕜 E'
inst✝¹³ : CompleteSpace E'
inst✝¹² : NormedSpace ℝ E'
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup G'
inst✝⁷ : NormedSpace ℝ G'
inst✝⁶ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
E'' : Type u_8
𝕜' : Type u_9
inst✝⁵ : RCLike 𝕜'
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : InnerProductSpace 𝕜' E''
inst✝² : CompleteSpace E''
inst✝¹ : NormedSpace ℝ E''
inst✝ : NormedSpace ℝ G
hm : m ≤ m0
hs : MeasurableSet s
hμs : μ s ≠ ⊤
c : ℝ
x : G
⊢ (compLpL 2 μ (toSpanSingleton ℝ (c • x))) ↑((condexpL2 ℝ ℝ hm) (indicatorConstLp 2 hs hμs 1)) =
    c • (compLpL 2 μ (toSpanSingleton ℝ x)) ↑((condexpL2 ℝ ℝ hm) (indicatorConstLp 2 hs hμs 1))
state_after: no goals
tactic: rw [toSpanSingleton_smul, smul_compLpL, smul_apply]
Theorem: ContinuousMultilinearMap.norm_mkPiAlgebra_of_empty
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

Proof steps:
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹⁵ : Fintype ι
inst✝¹⁴ : Fintype ι'
inst✝¹³ : NontriviallyNormedField 𝕜
inst✝¹² : (i : ι) → SeminormedAddCommGroup (E i)
inst✝¹¹ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹⁰ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁹ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁸ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁷ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁶ : SeminormedAddCommGroup G
inst✝⁵ : NormedSpace 𝕜 G
inst✝⁴ : SeminormedAddCommGroup G'
inst✝³ : NormedSpace 𝕜 G'
A : Type u_1
inst✝² : NormedCommRing A
inst✝¹ : NormedAlgebra 𝕜 A
inst✝ : IsEmpty ι
⊢ ‖ContinuousMultilinearMap.mkPiAlgebra 𝕜 ι A‖ = ‖1‖
state_after: case a
𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹⁵ : Fintype ι
inst✝¹⁴ : Fintype ι'
inst✝¹³ : NontriviallyNormedField 𝕜
inst✝¹² : (i : ι) → SeminormedAddCommGroup (E i)
inst✝¹¹ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹⁰ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁹ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁸ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁷ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁶ : SeminormedAddCommGroup G
inst✝⁵ : NormedSpace 𝕜 G
inst✝⁴ : SeminormedAddCommGroup G'
inst✝³ : NormedSpace 𝕜 G'
A : Type u_1
inst✝² : NormedCommRing A
inst✝¹ : NormedAlgebra 𝕜 A
inst✝ : IsEmpty ι
⊢ ‖ContinuousMultilinearMap.mkPiAlgebra 𝕜 ι A‖ ≤ ‖1‖

case a
𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹⁵ : Fintype ι
inst✝¹⁴ : Fintype ι'
inst✝¹³ : NontriviallyNormedField 𝕜
inst✝¹² : (i : ι) → SeminormedAddCommGroup (E i)
inst✝¹¹ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹⁰ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁹ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁸ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁷ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁶ : SeminormedAddCommGroup G
inst✝⁵ : NormedSpace 𝕜 G
inst✝⁴ : SeminormedAddCommGroup G'
inst✝³ : NormedSpace 𝕜 G'
A : Type u_1
inst✝² : NormedCommRing A
inst✝¹ : NormedAlgebra 𝕜 A
inst✝ : IsEmpty ι
⊢ ‖1‖ ≤ ‖ContinuousMultilinearMap.mkPiAlgebra 𝕜 ι A‖
tactic: apply le_antisymm
Theorem: Ordinal.zero_nmul
File: Mathlib/SetTheory/Ordinal/NaturalOps.lean

Proof steps:
state_before: a✝ b c d : Ordinal.{u}
a : Ordinal.{u_1}
⊢ 0 ⨳ a = 0
state_after: no goals
tactic: rw [nmul_comm, nmul_zero]
Theorem: Ideal.rank_prime_pow_ramificationIdx
File: Mathlib/NumberTheory/RamificationInertia.lean

Proof steps:
state_before: R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
hfp : NeZero e
inst✝² : IsDedekindDomain S
inst✝¹ : p.IsMaximal
inst✝ : P.IsPrime
hP0 : P ≠ ⊥
he : e ≠ 0
⊢ Module.rank (R ⧸ p) (S ⧸ P ^ e) = e • Module.rank (R ⧸ p) (S ⧸ P)
state_after: R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
hfp : NeZero e
inst✝² : IsDedekindDomain S
inst✝¹ : p.IsMaximal
inst✝ : P.IsPrime
hP0 : P ≠ ⊥
he : e ≠ 0
this : NeZero e := { out := he }
⊢ Module.rank (R ⧸ p) (S ⧸ P ^ e) = e • Module.rank (R ⧸ p) (S ⧸ P)
tactic: letI : NeZero e := ⟨he⟩
state_before: R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
hfp : NeZero e
inst✝² : IsDedekindDomain S
inst✝¹ : p.IsMaximal
inst✝ : P.IsPrime
hP0 : P ≠ ⊥
he : e ≠ 0
this : NeZero e := { out := he }
⊢ Module.rank (R ⧸ p) (S ⧸ P ^ e) = e • Module.rank (R ⧸ p) (S ⧸ P)
state_after: R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
hfp : NeZero e
inst✝² : IsDedekindDomain S
inst✝¹ : p.IsMaximal
inst✝ : P.IsPrime
hP0 : P ≠ ⊥
he : e ≠ 0
this✝ : NeZero e := { out := he }
this : Module.rank (R ⧸ p) ↥(map (Quotient.mk (P ^ e)) (P ^ 0)) = (e - 0) • Module.rank (R ⧸ p) (S ⧸ P)
⊢ Module.rank (R ⧸ p) (S ⧸ P ^ e) = e • Module.rank (R ⧸ p) (S ⧸ P)
tactic: have := rank_pow_quot f p P hP0 0 (Nat.zero_le e)
state_before: R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
hfp : NeZero e
inst✝² : IsDedekindDomain S
inst✝¹ : p.IsMaximal
inst✝ : P.IsPrime
hP0 : P ≠ ⊥
he : e ≠ 0
this✝ : NeZero e := { out := he }
this : Module.rank (R ⧸ p) ↥(map (Quotient.mk (P ^ e)) (P ^ 0)) = (e - 0) • Module.rank (R ⧸ p) (S ⧸ P)
⊢ Module.rank (R ⧸ p) (S ⧸ P ^ e) = e • Module.rank (R ⧸ p) (S ⧸ P)
state_after: R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
hfp : NeZero e
inst✝² : IsDedekindDomain S
inst✝¹ : p.IsMaximal
inst✝ : P.IsPrime
hP0 : P ≠ ⊥
he : e ≠ 0
this✝ : NeZero e := { out := he }
this : Module.rank (R ⧸ p) ↥⊤ = e • Module.rank (R ⧸ p) (S ⧸ P)
⊢ Module.rank (R ⧸ p) (S ⧸ P ^ e) = e • Module.rank (R ⧸ p) (S ⧸ P)
tactic: rw [pow_zero, Nat.sub_zero, Ideal.one_eq_top, Ideal.map_top] at this
state_before: R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
hfp : NeZero e
inst✝² : IsDedekindDomain S
inst✝¹ : p.IsMaximal
inst✝ : P.IsPrime
hP0 : P ≠ ⊥
he : e ≠ 0
this✝ : NeZero e := { out := he }
this : Module.rank (R ⧸ p) ↥⊤ = e • Module.rank (R ⧸ p) (S ⧸ P)
⊢ Module.rank (R ⧸ p) (S ⧸ P ^ e) = e • Module.rank (R ⧸ p) (S ⧸ P)
state_after: no goals
tactic: exact (rank_top (R ⧸ p) _).symm.trans this
Theorem: Nat.mem_divisors_prime_pow
File: Mathlib/NumberTheory/Divisors.lean

Proof steps:
state_before: n p : ℕ
pp : Prime p
k x : ℕ
⊢ x ∈ (p ^ k).divisors ↔ ∃ j ≤ k, x = p ^ j
state_after: no goals
tactic: rw [mem_divisors, Nat.dvd_prime_pow pp, and_iff_left (ne_of_gt (pow_pos pp.pos k))]
Theorem: CoxeterSystem.IsReflection.isReflection_inv
File: Mathlib/GroupTheory/Coxeter/Inversion.lean

Proof steps:
state_before: B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
t : W
ht : cs.IsReflection t
⊢ cs.IsReflection t⁻¹
state_after: no goals
tactic: rwa [ht.inv]