1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: IsPGroup.nonempty_fixed_point_of_prime_not_dvd_card
File: Mathlib/GroupTheory/PGroup.lean

tactic: cases nonempty_fintype (fixedPoints G α)
state_before: p : ℕ
G : Type u_1
inst✝³ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝² : MulAction G α
inst✝¹ : Fintype α
hpα : ¬p ∣ card α
inst✝ : Finite ↑(fixedPoints G α)
⊢ Nonempty ↑(fixedPoints G α)
state_after: case intro
p : ℕ
G : Type u_1
inst✝³ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝² : MulAction G α
inst✝¹ : Fintype α
hpα : ¬p ∣ card α
inst✝ : Finite ↑(fixedPoints G α)
val✝ : Fintype ↑(fixedPoints G α)
⊢ Nonempty ↑(fixedPoints G α)

tactic: rw [← card_pos_iff, pos_iff_ne_zero]
state_before: case intro
p : ℕ
G : Type u_1
inst✝³ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝² : MulAction G α
inst✝¹ : Fintype α
hpα : ¬p ∣ card α
inst✝ : Finite ↑(fixedPoints G α)
val✝ : Fintype ↑(fixedPoints G α)
⊢ Nonempty ↑(fixedPoints G α)
state_after: case intro
p : ℕ
G : Type u_1
inst✝³ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝² : MulAction G α
inst✝¹ : Fintype α
hpα : ¬p ∣ card α
inst✝ : Finite ↑(fixedPoints G α)
val✝ : Fintype ↑(fixedPoints G α)
⊢ card ↑(fixedPoints G α) ≠ 0

tactic: contrapose! hpα
state_before: case intro
p : ℕ
G : Type u_1
inst✝³ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝² : MulAction G α
inst✝¹ : Fintype α
hpα : ¬p ∣ card α
inst✝ : Finite ↑(fixedPoints G α)
val✝ : Fintype ↑(fixedPoints G α)
⊢ card ↑(fixedPoints G α) ≠ 0
state_after: case intro
p : ℕ
G : Type u_1
inst✝³ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝² : MulAction G α
inst✝¹ : Fintype α
inst✝ : Finite ↑(fixedPoints G α)
val✝ : Fintype ↑(fixedPoints G α)
hpα : card ↑(fixedPoints G α) = 0
⊢ p ∣ card α

tactic: rw [← Nat.modEq_zero_iff_dvd, ← hpα]
state_before: case intro
p : ℕ
G : Type u_1
inst✝³ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝² : MulAction G α
inst✝¹ : Fintype α
inst✝ : Finite ↑(fixedPoints G α)
val✝ : Fintype ↑(fixedPoints G α)
hpα : card ↑(fixedPoints G α) = 0
⊢ p ∣ card α
state_after: case intro
p : ℕ
G : Type u_1
inst✝³ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝² : MulAction G α
inst✝¹ : Fintype α
inst✝ : Finite ↑(fixedPoints G α)
val✝ : Fintype ↑(fixedPoints G α)
hpα : card ↑(fixedPoints G α) = 0
⊢ card α ≡ card ↑(fixedPoints G α) [MOD p]

tactic: exact hG.card_modEq_card_fixedPoints α
state_before: case intro
p : ℕ
G : Type u_1
inst✝³ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝² : MulAction G α
inst✝¹ : Fintype α
inst✝ : Finite ↑(fixedPoints G α)
val✝ : Fintype ↑(fixedPoints G α)
hpα : card ↑(fixedPoints G α) = 0
⊢ card α ≡ card ↑(fixedPoints G α) [MOD p]
state_after: no goals
Theorem: Matroid.Dep.of_restriction
File: Mathlib/Data/Matroid/Restrict.lean

tactic: obtain ⟨R, hR, rfl⟩ := hNM
state_before: α : Type u_1
M : Matroid α
R I J X Y : Set α
N : Matroid α
hX : N.Dep X
hNM : N ≤r M
⊢ M.Dep X
state_after: case intro.intro
α : Type u_1
M : Matroid α
R✝ I J X Y R : Set α
hR : R ⊆ M.E
hX : (M ↾ R).Dep X
⊢ M.Dep X

