1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Beatty.hit_or_miss
File: Mathlib/NumberTheory/Rayleigh.lean

tactic: cases lt_or_ge ((⌈(j + 1) / r⌉ - 1) * r) j
state_before: r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
⊢ j ∈ {x | ∃ k, beattySeq r k = x} ∨ ∃ k, ↑k < ↑j / r ∧ (↑j + 1) / r ≤ ↑k + 1
state_after: case inl
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r < ↑j
⊢ j ∈ {x | ∃ k, beattySeq r k = x} ∨ ∃ k, ↑k < ↑j / r ∧ (↑j + 1) / r ≤ ↑k + 1

case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r ≥ ↑j
⊢ j ∈ {x | ∃ k, beattySeq r k = x} ∨ ∃ k, ↑k < ↑j / r ∧ (↑j + 1) / r ≤ ↑k + 1

tactic: refine Or.inr ⟨⌈(j + 1) / r⌉ - 1, ?_⟩
state_before: case inl
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r < ↑j
⊢ j ∈ {x | ∃ k, beattySeq r k = x} ∨ ∃ k, ↑k < ↑j / r ∧ (↑j + 1) / r ≤ ↑k + 1
state_after: case inl
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r < ↑j
⊢ ↑(⌈(↑j + 1) / r⌉ - 1) < ↑j / r ∧ (↑j + 1) / r ≤ ↑(⌈(↑j + 1) / r⌉ - 1) + 1

tactic: rw [Int.cast_sub, Int.cast_one, lt_div_iff h, sub_add_cancel]
state_before: case inl
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r < ↑j
⊢ ↑(⌈(↑j + 1) / r⌉ - 1) < ↑j / r ∧ (↑j + 1) / r ≤ ↑(⌈(↑j + 1) / r⌉ - 1) + 1
state_after: case inl
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r < ↑j
⊢ (↑⌈(↑j + 1) / r⌉ - 1) * r < ↑j ∧ (↑j + 1) / r ≤ ↑⌈(↑j + 1) / r⌉

tactic: exact ⟨‹_›, Int.le_ceil _⟩
state_before: case inl
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r < ↑j
⊢ (↑⌈(↑j + 1) / r⌉ - 1) * r < ↑j ∧ (↑j + 1) / r ≤ ↑⌈(↑j + 1) / r⌉
state_after: no goals

tactic: refine Or.inl ⟨⌈(j + 1) / r⌉ - 1, ?_⟩
state_before: case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r ≥ ↑j
⊢ j ∈ {x | ∃ k, beattySeq r k = x} ∨ ∃ k, ↑k < ↑j / r ∧ (↑j + 1) / r ≤ ↑k + 1
state_after: case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r ≥ ↑j
⊢ beattySeq r (⌈(↑j + 1) / r⌉ - 1) = j

tactic: rw [beattySeq, Int.floor_eq_iff, Int.cast_sub, Int.cast_one, ← lt_div_iff h, sub_lt_iff_lt_add]
state_before: case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r ≥ ↑j
⊢ beattySeq r (⌈(↑j + 1) / r⌉ - 1) = j
state_after: case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r ≥ ↑j
⊢ ↑j ≤ (↑⌈(↑j + 1) / r⌉ - 1) * r ∧ ↑⌈(↑j + 1) / r⌉ < (↑j + 1) / r + 1

tactic: exact ⟨‹_›, Int.ceil_lt_add_one _⟩
state_before: case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : (↑⌈(↑j + 1) / r⌉ - 1) * r ≥ ↑j
⊢ ↑j ≤ (↑⌈(↑j + 1) / r⌉ - 1) * r ∧ ↑⌈(↑j + 1) / r⌉ < (↑j + 1) / r + 1
state_after: no goals
Theorem: ProbabilityTheory.condCount_empty
File: Mathlib/Probability/CondCount.lean

tactic: simp
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
s : Set Ω
⊢ (condCount s) ∅ = 0
state_after: no goals
Theorem: SetTheory.PGame.add_moveLeft_inr
File: Mathlib/SetTheory/Game/PGame.lean

