ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: multiplicity.finite_pow
File: Mathlib/RingTheory/Multiplicity.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝ : CancelCommMonoidWithZero α
p a : α
hp : Prime p
x✝ : Finite p a
⊢ ¬p ^ (0 + 1) ∣ a ^ 0
state_after: no goals
tactic: simp [mt isUnit_iff_dvd_one.2 hp.2.1]
state_before: α : Type u_1
β : Type u_2
inst✝ : CancelCommMonoidWithZero α
p a : α
hp : Prime p
k : ℕ
ha : Finite p a
⊢ Finite p (a ^ (k + 1))
state_after: α : Type u_1
β : Type u_2
inst✝ : CancelCommMonoidWithZero α
p a : α
hp : Prime p
k : ℕ
ha : Finite p a
⊢ Finite p (a * a ^ k)
tactic: rw [_root_.pow_succ']
state_before: α : Type u_1
β : Type u_2
inst✝ : CancelCommMonoidWithZero α
p a : α
hp : Prime p
k : ℕ
ha : Finite p a
⊢ Finite p (a * a ^ k)
state_after: no goals
tactic: exact finite_mul hp ha (finite_pow hp ha)
Theorem: CategoryTheory.Limits.IsZero.of_mono_eq_zero
File: Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean

Proof steps:
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
inst✝ : Mono f
h : f = 0
⊢ IsZero X
state_after: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y : C
inst✝ : Mono 0
⊢ IsZero X
tactic: subst h
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y : C
inst✝ : Mono 0
⊢ IsZero X
state_after: no goals
tactic: apply of_mono_zero X Y
Theorem: Real.volume_Icc_pi_toReal
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

Proof steps:
state_before: ι : Type u_1
inst✝ : Fintype ι
a b : ι → ℝ
h : a ≤ b
⊢ (volume (Icc a b)).toReal = ∏ i : ι, (b i - a i)
state_after: no goals
tactic: simp only [volume_Icc_pi, ENNReal.toReal_prod, ENNReal.toReal_ofReal (sub_nonneg.2 (h _))]
Theorem: Set.eqOn_univ
File: Mathlib/Data/Set/Function.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁✝ f₂✝ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
f₁ f₂ : α → β
⊢ EqOn f₁ f₂ univ ↔ f₁ = f₂
state_after: no goals
tactic: simp [EqOn, funext_iff]
Theorem: PMF.support_map
File: Mathlib/Probability/ProbabilityMassFunction/Constructions.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β
p : PMF α
b✝ b : β
⊢ b ∈ (map f p).support ↔ b ∈ f '' p.support
state_after: no goals
tactic: simp [map, @eq_comm β b]
Theorem: CharP.exists'
File: Mathlib/Algebra/CharP/Defs.lean

Proof steps:
state_before: R✝ : Type u_1
inst✝⁵ : NonAssocSemiring R✝
inst✝⁴ : NoZeroDivisors R✝
inst✝³ : Nontrivial R✝
R : Type u_2
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
⊢ CharZero R ∨ ∃ p, Fact (Nat.Prime p) ∧ CharP R p
state_after: case intro
R✝ : Type u_1
inst✝⁵ : NonAssocSemiring R✝
inst✝⁴ : NoZeroDivisors R✝
inst✝³ : Nontrivial R✝
R : Type u_2
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
p : ℕ
hchar : CharP R p
⊢ CharZero R ∨ ∃ p, Fact (Nat.Prime p) ∧ CharP R p
tactic: obtain ⟨p, hchar⟩ := CharP.exists R
state_before: case intro
R✝ : Type u_1
inst✝⁵ : NonAssocSemiring R✝
inst✝⁴ : NoZeroDivisors R✝
inst✝³ : Nontrivial R✝
R : Type u_2
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
p : ℕ
hchar : CharP R p
⊢ CharZero R ∨ ∃ p, Fact (Nat.Prime p) ∧ CharP R p
state_after: case intro.inl
R✝ : Type u_1
inst✝⁵ : NonAssocSemiring R✝
inst✝⁴ : NoZeroDivisors R✝
inst✝³ : Nontrivial R✝
R : Type u_2
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
p : ℕ
hchar : CharP R p
h : Nat.Prime p
⊢ CharZero R ∨ ∃ p, Fact (Nat.Prime p) ∧ CharP R p

case intro.inr
R✝ : Type u_1
inst✝⁵ : NonAssocSemiring R✝
inst✝⁴ : NoZeroDivisors R✝
inst✝³ : Nontrivial R✝
R : Type u_2
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
hchar : CharP R 0
⊢ CharZero R ∨ ∃ p, Fact (Nat.Prime p) ∧ CharP R p
tactic: rcases char_is_prime_or_zero R p with h | rfl
state_before: case intro.inl
R✝ : Type u_1
inst✝⁵ : NonAssocSemiring R✝
inst✝⁴ : NoZeroDivisors R✝
inst✝³ : Nontrivial R✝
R : Type u_2
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
p : ℕ
hchar : CharP R p
h : Nat.Prime p
⊢ CharZero R ∨ ∃ p, Fact (Nat.Prime p) ∧ CharP R p

case intro.inr
R✝ : Type u_1
inst✝⁵ : NonAssocSemiring R✝
inst✝⁴ : NoZeroDivisors R✝
inst✝³ : Nontrivial R✝
R : Type u_2
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
hchar : CharP R 0
⊢ CharZero R ∨ ∃ p, Fact (Nat.Prime p) ∧ CharP R p
state_after: no goals
tactic: exacts [Or.inr ⟨p, Fact.mk h, hchar⟩, Or.inl (charP_to_charZero R)]
Theorem: MeasureTheory.Measure.map_eq_zero_iff
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
hf : AEMeasurable f μ
⊢ map f μ = 0 ↔ μ = 0
state_after: no goals
tactic: simp_rw [← measure_univ_eq_zero, map_apply_of_aemeasurable hf .univ, preimage_univ]
Theorem: PiTensorProduct.induction_on
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

Proof steps:
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁷ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type u_9
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type u_10
inst✝ : AddCommMonoid F
motive : (⨂[R] (i : ι), s i) → Prop
z : ⨂[R] (i : ι), s i
smul_tprod : ∀ (r : R) (f : (i : ι) → s i), motive (r • (tprod R) f)
add : ∀ (x y : ⨂[R] (i : ι), s i), motive x → motive y → motive (x + y)
⊢ motive z
state_after: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁷ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type u_9
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type u_10
inst✝ : AddCommMonoid F
motive : (⨂[R] (i : ι), s i) → Prop
z : ⨂[R] (i : ι), s i
add : ∀ (x y : ⨂[R] (i : ι), s i), motive x → motive y → motive (x + y)
smul_tprod : ∀ (r : R) (f : (i : ι) → s i), motive (tprodCoeff R r f)
⊢ motive z
tactic: simp_rw [← tprodCoeff_eq_smul_tprod] at smul_tprod
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁷ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type u_9
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type u_10
inst✝ : AddCommMonoid F
motive : (⨂[R] (i : ι), s i) → Prop
z : ⨂[R] (i : ι), s i
add : ∀ (x y : ⨂[R] (i : ι), s i), motive x → motive y → motive (x + y)
smul_tprod : ∀ (r : R) (f : (i : ι) → s i), motive (tprodCoeff R r f)
⊢ motive z
state_after: no goals
tactic: exact PiTensorProduct.induction_on' z smul_tprod add
Theorem: Module.AEval.annihilator_eq_ker_aeval
File: Mathlib/Algebra/Polynomial/Module/AEval.lean

Proof steps:
state_before: R : Type u_3
A : Type u_1
M : Type u_2
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring A
a : A
inst✝⁵ : Algebra R A
inst✝⁴ : AddCommMonoid M
inst✝³ : Module A M
inst✝² : Module R M
inst✝¹ : IsScalarTower R A M
inst✝ : FaithfulSMul A M
⊢ annihilator R[X] (AEval R M a) = RingHom.ker (aeval a)
state_after: case h
R : Type u_3
A : Type u_1
M : Type u_2
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring A
a : A
inst✝⁵ : Algebra R A
inst✝⁴ : AddCommMonoid M
inst✝³ : Module A M
inst✝² : Module R M
inst✝¹ : IsScalarTower R A M
inst✝ : FaithfulSMul A M
p : R[X]
⊢ p ∈ annihilator R[X] (AEval R M a) ↔ p ∈ RingHom.ker (aeval a)
tactic: ext p
state_before: case h
R : Type u_3
A : Type u_1
M : Type u_2
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring A
a : A
inst✝⁵ : Algebra R A
inst✝⁴ : AddCommMonoid M
inst✝³ : Module A M
inst✝² : Module R M
inst✝¹ : IsScalarTower R A M
inst✝ : FaithfulSMul A M
p : R[X]
⊢ p ∈ annihilator R[X] (AEval R M a) ↔ p ∈ RingHom.ker (aeval a)
state_after: case h
R : Type u_3
A : Type u_1
M : Type u_2
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring A
a : A
inst✝⁵ : Algebra R A
inst✝⁴ : AddCommMonoid M
inst✝³ : Module A M
inst✝² : Module R M
inst✝¹ : IsScalarTower R A M
inst✝ : FaithfulSMul A M
p : R[X]
⊢ (∀ (m : AEval R M a), p • m = 0) ↔ (aeval a) p = 0
tactic: simp_rw [mem_annihilator, RingHom.mem_ker]
state_before: case h
R : Type u_3
A : Type u_1
M : Type u_2
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring A
a : A
inst✝⁵ : Algebra R A
inst✝⁴ : AddCommMonoid M
inst✝³ : Module A M
inst✝² : Module R M
inst✝¹ : IsScalarTower R A M
inst✝ : FaithfulSMul A M
p : R[X]
⊢ (∀ (m : AEval R M a), p • m = 0) ↔ (aeval a) p = 0
state_after: case h
R : Type u_3
A : Type u_1
M : Type u_2
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring A
a : A
inst✝⁵ : Algebra R A
inst✝⁴ : AddCommMonoid M
inst✝³ : Module A M
inst✝² : Module R M
inst✝¹ : IsScalarTower R A M
inst✝ : FaithfulSMul A M
p : R[X]
⊢ (∀ (m : M), (aeval a) p • m = 0) ↔ (aeval a) p = 0
tactic: change (∀ m : M, aeval a p • m = 0) ↔ _
state_before: case h
R : Type u_3
A : Type u_1
M : Type u_2
inst✝⁷ : CommSemiring R
inst✝⁶ : Semiring A
a : A
inst✝⁵ : Algebra R A
inst✝⁴ : AddCommMonoid M
inst✝³ : Module A M
inst✝² : Module R M
inst✝¹ : IsScalarTower R A M
inst✝ : FaithfulSMul A M
p : R[X]
⊢ (∀ (m : M), (aeval a) p • m = 0) ↔ (aeval a) p = 0
state_after: no goals
tactic: exact ⟨fun h ↦ eq_of_smul_eq_smul (α := M) <| by simp [h], fun h ↦ by simp [h]⟩
Theorem: Nat.one_div_lt_one_div
File: Mathlib/Data/Nat/Cast/Order/Field.lean

Proof steps:
state_before: α : Type u_1
inst✝ : LinearOrderedSemifield α
n m : ℕ
h : n < m
⊢ 1 / (↑m + 1) < 1 / (↑n + 1)
state_after: case refine_1
α : Type u_1
inst✝ : LinearOrderedSemifield α
n m : ℕ
h : n < m
⊢ 0 < ↑n + 1

case refine_2
α : Type u_1
inst✝ : LinearOrderedSemifield α
n m : ℕ
h : n < m
⊢ ↑n + 1 < ↑m + 1
tactic: refine one_div_lt_one_div_of_lt ?_ ?_
Theorem: integrable_cexp_quadratic'
File: Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean

Proof steps:
state_before: b : ℂ
hb : b.re < 0
c d : ℂ
⊢ Integrable (fun x => cexp (b * ↑x ^ 2 + c * ↑x + d)) volume
state_after: b : ℂ
hb : b.re < 0
c d : ℂ
hb' : b ≠ 0
⊢ Integrable (fun x => cexp (b * ↑x ^ 2 + c * ↑x + d)) volume
tactic: have hb' : b ≠ 0 := by contrapose! hb; rw [hb, zero_re]
state_before: b : ℂ
hb : b.re < 0
c d : ℂ
hb' : b ≠ 0
⊢ Integrable (fun x => cexp (b * ↑x ^ 2 + c * ↑x + d)) volume
state_after: b : ℂ
hb : b.re < 0
c d : ℂ
hb' : b ≠ 0
H : ¬Integrable (fun x => cexp (b * ↑x ^ 2 + c * ↑x + d)) volume
⊢ False
tactic: by_contra H
state_before: b : ℂ
hb : b.re < 0
c d : ℂ
hb' : b ≠ 0
H : ¬Integrable (fun x => cexp (b * ↑x ^ 2 + c * ↑x + d)) volume
⊢ False
state_after: no goals
tactic: simpa [hb', pi_ne_zero, Complex.exp_ne_zero, integral_undef H]
    using integral_cexp_quadratic hb c d
Theorem: FirstOrder.Language.model_nonemptyTheory_iff
File: Mathlib/ModelTheory/Semantics.lean

Proof steps:
state_before: L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
n : ℕ
T : L.Theory
⊢ M ⊨ L.nonemptyTheory ↔ Nonempty M
state_after: no goals
tactic: simp only [nonemptyTheory, Theory.model_iff, Set.mem_singleton_iff, forall_eq,
    Sentence.realize_cardGe, Nat.cast_one, one_le_iff_ne_zero, mk_ne_zero_iff]
Theorem: Zspan.fundamentalDomain_ae_parallelepiped
File: Mathlib/Algebra/Module/Zlattice/Basic.lean

Proof steps:
state_before: E : Type u_1
ι : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
b : Basis ι ℝ E
inst✝³ : Fintype ι
inst✝² : MeasurableSpace E
μ : Measure E
inst✝¹ : BorelSpace E
inst✝ : μ.IsAddHaarMeasure
⊢ fundamentalDomain b =ᶠ[ae μ] parallelepiped ⇑b
state_after: no goals
tactic: classical
  have : FiniteDimensional ℝ E := FiniteDimensional.of_fintype_basis b
  rw [← measure_symmDiff_eq_zero_iff, symmDiff_of_le (fundamentalDomain_subset_parallelepiped b)]
  suffices (parallelepiped b \ fundamentalDomain b) ⊆ ⋃ i,
      AffineSubspace.mk' (b i) (span ℝ (b '' (Set.univ \ {i}))) by
    refine measure_mono_null this
      (measure_iUnion_null_iff.mpr fun i ↦ Measure.addHaar_affineSubspace μ _ ?_)
    refine (ne_of_mem_of_not_mem' (AffineSubspace.mem_top _ _ 0)
      (AffineSubspace.mem_mk'_iff_vsub_mem.not.mpr ?_)).symm
    simp_rw [vsub_eq_sub, zero_sub, neg_mem_iff]
    exact linearIndependent_iff_not_mem_span.mp b.linearIndependent i
  intro x hx
  simp_rw [parallelepiped_basis_eq, Set.mem_Icc, Set.mem_diff, Set.mem_setOf_eq,
    mem_fundamentalDomain, Set.mem_Ico, not_forall, not_and, not_lt] at hx
  obtain ⟨i, hi⟩ := hx.2
  have : b.repr x i = 1 := le_antisymm (hx.1 i).2 (hi (hx.1 i).1)
  rw [← b.sum_repr x, ← Finset.sum_erase_add _ _ (Finset.mem_univ i), this, one_smul, ← vadd_eq_add]
  refine Set.mem_iUnion.mpr ⟨i, AffineSubspace.vadd_mem_mk' _
    (sum_smul_mem _ _ (fun i hi ↦ Submodule.subset_span ?_))⟩
  exact ⟨i, Set.mem_diff_singleton.mpr ⟨trivial, Finset.ne_of_mem_erase hi⟩, rfl⟩
Theorem: Finset.sum_card_le
File: Mathlib/Algebra/Order/BigOperators/Group/Finset.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝¹ : DecidableEq α
s : Finset α
B : Finset (Finset α)
n : ℕ
inst✝ : Fintype α
h : ∀ (a : α), (filter (fun x => a ∈ x) B).card ≤ n
⊢ ∑ s ∈ B, s.card = ∑ s ∈ B, (univ ∩ s).card
state_after: no goals
tactic: simp_rw [univ_inter]
Theorem: add_abs_eq_two_nsmul_posPart
File: Mathlib/Algebra/Order/Group/PosPart.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝² : Lattice α
inst✝¹ : CommGroup α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a : α
⊢ a * mabs a = a⁺ᵐ ^ 2
state_after: no goals
tactic: rw [mul_comm, mabs_mul_eq_oneLePart_sq]
Theorem: add_sub_cancel
File: Mathlib/Algebra/Group/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : CommGroup G
a✝ b✝ c d a b : G
⊢ a * (b / a) = b
state_after: no goals
tactic: rw [← mul_div_assoc, mul_div_cancel_left]
Theorem: IntermediateField.lift_adjoin_simple
File: Mathlib/FieldTheory/Adjoin.lean

Proof steps:
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : IntermediateField F E
α : ↥K
⊢ lift (adjoin F {α}) = adjoin F {↑α}
state_after: no goals
tactic: simp only [lift_adjoin, Set.image_singleton]
Theorem: CategoryTheory.Functor.map_inv
File: Mathlib/CategoryTheory/Iso.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
F : C ⥤ D
X Y : C
f : X ⟶ Y
inst✝ : IsIso f
⊢ F.map (inv f) = inv (F.map f)
state_after: case hom_inv_id
C : Type u
inst✝² : Category.{v, u} C
X✝ Y✝ Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F : C ⥤ D
X Y : C
f : X ⟶ Y
inst✝ : IsIso f
⊢ F.map f ≫ F.map (inv f) = 𝟙 (F.obj X)
tactic: apply eq_inv_of_hom_inv_id
state_before: case hom_inv_id
C : Type u
inst✝² : Category.{v, u} C
X✝ Y✝ Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F : C ⥤ D
X Y : C
f : X ⟶ Y
inst✝ : IsIso f
⊢ F.map f ≫ F.map (inv f) = 𝟙 (F.obj X)
state_after: no goals
tactic: simp [← F.map_comp]
Theorem: MeasureTheory.FiniteMeasure.prod_swap
File: Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : MeasurableSpace α
β : Type u_2
inst✝ : MeasurableSpace β
μ : FiniteMeasure α
ν : FiniteMeasure β
⊢ (μ.prod ν).map Prod.swap = ν.prod μ
state_after: case a
α : Type u_1
inst✝¹ : MeasurableSpace α
β : Type u_2
inst✝ : MeasurableSpace β
μ : FiniteMeasure α
ν : FiniteMeasure β
⊢ ↑((μ.prod ν).map Prod.swap) = ↑(ν.prod μ)
tactic: apply Subtype.ext
state_before: case a
α : Type u_1
inst✝¹ : MeasurableSpace α
β : Type u_2
inst✝ : MeasurableSpace β
μ : FiniteMeasure α
ν : FiniteMeasure β
⊢ ↑((μ.prod ν).map Prod.swap) = ↑(ν.prod μ)
state_after: no goals
tactic: simp [Measure.prod_swap]
Theorem: MeasureTheory.condexp_of_stronglyMeasurable
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean

Proof steps:
state_before: α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hm : m ≤ m0
hμm : SigmaFinite (μ.trim hm)
f : α → F'
hf : StronglyMeasurable f
hfi : Integrable f μ
⊢ μ[f|m] = f
state_after: no goals
tactic: rw [condexp_of_sigmaFinite hm, if_pos hfi, if_pos hf]
Theorem: IsGenericPoint.disjoint_iff
File: Mathlib/Topology/Sober.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
x y : α
S U Z : Set α
h : IsGenericPoint x S
hU : IsOpen U
⊢ Disjoint S U ↔ x ∉ U
state_after: no goals
tactic: rw [h.mem_open_set_iff hU, ← not_disjoint_iff_nonempty_inter, Classical.not_not]
Theorem: Subgroup.normal_mul
File: Mathlib/Algebra/Group/Subgroup/Pointwise.lean

Proof steps:
state_before: α : Type u_1
G : Type u_2
A : Type u_3
S : Type u_4
inst✝² : Group G
inst✝¹ : AddGroup A
s : Set G
N H : Subgroup G
inst✝ : N.Normal
⊢ ↑(N ⊔ H) = ↑N * ↑H
state_after: no goals
tactic: rw [← set_mul_normal_comm, sup_comm, mul_normal]
Theorem: Finset.toColex_ne_toColex
File: Mathlib/Combinatorics/Colex.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
s t : Finset α
⊢ { ofColex := s } ≠ { ofColex := t } ↔ s ≠ t
state_after: no goals
tactic: simp
Theorem: Antitone.mulIndicator_eventuallyEq_iInter
File: Mathlib/Order/Filter/IndicatorFunction.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
M : Type u_3
E : Type u_4
ι : Type u_5
inst✝¹ : Preorder ι
inst✝ : One β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
⊢ (fun i => (s i).mulIndicator f a) =ᶠ[atTop] fun x => (⋂ i, s i).mulIndicator f a
state_after: no goals
tactic: classical exact hs.piecewise_eventually_eq_iInter f 1 a
Theorem: Seminorm.smul_sup
File: Mathlib/Analysis/Seminorm.lean

Proof steps:
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : SeminormedRing 𝕜
inst✝⁴ : AddGroup E
inst✝³ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
c : 𝕜
x✝ y✝ : E
r✝ : ℝ
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
r : R
p q : Seminorm 𝕜 E
x y : ℝ
⊢ r • max x y = max (r • x) (r • y)
state_after: no goals
tactic: simpa only [← smul_eq_mul, ← NNReal.smul_def, smul_one_smul ℝ≥0 r (_ : ℝ)] using
      mul_max_of_nonneg x y (r • (1 : ℝ≥0) : ℝ≥0).coe_nonneg
Theorem: CategoryTheory.GradedObject.TriangleIndexData.r_zero
File: Mathlib/CategoryTheory/GradedObject/Unitor.lean

Proof steps:
state_before: I₁ : Type u_1
I₂ : Type u_2
I₃ : Type u_3
J : Type u_4
inst✝ : Zero I₂
r : I₁ × I₂ × I₃ → J
π : I₁ × I₃ → J
τ : TriangleIndexData r π
i₁ : I₁
i₃ : I₃
⊢ r (i₁, 0, i₃) = π (i₁, i₃)
state_after: no goals
tactic: rw [← τ.hp₂₃, τ.h₃ i₃]
Theorem: FreeGroup.Red.length
File: Mathlib/GroupTheory/FreeGroup/Basic.lean

Proof steps:
state_before: α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
h : Red L₁ L₂
⊢ ∃ n, L₁.length = L₂.length + 2 * n
state_after: case refl
α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
⊢ ∃ n, L₁.length = L₁.length + 2 * n

case tail
α : Type u
L L₁ L₂✝ L₃✝ L₄ L₂ L₃ : List (α × Bool)
_h₁₂ : ReflTransGen Step L₁ L₂
h₂₃ : Step L₂ L₃
ih : ∃ n, L₁.length = L₂.length + 2 * n
⊢ ∃ n, L₁.length = L₃.length + 2 * n
tactic: induction' h with L₂ L₃ _h₁₂ h₂₃ ih
Theorem: PNat.Coprime.gcd_mul_right_cancel
File: Mathlib/Data/PNat/Prime.lean

Proof steps:
state_before: m n k : ℕ+
⊢ k.Coprime n → (m * k).gcd n = m.gcd n
state_after: m n k : ℕ+
⊢ k.Coprime n → (k * m).gcd n = m.gcd n
tactic: rw [mul_comm]
state_before: m n k : ℕ+
⊢ k.Coprime n → (k * m).gcd n = m.gcd n
state_after: no goals
tactic: apply Coprime.gcd_mul_left_cancel
Theorem: MeasureTheory.Measure.FiniteAtFilter.inf_ae_iff
File: Mathlib/MeasureTheory/Measure/Typeclasses.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
f g : Filter α
⊢ μ.FiniteAtFilter (f ⊓ ae μ) ↔ μ.FiniteAtFilter f
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
f g : Filter α
⊢ μ.FiniteAtFilter (f ⊓ ae μ) → μ.FiniteAtFilter f
tactic: refine ⟨?_, fun h => h.filter_mono inf_le_left⟩
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
f g : Filter α
⊢ μ.FiniteAtFilter (f ⊓ ae μ) → μ.FiniteAtFilter f
state_after: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t✝ : Set α
f g : Filter α
t : Set α
ht : t ∈ f
u : Set α
hu : u ∈ ae μ
hμ : μ (t ∩ u) < ⊤
⊢ μ.FiniteAtFilter f
tactic: rintro ⟨s, ⟨t, ht, u, hu, rfl⟩, hμ⟩
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t✝ : Set α
f g : Filter α
t : Set α
ht : t ∈ f
u : Set α
hu : u ∈ ae μ
hμ : μ (t ∩ u) < ⊤
⊢ μ.FiniteAtFilter f
state_after: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t✝ : Set α
f g : Filter α
t : Set α
ht : t ∈ f
u : Set α
hu : u ∈ ae μ
hμ : μ (t ∩ u) < ⊤
⊢ μ t ≤ μ (t ∩ u)
tactic: suffices μ t ≤ μ (t ∩ u) from ⟨t, ht, this.trans_lt hμ⟩
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t✝ : Set α
f g : Filter α
t : Set α
ht : t ∈ f
u : Set α
hu : u ∈ ae μ
hμ : μ (t ∩ u) < ⊤
⊢ μ t ≤ μ (t ∩ u)
state_after: no goals
tactic: exact measure_mono_ae (mem_of_superset hu fun x hu ht => ⟨ht, hu⟩)
Theorem: Real.IsConjExponent.inv_sub_one
File: Mathlib/Data/Real/ConjExponents.lean

Proof steps:
state_before: a b p q : ℝ
h : p.IsConjExponent q
⊢ p⁻¹ - 1 = -q⁻¹
state_after: no goals
tactic: rw [← h.inv_add_inv_conj, sub_add_cancel_left]
Theorem: Real.smul_map_volume_mul_right
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

Proof steps:
state_before: ι : Type u_1
inst✝ : Fintype ι
a : ℝ
h : a ≠ 0
⊢ ofReal |a| • Measure.map (fun x => x * a) volume = volume
state_after: no goals
tactic: simpa only [mul_comm] using Real.smul_map_volume_mul_left h
Theorem: wbtw_or_wbtw_smul_vadd_of_nonpos
File: Mathlib/Analysis/Convex/Between.lean

Proof steps:
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x : P
v : V
r₁ r₂ : R
hr₁ : r₁ ≤ 0
hr₂ : r₂ ≤ 0
⊢ Wbtw R x (r₁ • v +ᵥ x) (r₂ • v +ᵥ x) ∨ Wbtw R x (r₂ • v +ᵥ x) (r₁ • v +ᵥ x)
state_after: case inl
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x : P
v : V
r₁ r₂ : R
hr₁ : r₁ ≤ 0
hr₂ : r₂ ≤ 0
h : r₁ ≤ r₂
⊢ Wbtw R x (r₁ • v +ᵥ x) (r₂ • v +ᵥ x) ∨ Wbtw R x (r₂ • v +ᵥ x) (r₁ • v +ᵥ x)

case inr
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x : P
v : V
r₁ r₂ : R
hr₁ : r₁ ≤ 0
hr₂ : r₂ ≤ 0
h : r₂ ≤ r₁
⊢ Wbtw R x (r₁ • v +ᵥ x) (r₂ • v +ᵥ x) ∨ Wbtw R x (r₂ • v +ᵥ x) (r₁ • v +ᵥ x)
tactic: rcases le_total r₁ r₂ with (h | h)