tactic: rw [restrict_dep_iff] at hX
state_before: case intro.intro
α : Type u_1
M : Matroid α
R✝ I J X Y R : Set α
hR : R ⊆ M.E
hX : (M ↾ R).Dep X
⊢ M.Dep X
state_after: case intro.intro
α : Type u_1
M : Matroid α
R✝ I J X Y R : Set α
hR : R ⊆ M.E
hX : ¬M.Indep X ∧ X ⊆ R
⊢ M.Dep X

tactic: exact ⟨hX.1, hX.2.trans hR⟩
state_before: case intro.intro
α : Type u_1
M : Matroid α
R✝ I J X Y R : Set α
hR : R ⊆ M.E
hX : ¬M.Indep X ∧ X ⊆ R
⊢ M.Dep X
state_after: no goals
Theorem: IsAdjoinRoot.algebraMap_apply
File: Mathlib/RingTheory/IsAdjoinRoot.lean

tactic: rw [h.algebraMap_eq, RingHom.comp_apply]
state_before: R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : Ring S
f : R[X]
inst✝ : Algebra R S
h : IsAdjoinRoot S f
x : R
⊢ (algebraMap R S) x = h.map (C x)
state_after: no goals
Theorem: Complex.countable_preimage_exp
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: refine ⟨fun hs => ?_, fun hs => ?_⟩
state_before: s : Set ℂ
⊢ (cexp ⁻¹' s).Countable ↔ s.Countable
state_after: case refine_1
s : Set ℂ
hs : (cexp ⁻¹' s).Countable
⊢ s.Countable

case refine_2
s : Set ℂ
hs : s.Countable
⊢ (cexp ⁻¹' s).Countable

tactic: refine ((hs.image exp).insert 0).mono ?_
state_before: case refine_1
s : Set ℂ
hs : (cexp ⁻¹' s).Countable
⊢ s.Countable
state_after: case refine_1
s : Set ℂ
hs : (cexp ⁻¹' s).Countable
⊢ s ⊆ insert 0 (cexp '' (cexp ⁻¹' s))

tactic: rw [Set.image_preimage_eq_inter_range, range_exp, ← Set.diff_eq, ← Set.union_singleton,
    Set.diff_union_self]
state_before: case refine_1
s : Set ℂ
hs : (cexp ⁻¹' s).Countable
⊢ s ⊆ insert 0 (cexp '' (cexp ⁻¹' s))
state_after: case refine_1
s : Set ℂ
hs : (cexp ⁻¹' s).Countable
⊢ s ⊆ s ∪ {0}

tactic: exact Set.subset_union_left
state_before: case refine_1
s : Set ℂ
hs : (cexp ⁻¹' s).Countable
⊢ s ⊆ s ∪ {0}
state_after: no goals

tactic: rw [← Set.biUnion_preimage_singleton]
state_before: case refine_2
s : Set ℂ
hs : s.Countable
⊢ (cexp ⁻¹' s).Countable
state_after: case refine_2
s : Set ℂ
hs : s.Countable
⊢ (⋃ y ∈ s, cexp ⁻¹' {y}).Countable

tactic: refine hs.biUnion fun z hz => ?_
state_before: case refine_2
s : Set ℂ
hs : s.Countable
⊢ (⋃ y ∈ s, cexp ⁻¹' {y}).Countable
state_after: case refine_2
s : Set ℂ
hs : s.Countable
z : ℂ
hz : z ∈ s
⊢ (cexp ⁻¹' {z}).Countable

tactic: rcases em (∃ w, exp w = z) with (⟨w, rfl⟩ | hne)
state_before: case refine_2
s : Set ℂ
hs : s.Countable
z : ℂ
hz : z ∈ s
⊢ (cexp ⁻¹' {z}).Countable
state_after: case refine_2.inl.intro
s : Set ℂ
hs : s.Countable
w : ℂ
hz : cexp w ∈ s
⊢ (cexp ⁻¹' {cexp w}).Countable

case refine_2.inr
s : Set ℂ
hs : s.Countable
z : ℂ
hz : z ∈ s
hne : ¬∃ w, cexp w = z
⊢ (cexp ⁻¹' {z}).Countable

tactic: simp only [Set.preimage, Set.mem_singleton_iff, exp_eq_exp_iff_exists_int, Set.setOf_exists]
state_before: case refine_2.inl.intro
s : Set ℂ
hs : s.Countable
w : ℂ
hz : cexp w ∈ s
⊢ (cexp ⁻¹' {cexp w}).Countable
state_after: case refine_2.inl.intro
s : Set ℂ
hs : s.Countable
w : ℂ
hz : cexp w ∈ s
⊢ (⋃ i, {x | x = w + ↑i * (2 * ↑π * I)}).Countable

tactic: exact Set.countable_iUnion fun m => Set.countable_singleton _
state_before: case refine_2.inl.intro
s : Set ℂ
hs : s.Countable
w : ℂ
hz : cexp w ∈ s
⊢ (⋃ i, {x | x = w + ↑i * (2 * ↑π * I)}).Countable
state_after: no goals

tactic: push_neg at hne
state_before: case refine_2.inr
s : Set ℂ
hs : s.Countable
z : ℂ
hz : z ∈ s
hne : ¬∃ w, cexp w = z
⊢ (cexp ⁻¹' {z}).Countable
state_after: case refine_2.inr
s : Set ℂ
hs : s.Countable
z : ℂ
hz : z ∈ s
hne : ∀ (w : ℂ), cexp w ≠ z
⊢ (cexp ⁻¹' {z}).Countable

tactic: simp [Set.preimage, hne]
state_before: case refine_2.inr
s : Set ℂ
hs : s.Countable
z : ℂ
hz : z ∈ s
hne : ∀ (w : ℂ), cexp w ≠ z
⊢ (cexp ⁻¹' {z}).Countable
state_after: no goals
Theorem: mulSupport_comp_inv_smul
File: Mathlib/Data/Set/Pointwise/Support.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Group α
inst✝¹ : MulAction α β
inst✝ : One γ
c : α
f : β → γ
⊢ (mulSupport fun x => f (c⁻¹ • x)) = c • mulSupport f
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Group α
inst✝¹ : MulAction α β
inst✝ : One γ
c : α
f : β → γ
x : β
⊢ (x ∈ mulSupport fun x => f (c⁻¹ • x)) ↔ x ∈ c • mulSupport f

tactic: simp only [mem_smul_set_iff_inv_smul_mem, mem_mulSupport]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Group α
inst✝¹ : MulAction α β
inst✝ : One γ
c : α
f : β → γ
x : β
⊢ (x ∈ mulSupport fun x => f (c⁻¹ • x)) ↔ x ∈ c • mulSupport f
state_after: no goals
Theorem: isCancelMulZero_iff_isDomain_or_subsingleton
File: Mathlib/Algebra/Ring/Basic.lean

tactic: refine ⟨fun t ↦ ?_, fun h ↦ h.elim (fun _ ↦ inferInstance) (fun _ ↦ inferInstance)⟩
state_before: R : Type u_1
α : Type u_2
inst✝ : Semiring α
⊢ IsCancelMulZero α ↔ IsDomain α ∨ Subsingleton α
state_after: R : Type u_1
α : Type u_2
inst✝ : Semiring α
t : IsCancelMulZero α
⊢ IsDomain α ∨ Subsingleton α

tactic: rw [or_iff_not_imp_right, not_subsingleton_iff_nontrivial]
state_before: R : Type u_1
α : Type u_2
inst✝ : Semiring α
t : IsCancelMulZero α
⊢ IsDomain α ∨ Subsingleton α
state_after: R : Type u_1
α : Type u_2
inst✝ : Semiring α
t : IsCancelMulZero α
⊢ Nontrivial α → IsDomain α

tactic: exact fun _ ↦ {}
state_before: R : Type u_1
α : Type u_2
inst✝ : Semiring α
t : IsCancelMulZero α
⊢ Nontrivial α → IsDomain α
state_after: no goals
Theorem: Subfield.mem_sSup_of_directedOn
File: Mathlib/Algebra/Field/Subfield.lean

tactic: haveI : Nonempty S := Sne.to_subtype
state_before: K : Type u
L : Type v
M : Type w
inst✝² : DivisionRing K
inst✝¹ : DivisionRing L
inst✝ : DivisionRing M
S : Set (Subfield K)
Sne : S.Nonempty
hS : DirectedOn (fun x x_1 => x ≤ x_1) S
x : K
⊢ x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s
state_after: K : Type u
L : Type v
M : Type w
inst✝² : DivisionRing K
inst✝¹ : DivisionRing L
inst✝ : DivisionRing M
S : Set (Subfield K)
Sne : S.Nonempty
hS : DirectedOn (fun x x_1 => x ≤ x_1) S
x : K
this : Nonempty ↑S
⊢ x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s

tactic: simp only [sSup_eq_iSup', mem_iSup_of_directed hS.directed_val, Subtype.exists, exists_prop]
state_before: K : Type u
L : Type v
M : Type w
inst✝² : DivisionRing K
inst✝¹ : DivisionRing L
inst✝ : DivisionRing M
S : Set (Subfield K)
Sne : S.Nonempty
hS : DirectedOn (fun x x_1 => x ≤ x_1) S
x : K
this : Nonempty ↑S
⊢ x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s
state_after: no goals
Theorem: Nat.factorization_factorial_eq_zero_of_lt
File: Mathlib/Data/Nat/Choose/Factorization.lean

tactic: induction' n with n hn
state_before: p n k : ℕ
h : n < p
⊢ n !.factorization p = 0
state_after: case zero
p n k : ℕ
h : 0 < p
⊢ 0!.factorization p = 0

case succ
p n✝ k n : ℕ
hn : n < p → n !.factorization p = 0
h : n + 1 < p
⊢ (n + 1)!.factorization p = 0

tactic: rw [factorial_succ, factorization_mul n.succ_ne_zero n.factorial_ne_zero, Finsupp.coe_add,
  Pi.add_apply, hn (lt_of_succ_lt h), add_zero, factorization_eq_zero_of_lt h]
state_before: case succ
p n✝ k n : ℕ
hn : n < p → n !.factorization p = 0
h : n + 1 < p
⊢ (n + 1)!.factorization p = 0
state_after: no goals

tactic: simp
state_before: case zero
p n k : ℕ
h : 0 < p
⊢ 0!.factorization p = 0
state_after: no goals
Theorem: FdRep.char_orthonormal
File: Mathlib/RepresentationTheory/Character.lean

tactic: conv_lhs =>
  enter [2, 2, g]
  rw [mul_comm, ← char_dual, ← Pi.mul_apply, ← char_tensor]
  rw [char_iso (FdRep.dualTensorIsoLinHom W.ρ V)]
state_before: k : Type u
inst✝⁵ : Field k
G : Grp
inst✝⁴ : IsAlgClosed k
inst✝³ : Fintype ↑G
inst✝² : Invertible ↑(Fintype.card ↑G)
V W : FdRep k ↑G
inst✝¹ : Simple V
inst✝ : Simple W
⊢ ⅟↑(Fintype.card ↑G) • ∑ g : ↑G, V.character g * W.character g⁻¹ = if Nonempty (V ≅ W) then 1 else 0
state_after: k : Type u
inst✝⁵ : Field k
G : Grp
inst✝⁴ : IsAlgClosed k
inst✝³ : Fintype ↑G
inst✝² : Invertible ↑(Fintype.card ↑G)
V W : FdRep k ↑G
inst✝¹ : Simple V
inst✝ : Simple W
⊢ ⅟↑(Fintype.card ↑G) • Finset.univ.sum (of (linHom W.ρ V.ρ)).character = if Nonempty (V ≅ W) then 1 else 0

tactic: rw [average_char_eq_finrank_invariants]
state_before: k : Type u
inst✝⁵ : Field k
G : Grp
inst✝⁴ : IsAlgClosed k
inst✝³ : Fintype ↑G
inst✝² : Invertible ↑(Fintype.card ↑G)
V W : FdRep k ↑G
inst✝¹ : Simple V
inst✝ : Simple W
⊢ ⅟↑(Fintype.card ↑G) • Finset.univ.sum (of (linHom W.ρ V.ρ)).character = if Nonempty (V ≅ W) then 1 else 0
state_after: k : Type u
inst✝⁵ : Field k
G : Grp
inst✝⁴ : IsAlgClosed k
inst✝³ : Fintype ↑G
inst✝² : Invertible ↑(Fintype.card ↑G)
V W : FdRep k ↑G
inst✝¹ : Simple V
inst✝ : Simple W
⊢ ↑(finrank k ↥(invariants (of (linHom W.ρ V.ρ)).ρ)) = if Nonempty (V ≅ W) then 1 else 0

tactic: rw [show (of (linHom W.ρ V.ρ)).ρ = linHom W.ρ V.ρ from FdRep.of_ρ (linHom W.ρ V.ρ)]
state_before: k : Type u
inst✝⁵ : Field k
G : Grp
inst✝⁴ : IsAlgClosed k
inst✝³ : Fintype ↑G
inst✝² : Invertible ↑(Fintype.card ↑G)
V W : FdRep k ↑G
inst✝¹ : Simple V
inst✝ : Simple W
⊢ ↑(finrank k ↥(invariants (of (linHom W.ρ V.ρ)).ρ)) = if Nonempty (V ≅ W) then 1 else 0
state_after: k : Type u
inst✝⁵ : Field k
G : Grp
inst✝⁴ : IsAlgClosed k
inst✝³ : Fintype ↑G
inst✝² : Invertible ↑(Fintype.card ↑G)
V W : FdRep k ↑G
inst✝¹ : Simple V
inst✝ : Simple W
⊢ ↑(finrank k ↥(linHom W.ρ V.ρ).invariants) = if Nonempty (V ≅ W) then 1 else 0

tactic: erw [(linHom.invariantsEquivFdRepHom W V).finrank_eq]
state_before: k : Type u
inst✝⁵ : Field k
G : Grp
inst✝⁴ : IsAlgClosed k
inst✝³ : Fintype ↑G
inst✝² : Invertible ↑(Fintype.card ↑G)
V W : FdRep k ↑G
inst✝¹ : Simple V
inst✝ : Simple W
⊢ ↑(finrank k ↥(linHom W.ρ V.ρ).invariants) = if Nonempty (V ≅ W) then 1 else 0
state_after: k : Type u
inst✝⁵ : Field k
G : Grp
inst✝⁴ : IsAlgClosed k
inst✝³ : Fintype ↑G
inst✝² : Invertible ↑(Fintype.card ↑G)
V W : FdRep k ↑G
inst✝¹ : Simple V
inst✝ : Simple W
⊢ ↑(finrank k (W ⟶ V)) = if Nonempty (V ≅ W) then 1 else 0

tactic: rw_mod_cast [finrank_hom_simple_simple W V, Iso.nonempty_iso_symm]
state_before: k : Type u
inst✝⁵ : Field k
G : Grp
inst✝⁴ : IsAlgClosed k
inst✝³ : Fintype ↑G
inst✝² : Invertible ↑(Fintype.card ↑G)
V W : FdRep k ↑G
inst✝¹ : Simple V
inst✝ : Simple W
⊢ ↑(finrank k (W ⟶ V)) = if Nonempty (V ≅ W) then 1 else 0
state_after: no goals
Theorem: nilpotencyClass_eq_zero_of_subsingleton
File: Mathlib/RingTheory/Nilpotent/Defs.lean

tactic: let s : Set ℕ := {k | x ^ k = 0}
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝² : Zero R
inst✝¹ : Pow R ℕ
inst✝ : Subsingleton R
⊢ nilpotencyClass x = 0
state_after: R : Type u_1
S : Type u_2
x y : R
inst✝² : Zero R
inst✝¹ : Pow R ℕ
inst✝ : Subsingleton R
s : Set ℕ := {k | x ^ k = 0}
⊢ nilpotencyClass x = 0

tactic: suffices s = univ by change sInf _ = 0; simp [s] at this; simp [this]
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝² : Zero R
inst✝¹ : Pow R ℕ
inst✝ : Subsingleton R
s : Set ℕ := {k | x ^ k = 0}
⊢ nilpotencyClass x = 0
state_after: R : Type u_1
S : Type u_2
x y : R
inst✝² : Zero R
inst✝¹ : Pow R ℕ
inst✝ : Subsingleton R
s : Set ℕ := {k | x ^ k = 0}
⊢ s = univ

tactic: exact eq_univ_iff_forall.mpr fun k ↦ Subsingleton.elim _ _
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝² : Zero R
inst✝¹ : Pow R ℕ
inst✝ : Subsingleton R
s : Set ℕ := {k | x ^ k = 0}
⊢ s = univ
state_after: no goals

tactic: change sInf _ = 0
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝² : Zero R
inst✝¹ : Pow R ℕ
inst✝ : Subsingleton R
s : Set ℕ := {k | x ^ k = 0}
this : s = univ
⊢ nilpotencyClass x = 0
state_after: R : Type u_1
S : Type u_2
x y : R
inst✝² : Zero R
inst✝¹ : Pow R ℕ
inst✝ : Subsingleton R
s : Set ℕ := {k | x ^ k = 0}
this : s = univ
⊢ sInf {k | x ^ k = 0} = 0

tactic: simp [s] at this
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝² : Zero R
inst✝¹ : Pow R ℕ
inst✝ : Subsingleton R
s : Set ℕ := {k | x ^ k = 0}
this : s = univ
⊢ sInf {k | x ^ k = 0} = 0
state_after: R : Type u_1
S : Type u_2
x y : R
inst✝² : Zero R
inst✝¹ : Pow R ℕ
inst✝ : Subsingleton R
s : Set ℕ := {k | x ^ k = 0}
this : {k | x ^ k = 0} = univ
⊢ sInf {k | x ^ k = 0} = 0

tactic: simp [this]
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝² : Zero R
inst✝¹ : Pow R ℕ
inst✝ : Subsingleton R
s : Set ℕ := {k | x ^ k = 0}
this : {k | x ^ k = 0} = univ
⊢ sInf {k | x ^ k = 0} = 0
state_after: no goals
Theorem: MeasureTheory.Integrable.norm_integral_condexpKernel
File: Mathlib/Probability/Kernel/Condexp.lean

tactic: rw [condexpKernel]
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝⁴ : StandardBorelSpace Ω
inst✝³ : Nonempty Ω
μ : Measure Ω
inst✝² : IsFiniteMeasure μ
inst✝¹ : NormedAddCommGroup F
f : Ω → F
inst✝ : NormedSpace ℝ F
hf_int : Integrable f μ
⊢ Integrable (fun ω => ‖∫ (y : Ω), f y ∂(condexpKernel μ m) ω‖) μ
state_after: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝⁴ : StandardBorelSpace Ω
inst✝³ : Nonempty Ω
μ : Measure Ω
inst✝² : IsFiniteMeasure μ
inst✝¹ : NormedAddCommGroup F
f : Ω → F
inst✝ : NormedSpace ℝ F
hf_int : Integrable f μ
⊢ Integrable (fun ω => ‖∫ (y : Ω), f y ∂(kernel.comap (condDistrib id id μ) id ⋯) ω‖) μ

tactic: convert Integrable.norm_integral_condDistrib
  (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
  (hf_int.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ)) using 1
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝⁴ : StandardBorelSpace Ω
inst✝³ : Nonempty Ω
μ : Measure Ω
inst✝² : IsFiniteMeasure μ
inst✝¹ : NormedAddCommGroup F
f : Ω → F
inst✝ : NormedSpace ℝ F
hf_int : Integrable f μ
⊢ Integrable (fun ω => ‖∫ (y : Ω), f y ∂(kernel.comap (condDistrib id id μ) id ⋯) ω‖) μ
state_after: no goals
Theorem: dist_eq_norm_div'
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: rw [dist_comm, dist_eq_norm_div]
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a✝ a₁ a₂ b✝ b₁ b₂ : E
r r₁ r₂ : ℝ
a b : E
⊢ dist a b = ‖b / a‖
state_after: no goals
Theorem: ProbabilityTheory.kernel.measurable_lintegral_indicator_const
File: Mathlib/Probability/Kernel/MeasurableIntegral.lean

tactic: conv =>
  congr
  ext
  erw [lintegral_indicator_const_comp measurable_prod_mk_left ht _]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
t : Set (α × β)
ht : MeasurableSet t
c : ℝ≥0∞
⊢ Measurable fun a => ∫⁻ (b : β), t.indicator (Function.const (α × β) c) (a, b) ∂κ a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
t : Set (α × β)
ht : MeasurableSet t
c : ℝ≥0∞
⊢ Measurable fun x => c * (κ x) (Prod.mk x ⁻¹' t)

tactic: exact Measurable.const_mul (measurable_kernel_prod_mk_left ht) c
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
t : Set (α × β)
ht : MeasurableSet t
c : ℝ≥0∞
⊢ Measurable fun x => c * (κ x) (Prod.mk x ⁻¹' t)
state_after: no goals
Theorem: Right.one_lt_inv_iff
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [← mul_lt_mul_iff_right a, inv_mul_self, one_mul]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LT α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b c : α
⊢ 1 < a⁻¹ ↔ a < 1
state_after: no goals
Theorem: quotientMap_projIcc
File: Mathlib/Topology/Order/ProjIcc.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁴ : LinearOrder α
inst✝³ : TopologicalSpace γ
a b c : α
h : a ≤ b
inst✝² : TopologicalSpace α
inst✝¹ : OrderTopology α
inst✝ : TopologicalSpace β
s : Set ↑(Icc a b)
hs : IsOpen (projIcc a b h ⁻¹' s)
⊢ Subtype.val ⁻¹' (projIcc a b h ⁻¹' s) = s
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁴ : LinearOrder α
inst✝³ : TopologicalSpace γ
a b c : α
h : a ≤ b
inst✝² : TopologicalSpace α
inst✝¹ : OrderTopology α
inst✝ : TopologicalSpace β
s : Set ↑(Icc a b)
hs : IsOpen (projIcc a b h ⁻¹' s)
x✝ : { x // x ∈ Icc a b }
⊢ x✝ ∈ Subtype.val ⁻¹' (projIcc a b h ⁻¹' s) ↔ x✝ ∈ s

tactic: simp
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁴ : LinearOrder α
inst✝³ : TopologicalSpace γ
a b c : α
h : a ≤ b
inst✝² : TopologicalSpace α
inst✝¹ : OrderTopology α
inst✝ : TopologicalSpace β
s : Set ↑(Icc a b)
hs : IsOpen (projIcc a b h ⁻¹' s)
x✝ : { x // x ∈ Icc a b }
⊢ x✝ ∈ Subtype.val ⁻¹' (projIcc a b h ⁻¹' s) ↔ x✝ ∈ s
state_after: no goals
Theorem: CategoryTheory.OverPresheafAux.unitBackward_unitForward
File: Mathlib/CategoryTheory/Comma/Presheaf.lean

tactic: refine funext fun p => YonedaCollection.ext ?_ (OverArrows.ext ?_)
state_before: C : Type u
inst✝ : Category.{v, u} C
A F : Cᵒᵖ ⥤ Type v
η : F ⟶ A
X : C
⊢ unitBackward η X ∘ unitForward η X = id
state_after: case refine_1
C : Type u
inst✝ : Category.{v, u} C
A F : Cᵒᵖ ⥤ Type v
η : F ⟶ A
X : C
p : YonedaCollection (restrictedYonedaObj η) X
⊢ ((unitBackward η X ∘ unitForward η X) p).fst = (id p).fst

case refine_2
C : Type u
inst✝ : Category.{v, u} C
A F : Cᵒᵖ ⥤ Type v
η : F ⟶ A
X : C
p : YonedaCollection (restrictedYonedaObj η) X
⊢ OverArrows.val ((restrictedYonedaObj η).map (eqToHom ⋯) (id p).snd) =
    OverArrows.val ((unitBackward η X ∘ unitForward η X) p).snd

tactic: simpa [unitForward, unitBackward] using congrArg yonedaEquiv.symm p.snd.app_val
state_before: case refine_1
C : Type u
inst✝ : Category.{v, u} C
A F : Cᵒᵖ ⥤ Type v
η : F ⟶ A
X : C
p : YonedaCollection (restrictedYonedaObj η) X
⊢ ((unitBackward η X ∘ unitForward η X) p).fst = (id p).fst
state_after: no goals

tactic: simp [unitForward, unitBackward]
state_before: case refine_2
C : Type u
inst✝ : Category.{v, u} C
A F : Cᵒᵖ ⥤ Type v
η : F ⟶ A
X : C
p : YonedaCollection (restrictedYonedaObj η) X
⊢ OverArrows.val ((restrictedYonedaObj η).map (eqToHom ⋯) (id p).snd) =
    OverArrows.val ((unitBackward η X ∘ unitForward η X) p).snd
state_after: no goals
Theorem: EuclideanGeometry.angle_self_right
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean

tactic: rw [angle_comm, angle_self_left]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p✝ p₀✝ p₁ p₂ p₀ p : P
⊢ ∠ p p₀ p₀ = π / 2
state_after: no goals
Theorem: Set.image2_iUnion₂_left
File: Mathlib/Data/Set/Lattice.lean

tactic: simp_rw [image2_iUnion_left]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β → γ
s✝ : Set α
t✝ : Set β
s : (i : ι) → κ i → Set α
t : Set β
⊢ image2 f (⋃ i, ⋃ j, s i j) t = ⋃ i, ⋃ j, image2 f (s i j) t
state_after: no goals
Theorem: Int.succ_iterate
File: Mathlib/Data/Int/SuccPred.lean

tactic: rw [Function.iterate_succ', Int.ofNat_succ, ← add_assoc]
state_before: a : ℤ
n : ℕ
⊢ succ^[n + 1] a = a + ↑(n + 1)
state_after: a : ℤ
n : ℕ
⊢ (succ ∘ succ^[n]) a = a + ↑n + 1

tactic: exact congr_arg _ (succ_iterate a n)
state_before: a : ℤ
n : ℕ
⊢ (succ ∘ succ^[n]) a = a + ↑n + 1
state_after: no goals
Theorem: OnePoint.isClosed_iff_of_not_mem
File: Mathlib/Topology/Compactification/OnePoint.lean

tactic: rw [← isOpen_compl_iff, isOpen_iff_of_mem (mem_compl h), ← preimage_compl, compl_compl]
state_before: X : Type u_1
inst✝ : TopologicalSpace X
s : Set (OnePoint X)
t : Set X
h : ∞ ∉ s
⊢ IsClosed s ↔ IsClosed (some ⁻¹' s) ∧ IsCompact (some ⁻¹' s)
state_after: no goals
Theorem: CompleteSublattice.codisjoint_iff
File: Mathlib/Order/CompleteSublattice.lean

tactic: rw [codisjoint_iff, codisjoint_iff, ← Sublattice.coe_sup, ← coe_top (L := L),
  Subtype.coe_injective.eq_iff]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : CompleteLatticeHom α β
L : CompleteSublattice α
a b : ↥L
⊢ Codisjoint a b ↔ Codisjoint ↑a ↑b
state_after: no goals
Theorem: List.ranges_join'
File: Mathlib/Data/List/Range.lean

tactic: simp only [sum_cons, join, ← map_join, ranges_join', range_add]
state_before: α : Type u
a : ℕ
l : List ℕ
⊢ (a :: l).ranges.join = range (Nat.sum (a :: l))
state_after: no goals
Theorem: ComplexShape.Embedding.r_eq_none
File: Mathlib/Algebra/Homology/Embedding/Basic.lean

tactic: rintro ⟨i, hi'⟩
state_before: ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
e : c.Embedding c'
i' : ι'
hi : ∀ (i : ι), e.f i ≠ i'
⊢ ¬∃ i, e.f i = i'
state_after: case intro
ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
e : c.Embedding c'
i' : ι'
hi : ∀ (i : ι), e.f i ≠ i'
i : ι
hi' : e.f i = i'
⊢ False

tactic: exact hi i hi'
state_before: case intro
ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
e : c.Embedding c'
i' : ι'
hi : ∀ (i : ι), e.f i ≠ i'
i : ι
hi' : e.f i = i'
⊢ False
state_after: no goals