tactic: cases x
state_before: xl xr : Type u
x y : PGame
i : y.LeftMoves
⊢ (x + y).moveLeft (toLeftMovesAdd (Sum.inr i)) = x + y.moveLeft i
state_after: case mk
xl xr : Type u
y : PGame
i : y.LeftMoves
α✝ β✝ : Type u_1
a✝¹ : α✝ → PGame
a✝ : β✝ → PGame
⊢ (mk α✝ β✝ a✝¹ a✝ + y).moveLeft (toLeftMovesAdd (Sum.inr i)) = mk α✝ β✝ a✝¹ a✝ + y.moveLeft i

tactic: cases y
state_before: case mk
xl xr : Type u
y : PGame
i : y.LeftMoves
α✝ β✝ : Type u_1
a✝¹ : α✝ → PGame
a✝ : β✝ → PGame
⊢ (mk α✝ β✝ a✝¹ a✝ + y).moveLeft (toLeftMovesAdd (Sum.inr i)) = mk α✝ β✝ a✝¹ a✝ + y.moveLeft i
state_after: case mk.mk
xl xr : Type u
α✝¹ β✝¹ : Type u_1
a✝³ : α✝¹ → PGame
a✝² : β✝¹ → PGame
α✝ β✝ : Type u_1
a✝¹ : α✝ → PGame
a✝ : β✝ → PGame
i : (mk α✝ β✝ a✝¹ a✝).LeftMoves
⊢ (mk α✝¹ β✝¹ a✝³ a✝² + mk α✝ β✝ a✝¹ a✝).moveLeft (toLeftMovesAdd (Sum.inr i)) =
    mk α✝¹ β✝¹ a✝³ a✝² + (mk α✝ β✝ a✝¹ a✝).moveLeft i

tactic: rfl
state_before: case mk.mk
xl xr : Type u
α✝¹ β✝¹ : Type u_1
a✝³ : α✝¹ → PGame
a✝² : β✝¹ → PGame
α✝ β✝ : Type u_1
a✝¹ : α✝ → PGame
a✝ : β✝ → PGame
i : (mk α✝ β✝ a✝¹ a✝).LeftMoves
⊢ (mk α✝¹ β✝¹ a✝³ a✝² + mk α✝ β✝ a✝¹ a✝).moveLeft (toLeftMovesAdd (Sum.inr i)) =
    mk α✝¹ β✝¹ a✝³ a✝² + (mk α✝ β✝ a✝¹ a✝).moveLeft i
state_after: no goals
Theorem: Set.preimage_const_sub_Ioo
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [← Ioi_inter_Iio, inter_comm]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => a - x) ⁻¹' Ioo b c = Ioo (a - c) (a - b)
state_after: no goals
Theorem: ContDiffBump.sub
File: Mathlib/Analysis/Calculus/BumpFunction/Basic.lean

tactic: simp [f.apply, ContDiffBumpBase.symmetric]
state_before: E : Type u_1
X : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : NormedAddCommGroup X
inst✝¹ : NormedSpace ℝ X
inst✝ : HasContDiffBump E
c : E
f : ContDiffBump c
x✝ : E
n : ℕ∞
x : E
⊢ ↑f (c - x) = ↑f (c + x)
state_after: no goals
Theorem: Matrix.fromBlocks_multiply
File: Mathlib/Data/Matrix/Block.lean

tactic: ext i j
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✝² : Fintype l
inst✝¹ : Fintype m
inst✝ : NonUnitalNonAssocSemiring α
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
A' : Matrix l p α
B' : Matrix l q α
C' : Matrix m p α
D' : Matrix m q α
⊢ fromBlocks A B C D * fromBlocks A' B' C' D' =
    fromBlocks (A * A' + B * C') (A * B' + B * D') (C * A' + D * C') (C * B' + D * D')
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✝² : Fintype l
inst✝¹ : Fintype m
inst✝ : NonUnitalNonAssocSemiring α
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
A' : Matrix l p α
B' : Matrix l q α
C' : Matrix m p α
D' : Matrix m q α
i : n ⊕ o
j : p ⊕ q
⊢ (fromBlocks A B C D * fromBlocks A' B' C' D') i j =
    fromBlocks (A * A' + B * C') (A * B' + B * D') (C * A' + D * C') (C * B' + D * D') i j

tactic: rcases i with ⟨⟩ <;> rcases j with ⟨⟩ <;> simp only [fromBlocks, mul_apply, of_apply,
    Sum.elim_inr, Fintype.sum_sum_type, Sum.elim_inl, add_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✝² : Fintype l
inst✝¹ : Fintype m
inst✝ : NonUnitalNonAssocSemiring α
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
A' : Matrix l p α
B' : Matrix l q α
C' : Matrix m p α
D' : Matrix m q α
i : n ⊕ o
j : p ⊕ q
⊢ (fromBlocks A B C D * fromBlocks A' B' C' D') i j =
    fromBlocks (A * A' + B * C') (A * B' + B * D') (C * A' + D * C') (C * B' + D * D') i j
state_after: no goals
Theorem: CategoryTheory.Sieve.pullback_id
File: Mathlib/CategoryTheory/Sites/Sieves.lean

tactic: simp [Sieve.ext_iff]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
X Y Z : C
f : Y ⟶ X
S R : Sieve X
⊢ pullback (𝟙 X) S = S
state_after: no goals
Theorem: measurable_liftCover
File: Mathlib/MeasureTheory/MeasurableSpace/Basic.lean

tactic: rw [preimage_liftCover]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t✝ u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : Countable ι
t : ι → Set α
htm : ∀ (i : ι), MeasurableSet (t i)
f : (i : ι) → ↑(t i) → β
hfm : ∀ (i : ι), Measurable (f i)
hf : ∀ (i j : ι) (x : α) (hxi : x ∈ t i) (hxj : x ∈ t j), f i ⟨x, hxi⟩ = f j ⟨x, hxj⟩
htU : ⋃ i, t i = univ
s : Set β
hs : MeasurableSet s
⊢ MeasurableSet (liftCover t f hf htU ⁻¹' s)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t✝ u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : Countable ι
t : ι → Set α
htm : ∀ (i : ι), MeasurableSet (t i)
f : (i : ι) → ↑(t i) → β
hfm : ∀ (i : ι), Measurable (f i)
hf : ∀ (i j : ι) (x : α) (hxi : x ∈ t i) (hxj : x ∈ t j), f i ⟨x, hxi⟩ = f j ⟨x, hxj⟩
htU : ⋃ i, t i = univ
s : Set β
hs : MeasurableSet s
⊢ MeasurableSet (⋃ i, Subtype.val '' (f i ⁻¹' s))

tactic: exact .iUnion fun i => .subtype_image (htm i) <| hfm i hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t✝ u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : Countable ι
t : ι → Set α
htm : ∀ (i : ι), MeasurableSet (t i)
f : (i : ι) → ↑(t i) → β
hfm : ∀ (i : ι), Measurable (f i)
hf : ∀ (i j : ι) (x : α) (hxi : x ∈ t i) (hxj : x ∈ t j), f i ⟨x, hxi⟩ = f j ⟨x, hxj⟩
htU : ⋃ i, t i = univ
s : Set β
hs : MeasurableSet s
⊢ MeasurableSet (⋃ i, Subtype.val '' (f i ⁻¹' s))
state_after: no goals
Theorem: Nat.xor_right_injective
File: Mathlib/Data/Nat/Bitwise.lean

tactic: rw [← xor_cancel_left n m, ← xor_cancel_left n m', h]
state_before: n m m' : ℕ
h : n ^^^ m = n ^^^ m'
⊢ m = m'
state_after: no goals
Theorem: Filter.tendsto_comp_val_Ici_atTop
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: rw [← map_val_Ici_atTop a, tendsto_map'_iff, Function.comp_def]
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : SemilatticeSup α
a : α
f : α → β
l : Filter β
⊢ Tendsto (fun x => f ↑x) atTop l ↔ Tendsto f atTop l
state_after: no goals
Theorem: MeasureTheory.setIntegral_mono_on
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: simp [hs, EventuallyLE, eventually_inf_principal, ae_of_all _ h]
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝ : MeasurableSpace X
μ : Measure X
f g : X → ℝ
s t : Set X
hf : IntegrableOn f s μ
hg : IntegrableOn g s μ
hs : MeasurableSet s
h : ∀ x ∈ s, f x ≤ g x
⊢ f ≤ᶠ[ae (μ.restrict s)] g
state_after: no goals
Theorem: IsOpenMap.prod
File: Mathlib/Topology/Constructions.lean

tactic: rw [isOpenMap_iff_nhds_le]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
f : X → Y
g : Z → W
hf : IsOpenMap f
hg : IsOpenMap g
⊢ IsOpenMap fun p => (f p.1, g p.2)
state_after: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
f : X → Y
g : Z → W
hf : IsOpenMap f
hg : IsOpenMap g
⊢ ∀ (x : X × Z), 𝓝 (f x.1, g x.2) ≤ map (fun p => (f p.1, g p.2)) (𝓝 x)

tactic: rintro ⟨a, b⟩
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
f : X → Y
g : Z → W
hf : IsOpenMap f
hg : IsOpenMap g
⊢ ∀ (x : X × Z), 𝓝 (f x.1, g x.2) ≤ map (fun p => (f p.1, g p.2)) (𝓝 x)
state_after: case mk
X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
f : X → Y
g : Z → W
hf : IsOpenMap f
hg : IsOpenMap g
a : X
b : Z
⊢ 𝓝 (f (a, b).1, g (a, b).2) ≤ map (fun p => (f p.1, g p.2)) (𝓝 (a, b))

tactic: rw [nhds_prod_eq, nhds_prod_eq, ← Filter.prod_map_map_eq]
state_before: case mk
X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
f : X → Y
g : Z → W
hf : IsOpenMap f
hg : IsOpenMap g
a : X
b : Z
⊢ 𝓝 (f (a, b).1, g (a, b).2) ≤ map (fun p => (f p.1, g p.2)) (𝓝 (a, b))
state_after: case mk
X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
f : X → Y
g : Z → W
hf : IsOpenMap f
hg : IsOpenMap g
a : X
b : Z
⊢ 𝓝 (f (a, b).1) ×ˢ 𝓝 (g (a, b).2) ≤ map f (𝓝 a) ×ˢ map g (𝓝 b)

tactic: exact Filter.prod_mono (hf.nhds_le a) (hg.nhds_le b)
state_before: case mk
X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
f : X → Y
g : Z → W
hf : IsOpenMap f
hg : IsOpenMap g
a : X
b : Z
⊢ 𝓝 (f (a, b).1) ×ˢ 𝓝 (g (a, b).2) ≤ map f (𝓝 a) ×ˢ map g (𝓝 b)
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.IsInvertedBy.leftOp
File: Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean

tactic: haveI := h f.unop hf
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
L : C ⥤ Dᵒᵖ
h : W.IsInvertedBy L
X Y : Cᵒᵖ
f : X ⟶ Y
hf : W.op f
⊢ IsIso (L.leftOp.map f)
state_after: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
L : C ⥤ Dᵒᵖ
h : W.IsInvertedBy L
X Y : Cᵒᵖ
f : X ⟶ Y
hf : W.op f
this : IsIso (L.map f.unop)
⊢ IsIso (L.leftOp.map f)

tactic: dsimp
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
L : C ⥤ Dᵒᵖ
h : W.IsInvertedBy L
X Y : Cᵒᵖ
f : X ⟶ Y
hf : W.op f
this : IsIso (L.map f.unop)
⊢ IsIso (L.leftOp.map f)
state_after: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
L : C ⥤ Dᵒᵖ
h : W.IsInvertedBy L
X Y : Cᵒᵖ
f : X ⟶ Y
hf : W.op f
this : IsIso (L.map f.unop)
⊢ IsIso (L.map f.unop).unop

tactic: infer_instance
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
W : MorphismProperty C
L : C ⥤ Dᵒᵖ
h : W.IsInvertedBy L
X Y : Cᵒᵖ
f : X ⟶ Y
hf : W.op f
this : IsIso (L.map f.unop)
⊢ IsIso (L.map f.unop).unop
state_after: no goals
Theorem: Ring.mul_inverse_cancel_right
File: Mathlib/Algebra/GroupWithZero/Units/Basic.lean

tactic: rw [mul_assoc, mul_inverse_cancel x h, mul_one]
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₀
x y : M₀
h : IsUnit x
⊢ y * x * inverse x = y
state_after: no goals
Theorem: Matrix.isHermitian_mul_conjTranspose_self
File: Mathlib/LinearAlgebra/Matrix/Hermitian.lean

tactic: rw [IsHermitian, conjTranspose_mul, conjTranspose_conjTranspose]
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝⁴ : NonUnitalSemiring α
inst✝³ : StarRing α
inst✝² : NonUnitalSemiring β
inst✝¹ : StarRing β
inst✝ : Fintype n
A : Matrix m n α
⊢ (A * Aᴴ).IsHermitian
state_after: no goals
Theorem: BoundedContinuousFunction.norm_le
File: Mathlib/Topology/ContinuousFunction/Bounded.lean

tactic: simpa using @dist_le _ _ _ _ f 0 _ C0
state_before: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : SeminormedAddCommGroup β
f g : α →ᵇ β
x : α
C : ℝ
C0 : 0 ≤ C
⊢ ‖f‖ ≤ C ↔ ∀ (x : α), ‖f x‖ ≤ C
state_after: no goals
Theorem: IsAlgClosed.of_exists_root
File: Mathlib/FieldTheory/IsAlgClosed/Basic.lean

tactic: refine ⟨fun p ↦ Or.inr ?_⟩
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
⊢ IsAlgClosed k
state_after: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
p : k[X]
⊢ ∀ {g : k[X]}, Irreducible g → g ∣ map (RingHom.id k) p → g.degree = 1

tactic: intro q hq _
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
p : k[X]
⊢ ∀ {g : k[X]}, Irreducible g → g ∣ map (RingHom.id k) p → g.degree = 1
state_after: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
⊢ q.degree = 1

tactic: have : Irreducible (q * C (leadingCoeff q)⁻¹) := by
  rw [← coe_normUnit_of_ne_zero hq.ne_zero]
  exact (associated_normalize _).irreducible hq
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
⊢ q.degree = 1
state_after: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
this : Irreducible (q * C q.leadingCoeff⁻¹)
⊢ q.degree = 1

tactic: obtain ⟨x, hx⟩ := H (q * C (leadingCoeff q)⁻¹) (monic_mul_leadingCoeff_inv hq.ne_zero) this
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
this : Irreducible (q * C q.leadingCoeff⁻¹)
⊢ q.degree = 1
state_after: case intro
k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
this : Irreducible (q * C q.leadingCoeff⁻¹)
x : k
hx : eval x (q * C q.leadingCoeff⁻¹) = 0
⊢ q.degree = 1

tactic: exact degree_mul_leadingCoeff_inv q hq.ne_zero ▸ degree_eq_one_of_irreducible_of_root this hx
state_before: case intro
k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
this : Irreducible (q * C q.leadingCoeff⁻¹)
x : k
hx : eval x (q * C q.leadingCoeff⁻¹) = 0
⊢ q.degree = 1
state_after: no goals

tactic: rw [← coe_normUnit_of_ne_zero hq.ne_zero]
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
⊢ Irreducible (q * C q.leadingCoeff⁻¹)
state_after: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
⊢ Irreducible (q * ↑(normUnit q))

tactic: exact (associated_normalize _).irreducible hq
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), p.Monic → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
⊢ Irreducible (q * ↑(normUnit q))
state_after: no goals
Theorem: Finset.prod_powerset_insert
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: rw [powerset_insert, prod_union, prod_image]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
ha : a ∉ s
f : Finset α → β
⊢ ∏ t ∈ (insert a s).powerset, f t = (∏ t ∈ s.powerset, f t) * ∏ t ∈ s.powerset, f (insert a t)
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
ha : a ∉ s
f : Finset α → β
⊢ ∀ x ∈ s.powerset, ∀ y ∈ s.powerset, insert a x = insert a y → x = y

ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
ha : a ∉ s
f : Finset α → β
⊢ Disjoint s.powerset (image (insert a) s.powerset)

tactic: exact insert_erase_invOn.2.injOn.mono fun t ht ↦ not_mem_mono (mem_powerset.1 ht) ha
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
ha : a ∉ s
f : Finset α → β
⊢ ∀ x ∈ s.powerset, ∀ y ∈ s.powerset, insert a x = insert a y → x = y
state_after: no goals

tactic: aesop (add simp [disjoint_left, insert_subset_iff])
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
ha : a ∉ s
f : Finset α → β
⊢ Disjoint s.powerset (image (insert a) s.powerset)
state_after: no goals
Theorem: CliffordAlgebra.ι_mul_ι_mem_evenOdd_zero
File: Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean

tactic: rw [Subtype.coe_mk, pow_two]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
m₁ m₂ : M
⊢ (ι Q) m₁ * (ι Q) m₂ ∈ LinearMap.range (ι Q) ^ ↑⟨2, ⋯⟩
state_after: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
m₁ m₂ : M
⊢ (ι Q) m₁ * (ι Q) m₂ ∈ LinearMap.range (ι Q) * LinearMap.range (ι Q)

tactic: exact
  Submodule.mul_mem_mul (LinearMap.mem_range_self (ι Q) m₁)
    (LinearMap.mem_range_self (ι Q) m₂)
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
m₁ m₂ : M
⊢ (ι Q) m₁ * (ι Q) m₂ ∈ LinearMap.range (ι Q) * LinearMap.range (ι Q)
state_after: no goals
Theorem: MeasureTheory.snorm_nnreal_pow_eq_lintegral
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: simp [snorm_eq_snorm' (by exact_mod_cast hp) ENNReal.coe_ne_top,
  lintegral_rpow_nnnorm_eq_rpow_snorm' (show 0 < (p : ℝ) from pos_iff_ne_zero.mpr hp)]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
p : ℝ≥0
hp : p ≠ 0
⊢ snorm f (↑p) μ ^ ↑p = ∫⁻ (x : α), ↑‖f x‖₊ ^ ↑p ∂μ
state_after: no goals

tactic: exact_mod_cast hp
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
p : ℝ≥0
hp : p ≠ 0
⊢ ↑?m.8001 ≠ 0
state_after: no goals
Theorem: IsSubgroup.trivial_eq_closure
File: Mathlib/Deprecated/Subgroup.lean

tactic: simp [Set.subset_def, (Group.closure.isSubgroup _).one_mem]
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
inst✝ : Group G
⊢ trivial G ⊆ Group.closure ∅
state_after: no goals

tactic: simp
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
inst✝ : Group G
⊢ ∅ ⊆ trivial G
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.Hom.appLE_map
File: Mathlib/AlgebraicGeometry/Scheme.lean

tactic: rw [Hom.appLE, Category.assoc, ← Functor.map_comp]
state_before: X Y : Scheme
f : X.Hom Y
U U' : Opens ↑↑Y.toPresheafedSpace
V V' : Opens ↑↑X.toPresheafedSpace
e : V ≤ f ⁻¹ᵁ U
i : { unop := V } ⟶ { unop := V' }
⊢ f.appLE U V e ≫ X.presheaf.map i = f.appLE U V' ⋯
state_after: X Y : Scheme
f : X.Hom Y
U U' : Opens ↑↑Y.toPresheafedSpace
V V' : Opens ↑↑X.toPresheafedSpace
e : V ≤ f ⁻¹ᵁ U
i : { unop := V } ⟶ { unop := V' }
⊢ f.app U ≫ X.presheaf.map ((homOfLE e).op ≫ i) = f.appLE U V' ⋯

tactic: rfl
state_before: X Y : Scheme
f : X.Hom Y
U U' : Opens ↑↑Y.toPresheafedSpace
V V' : Opens ↑↑X.toPresheafedSpace
e : V ≤ f ⁻¹ᵁ U
i : { unop := V } ⟶ { unop := V' }
⊢ f.app U ≫ X.presheaf.map ((homOfLE e).op ≫ i) = f.appLE U V' ⋯
state_after: no goals
Theorem: LieHom.id_comp
File: Mathlib/Algebra/Lie/Basic.lean

tactic: ext
state_before: R : Type u
L₁ : Type v
L₂ : Type w
L₃ : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L₁
inst✝⁴ : LieAlgebra R L₁
inst✝³ : LieRing L₂
inst✝² : LieAlgebra R L₂
inst✝¹ : LieRing L₃
inst✝ : LieAlgebra R L₃
f : L₁ →ₗ⁅R⁆ L₂
⊢ id.comp f = f
state_after: case h
R : Type u
L₁ : Type v
L₂ : Type w
L₃ : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L₁
inst✝⁴ : LieAlgebra R L₁
inst✝³ : LieRing L₂
inst✝² : LieAlgebra R L₂
inst✝¹ : LieRing L₃
inst✝ : LieAlgebra R L₃
f : L₁ →ₗ⁅R⁆ L₂
x✝ : L₁
⊢ (id.comp f) x✝ = f x✝

tactic: rfl
state_before: case h
R : Type u
L₁ : Type v
L₂ : Type w
L₃ : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L₁
inst✝⁴ : LieAlgebra R L₁
inst✝³ : LieRing L₂
inst✝² : LieAlgebra R L₂
inst✝¹ : LieRing L₃
inst✝ : LieAlgebra R L₃
f : L₁ →ₗ⁅R⁆ L₂
x✝ : L₁
⊢ (id.comp f) x✝ = f x✝
state_after: no goals