ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: _private.Mathlib.Analysis.Matrix.0.Matrix.norm_unitOf
File: Mathlib/Analysis/Matrix.lean

Proof steps:
state_before: R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁶ : Fintype l
inst✝⁵ : Fintype m
inst✝⁴ : Fintype n
inst✝³ : Unique ι
inst✝² : NormedDivisionRing α
inst✝¹ : NormedAlgebra ℝ α
inst✝ : CompleteSpace α
a : α
⊢ ‖Matrix.unitOf a‖₊ = 1
state_after: R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁶ : Fintype l
inst✝⁵ : Fintype m
inst✝⁴ : Fintype n
inst✝³ : Unique ι
inst✝² : NormedDivisionRing α
inst✝¹ : NormedAlgebra ℝ α
inst✝ : CompleteSpace α
a : α
⊢ ‖if a = 0 then 1 else ‖a‖ • a⁻¹‖₊ = 1
tactic: rw [unitOf]
state_before: R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁶ : Fintype l
inst✝⁵ : Fintype m
inst✝⁴ : Fintype n
inst✝³ : Unique ι
inst✝² : NormedDivisionRing α
inst✝¹ : NormedAlgebra ℝ α
inst✝ : CompleteSpace α
a : α
⊢ ‖if a = 0 then 1 else ‖a‖ • a⁻¹‖₊ = 1
state_after: case pos
R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁶ : Fintype l
inst✝⁵ : Fintype m
inst✝⁴ : Fintype n
inst✝³ : Unique ι
inst✝² : NormedDivisionRing α
inst✝¹ : NormedAlgebra ℝ α
inst✝ : CompleteSpace α
a : α
h : a = 0
⊢ ‖1‖₊ = 1

case neg
R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁶ : Fintype l
inst✝⁵ : Fintype m
inst✝⁴ : Fintype n
inst✝³ : Unique ι
inst✝² : NormedDivisionRing α
inst✝¹ : NormedAlgebra ℝ α
inst✝ : CompleteSpace α
a : α
h : ¬a = 0
⊢ ‖‖a‖ • a⁻¹‖₊ = 1
tactic: split_ifs with h
Theorem: isBoundedBilinearMap_mul
File: Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : E × F → G
⊢ IsBoundedBilinearMap 𝕜 fun p => p.1 * p.2
state_after: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : E × F → G
⊢ IsBoundedBilinearMap 𝕜 fun p => p.1 • p.2
tactic: simp_rw [← smul_eq_mul]
state_before: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : E × F → G
⊢ IsBoundedBilinearMap 𝕜 fun p => p.1 • p.2
state_after: no goals
tactic: exact isBoundedBilinearMap_smul
Theorem: SimpleGraph.card_cliqueFinset_le
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
inst✝² : Fintype α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
n : ℕ
a b c : α
s : Finset α
⊢ (G.cliqueFinset n).card ≤ (Fintype.card α).choose n
state_after: α : Type u_1
β : Type u_2
G H : SimpleGraph α
inst✝² : Fintype α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
n : ℕ
a b c : α
s : Finset α
⊢ (G.cliqueFinset n).card ≤ (powersetCard n univ).card
tactic: rw [← card_univ, ← card_powersetCard]
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
inst✝² : Fintype α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
n : ℕ
a b c : α
s : Finset α
⊢ (G.cliqueFinset n).card ≤ (powersetCard n univ).card
state_after: α : Type u_1
β : Type u_2
G H : SimpleGraph α
inst✝² : Fintype α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
n : ℕ
a b c : α
s✝ s : Finset α
⊢ s ∈ G.cliqueFinset n → s ∈ powersetCard n univ
tactic: refine card_mono fun s => ?_
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
inst✝² : Fintype α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
n : ℕ
a b c : α
s✝ s : Finset α
⊢ s ∈ G.cliqueFinset n → s ∈ powersetCard n univ
state_after: no goals
tactic: simpa [mem_powersetCard_univ] using IsNClique.card_eq
Theorem: finprod_congr_Prop
File: Mathlib/Algebra/BigOperators/Finprod.lean

Proof steps:
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
p q : Prop
f : p → M
g : q → M
hpq : p = q
hfg : ∀ (h : q), f ⋯ = g h
⊢ finprod f = finprod g
state_after: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
p : Prop
f g : p → M
hfg : ∀ (h : p), f ⋯ = g h
⊢ finprod f = finprod g
tactic: subst q
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
p : Prop
f g : p → M
hfg : ∀ (h : p), f ⋯ = g h
⊢ finprod f = finprod g
state_after: no goals
tactic: exact finprod_congr hfg
Theorem: Matrix.exp_conj'
File: Mathlib/Analysis/NormedSpace/MatrixExponential.lean

Proof steps:
state_before: 𝕂 : Type u_1
m : Type u_2
n : Type u_3
p : Type u_4
n' : m → Type u_5
𝔸 : Type u_6
inst✝⁹ : RCLike 𝕂
inst✝⁸ : Fintype m
inst✝⁷ : DecidableEq m
inst✝⁶ : Fintype n
inst✝⁵ : DecidableEq n
inst✝⁴ : (i : m) → Fintype (n' i)
inst✝³ : (i : m) → DecidableEq (n' i)
inst✝² : NormedCommRing 𝔸
inst✝¹ : NormedAlgebra 𝕂 𝔸
inst✝ : CompleteSpace 𝔸
U A : Matrix m m 𝔸
hy : IsUnit U
u : (Matrix m m 𝔸)ˣ
hu : ↑u = U
⊢ exp 𝕂 ((↑u)⁻¹ * A * ↑u) = (↑u)⁻¹ * exp 𝕂 A * ↑u
state_after: no goals
tactic: simpa only [Matrix.coe_units_inv] using exp_units_conj' 𝕂 u A
Theorem: MultilinearMap.snoc_add
File: Mathlib/LinearAlgebra/Multilinear/Basic.lean

Proof steps:
state_before: R : Type uR
S : Type uS
ι : Type uι
n : ℕ
M : Fin n.succ → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹⁰ : Semiring R
inst✝⁹ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝⁸ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : (i : Fin n.succ) → Module R (M i)
inst✝³ : (i : ι) → Module R (M₁ i)
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Module R M'
f✝ f' : MultilinearMap R M₁ M₂
f : MultilinearMap R M M₂
m : (i : Fin n) → M i.castSucc
x y : M (last n)
⊢ f (snoc m (x + y)) = f (snoc m x) + f (snoc m y)
state_after: no goals
tactic: simp_rw [← update_snoc_last x m (x + y), f.map_add, update_snoc_last]
Theorem: eventually_abs_sub_lt
File: Mathlib/Topology/Order/LeftRightNhds.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
a ε : α
hε : 0 < ε
⊢ {x | (fun x => |x - a| < ε) x} ∈ 𝓟 {b | |a - b| < ε}
state_after: no goals
tactic: simp only [abs_sub_comm, mem_principal_self]
Theorem: toIocMod_eq_sub_fract_mul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
a b : α
⊢ toIocMod hp a b = a + p - Int.fract ((a + p - b) / p) * p
state_after: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
a b : α
⊢ b - -⌊(a + p - b) / p⌋ • p = a + p - ((a + p - b) / p - ↑⌊(a + p - b) / p⌋) * p
tactic: rw [toIocMod, toIocDiv_eq_neg_floor, Int.fract]
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
a b : α
⊢ b - -⌊(a + p - b) / p⌋ • p = a + p - ((a + p - b) / p - ↑⌊(a + p - b) / p⌋) * p
state_after: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
a b : α
⊢ b + ↑⌊(a + p - b) / p⌋ * p = a + p - (a + p - b - p * ↑⌊(a + p - b) / p⌋)
tactic: field_simp
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
a b : α
⊢ b + ↑⌊(a + p - b) / p⌋ * p = a + p - (a + p - b - p * ↑⌊(a + p - b) / p⌋)
state_after: no goals
tactic: ring
Theorem: continuousSMul_sInf
File: Mathlib/Topology/Algebra/MulAction.lean

Proof steps:
state_before: ι : Sort u_1
M : Type u_2
X : Type u_3
inst✝¹ : TopologicalSpace M
inst✝ : SMul M X
ts : Set (TopologicalSpace X)
h : ∀ t ∈ ts, ContinuousSMul M X
⊢ Continuous fun p => p.1 • p.2
state_after: no goals
tactic: exact
        continuous_sInf_rng.2 fun t ht =>
          continuous_sInf_dom₂ (Eq.refl _) ht
            (@ContinuousSMul.continuous_smul _ _ _ _ t (h t ht))
Theorem: mem_span_set'
File: Mathlib/LinearAlgebra/Finsupp.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
m : M
s : Set M
⊢ m ∈ span R s ↔ ∃ n f g, ∑ i : Fin n, f i • ↑(g i) = m
state_after: case refine_1
R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
m : M
s : Set M
h : m ∈ span R s
⊢ ∃ n f g, ∑ i : Fin n, f i • ↑(g i) = m

case refine_2
R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
m : M
s : Set M
⊢ (∃ n f g, ∑ i : Fin n, f i • ↑(g i) = m) → m ∈ span R s
tactic: refine ⟨fun h ↦ ?_, ?_⟩
Theorem: IsClosed.measurableSet_image_of_continuousOn_injOn
File: Mathlib/MeasureTheory/Constructions/Polish/Basic.lean

Proof steps:
state_before: α : Type u_1
ι : Type u_2
γ : Type u_3
inst✝⁵ : TopologicalSpace γ
inst✝⁴ : PolishSpace γ
β : Type u_4
inst✝³ : TopologicalSpace β
inst✝² : T2Space β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
s : Set γ
hs : IsClosed s
f : γ → β
f_cont : ContinuousOn f s
f_inj : InjOn f s
⊢ MeasurableSet (f '' s)
state_after: α : Type u_1
ι : Type u_2
γ : Type u_3
inst✝⁵ : TopologicalSpace γ
inst✝⁴ : PolishSpace γ
β : Type u_4
inst✝³ : TopologicalSpace β
inst✝² : T2Space β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
s : Set γ
hs : IsClosed s
f : γ → β
f_cont : ContinuousOn f s
f_inj : InjOn f s
⊢ MeasurableSet (range fun x => f ↑x)
tactic: rw [image_eq_range]
state_before: α : Type u_1
ι : Type u_2
γ : Type u_3
inst✝⁵ : TopologicalSpace γ
inst✝⁴ : PolishSpace γ
β : Type u_4
inst✝³ : TopologicalSpace β
inst✝² : T2Space β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
s : Set γ
hs : IsClosed s
f : γ → β
f_cont : ContinuousOn f s
f_inj : InjOn f s
⊢ MeasurableSet (range fun x => f ↑x)
state_after: α : Type u_1
ι : Type u_2
γ : Type u_3
inst✝⁵ : TopologicalSpace γ
inst✝⁴ : PolishSpace γ
β : Type u_4
inst✝³ : TopologicalSpace β
inst✝² : T2Space β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
s : Set γ
hs : IsClosed s
f : γ → β
f_cont : ContinuousOn f s
f_inj : InjOn f s
this : PolishSpace ↑s
⊢ MeasurableSet (range fun x => f ↑x)
tactic: haveI : PolishSpace s := IsClosed.polishSpace hs
state_before: α : Type u_1
ι : Type u_2
γ : Type u_3
inst✝⁵ : TopologicalSpace γ
inst✝⁴ : PolishSpace γ
β : Type u_4
inst✝³ : TopologicalSpace β
inst✝² : T2Space β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
s : Set γ
hs : IsClosed s
f : γ → β
f_cont : ContinuousOn f s
f_inj : InjOn f s
this : PolishSpace ↑s
⊢ MeasurableSet (range fun x => f ↑x)
state_after: case f_cont
α : Type u_1
ι : Type u_2
γ : Type u_3
inst✝⁵ : TopologicalSpace γ
inst✝⁴ : PolishSpace γ
β : Type u_4
inst✝³ : TopologicalSpace β
inst✝² : T2Space β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
s : Set γ
hs : IsClosed s
f : γ → β
f_cont : ContinuousOn f s
f_inj : InjOn f s
this : PolishSpace ↑s
⊢ Continuous fun x => f ↑x

case f_inj
α : Type u_1
ι : Type u_2
γ : Type u_3
inst✝⁵ : TopologicalSpace γ
inst✝⁴ : PolishSpace γ
β : Type u_4
inst✝³ : TopologicalSpace β
inst✝² : T2Space β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
s : Set γ
hs : IsClosed s
f : γ → β
f_cont : ContinuousOn f s
f_inj : InjOn f s
this : PolishSpace ↑s
⊢ Injective fun x => f ↑x
tactic: apply measurableSet_range_of_continuous_injective
Theorem: Monotone.ne_of_lt_of_lt_nat
File: Mathlib/Order/Monotone/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝ : Preorder α
f : ℕ → α
hf : Monotone f
n : ℕ
x : α
h1 : f n < x
h2 : x < f (n + 1)
a : ℕ
⊢ f a ≠ x
state_after: ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝ : Preorder α
f : ℕ → α
hf : Monotone f
n a : ℕ
h1 : f n < f a
h2 : f a < f (n + 1)
⊢ False
tactic: rintro rfl
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝ : Preorder α
f : ℕ → α
hf : Monotone f
n a : ℕ
h1 : f n < f a
h2 : f a < f (n + 1)
⊢ False
state_after: no goals
tactic: exact (hf.reflect_lt h1).not_le (Nat.le_of_lt_succ <| hf.reflect_lt h2)
Theorem: Rel.interedges_biUnion_right
File: Mathlib/Combinatorics/SimpleGraph/Density.lean

Proof steps:
state_before: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset α
t : Finset ι
f : ι → Finset β
⊢ interedges r s (t.biUnion f) = t.biUnion fun b => interedges r s (f b)
state_after: case a
𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a✝ : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset α
t : Finset ι
f : ι → Finset β
a : α × β
⊢ a ∈ interedges r s (t.biUnion f) ↔ a ∈ t.biUnion fun b => interedges r s (f b)
tactic: ext a
state_before: case a
𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a✝ : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset α
t : Finset ι
f : ι → Finset β
a : α × β
⊢ a ∈ interedges r s (t.biUnion f) ↔ a ∈ t.biUnion fun b => interedges r s (f b)
state_after: case a
𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a✝ : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset α
t : Finset ι
f : ι → Finset β
a : α × β
⊢ a.1 ∈ s ∧ (∃ a_1 ∈ t, a.2 ∈ f a_1) ∧ r a.1 a.2 ↔ ∃ a_1 ∈ t, a.1 ∈ s ∧ a.2 ∈ f a_1 ∧ r a.1 a.2
tactic: simp only [mem_interedges_iff, mem_biUnion]
state_before: case a
𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a✝ : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset α
t : Finset ι
f : ι → Finset β
a : α × β
⊢ a.1 ∈ s ∧ (∃ a_1 ∈ t, a.2 ∈ f a_1) ∧ r a.1 a.2 ↔ ∃ a_1 ∈ t, a.1 ∈ s ∧ a.2 ∈ f a_1 ∧ r a.1 a.2
state_after: no goals
tactic: exact ⟨fun ⟨x₁, ⟨x₂, x₃, x₄⟩, x₅⟩ ↦ ⟨x₂, x₃, x₁, x₄, x₅⟩,
    fun ⟨x₂, x₃, x₁, x₄, x₅⟩ ↦ ⟨x₁, ⟨x₂, x₃, x₄⟩, x₅⟩⟩
Theorem: RingEquiv.coe_nonUnitalRingHom_inj_iff
File: Mathlib/Algebra/Ring/Equiv.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R✝ : Type u_4
S✝ : Type u_5
S' : Type u_6
inst✝⁴ : NonUnitalNonAssocSemiring R✝
inst✝³ : NonUnitalNonAssocSemiring S✝
inst✝² : NonUnitalNonAssocSemiring S'
R : Type u_7
S : Type u_8
inst✝¹ : NonUnitalNonAssocSemiring R
inst✝ : NonUnitalNonAssocSemiring S
f g : R ≃+* S
h : f = g
⊢ ↑f = ↑g
state_after: no goals
tactic: rw [h]
Theorem: PartENat.pos_iff_one_le
File: Mathlib/Data/Nat/PartENat.lean

Proof steps:
state_before: x : PartENat
⊢ 0 < ⊤ ↔ 1 ≤ ⊤
state_after: no goals
tactic: simp only [iff_true_iff, le_top, natCast_lt_top, ← @Nat.cast_zero PartENat]
state_before: x : PartENat
n : ℕ
⊢ 0 < ↑n ↔ 1 ≤ ↑n
state_after: x : PartENat
n : ℕ
⊢ 0 < n ↔ 1 ≤ n
tactic: rw [← Nat.cast_zero, ← Nat.cast_one, PartENat.coe_lt_coe, PartENat.coe_le_coe]
state_before: x : PartENat
n : ℕ
⊢ 0 < n ↔ 1 ≤ n
state_after: no goals
tactic: rfl
Theorem: finprod_mem_inter_mulSupport_eq'
File: Mathlib/Algebra/BigOperators/Finprod.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
s t : Set α
h : ∀ x ∈ mulSupport f, x ∈ s ↔ x ∈ t
⊢ ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ᶠ (i : α) (_ : i ∈ t), f i
state_after: case h
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
s t : Set α
h : ∀ x ∈ mulSupport f, x ∈ s ↔ x ∈ t
⊢ s ∩ mulSupport f = t ∩ mulSupport f
tactic: apply finprod_mem_inter_mulSupport_eq
state_before: case h
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
s t : Set α
h : ∀ x ∈ mulSupport f, x ∈ s ↔ x ∈ t
⊢ s ∩ mulSupport f = t ∩ mulSupport f
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
s t : Set α
h : ∀ x ∈ mulSupport f, x ∈ s ↔ x ∈ t
x : α
⊢ x ∈ s ∩ mulSupport f ↔ x ∈ t ∩ mulSupport f
tactic: ext x
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
s t : Set α
h : ∀ x ∈ mulSupport f, x ∈ s ↔ x ∈ t
x : α
⊢ x ∈ s ∩ mulSupport f ↔ x ∈ t ∩ mulSupport f
state_after: no goals
tactic: exact and_congr_left (h x)
Theorem: Polynomial.cyclotomic.roots_to_finset_eq_primitiveRoots
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean

Proof steps:
state_before: R : Type u_1
inst✝² : CommRing R
n : ℕ
inst✝¹ : IsDomain R
inst✝ : NeZero ↑n
⊢ { val := (cyclotomic n R).roots, nodup := ⋯ } = primitiveRoots n R
state_after: case a
R : Type u_1
inst✝² : CommRing R
n : ℕ
inst✝¹ : IsDomain R
inst✝ : NeZero ↑n
a : R
⊢ a ∈ { val := (cyclotomic n R).roots, nodup := ⋯ } ↔ a ∈ primitiveRoots n R
tactic: ext a
state_before: case a
R : Type u_1
inst✝² : CommRing R
n : ℕ
inst✝¹ : IsDomain R
inst✝ : NeZero ↑n
a : R
⊢ a ∈ { val := (cyclotomic n R).roots, nodup := ⋯ } ↔ a ∈ primitiveRoots n R
state_after: case a
R : Type u_1
inst✝² : CommRing R
n : ℕ
inst✝¹ : IsDomain R
inst✝ : NeZero ↑n
a : R
⊢ a ∈ { val := (cyclotomic n R).roots, nodup := ⋯ } ↔ IsPrimitiveRoot a n
tactic: simp only [mem_primitiveRoots, NeZero.pos_of_neZero_natCast R]
state_before: case a
R : Type u_1
inst✝² : CommRing R
n : ℕ
inst✝¹ : IsDomain R
inst✝ : NeZero ↑n
a : R
⊢ a ∈ { val := (cyclotomic n R).roots, nodup := ⋯ } ↔ IsPrimitiveRoot a n
state_after: case h.e'_1.a
R : Type u_1
inst✝² : CommRing R
n : ℕ
inst✝¹ : IsDomain R
inst✝ : NeZero ↑n
a : R
⊢ a ∈ { val := (cyclotomic n R).roots, nodup := ⋯ } ↔ (cyclotomic n R).IsRoot a
tactic: convert isRoot_cyclotomic_iff (n := n) (μ := a)
state_before: case h.e'_1.a
R : Type u_1
inst✝² : CommRing R
n : ℕ
inst✝¹ : IsDomain R
inst✝ : NeZero ↑n
a : R
⊢ a ∈ { val := (cyclotomic n R).roots, nodup := ⋯ } ↔ (cyclotomic n R).IsRoot a
state_after: no goals
tactic: simp [cyclotomic_ne_zero n R]
Theorem: AkraBazziRecurrence.growsPolynomially_const
File: Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean

Proof steps:
state_before: f : ℝ → ℝ
c : ℝ
⊢ GrowsPolynomially fun x => c
state_after: f : ℝ → ℝ
c x✝¹ : ℝ
x✝ : x✝¹ ∈ Set.Ioo 0 1
⊢ ∀ᶠ (x : ℝ) in atTop, ∀ u ∈ Set.Icc (x✝¹ * x) x, (fun x => c) u ∈ Set.Icc (1 * (fun x => c) x) (1 * (fun x => c) x)
tactic: refine fun _ _ => ⟨1, by norm_num, 1, by norm_num, ?_⟩
state_before: f : ℝ → ℝ
c x✝¹ : ℝ
x✝ : x✝¹ ∈ Set.Ioo 0 1
⊢ ∀ᶠ (x : ℝ) in atTop, ∀ u ∈ Set.Icc (x✝¹ * x) x, (fun x => c) u ∈ Set.Icc (1 * (fun x => c) x) (1 * (fun x => c) x)
state_after: case h
f : ℝ → ℝ
c x✝¹ : ℝ
x✝ : x✝¹ ∈ Set.Ioo 0 1
x : ℝ
⊢ ∀ u ∈ Set.Icc (x✝¹ * x) x, c ∈ Set.Icc (1 * c) (1 * c)
tactic: filter_upwards [] with x
state_before: case h
f : ℝ → ℝ
c x✝¹ : ℝ
x✝ : x✝¹ ∈ Set.Ioo 0 1
x : ℝ
⊢ ∀ u ∈ Set.Icc (x✝¹ * x) x, c ∈ Set.Icc (1 * c) (1 * c)
state_after: no goals
tactic: simp
Theorem: Complex.abs_exp_sub_one_sub_id_le
File: Mathlib/Data/Complex/Exponential.lean

Proof steps:
state_before: x : ℂ
hx : abs x ≤ 1
⊢ abs (cexp x - 1 - x) = abs (cexp x - ∑ m ∈ range 2, x ^ m / ↑m.factorial)
state_after: no goals
tactic: simp [sub_eq_add_neg, sum_range_succ_comm, add_assoc, Nat.factorial]
state_before: x : ℂ
hx : abs x ≤ 1
⊢ 0 < 2
state_after: no goals
tactic: decide
state_before: x : ℂ
hx : abs x ≤ 1
⊢ abs x ^ 2 * (↑(Nat.succ 2) * (↑(Nat.factorial 2) * ↑2)⁻¹) ≤ abs x ^ 2 * 1
state_after: case h
x : ℂ
hx : abs x ≤ 1
⊢ ↑(Nat.succ 2) * (↑(Nat.factorial 2) * ↑2)⁻¹ ≤ 1
tactic: gcongr
state_before: case h
x : ℂ
hx : abs x ≤ 1
⊢ ↑(Nat.succ 2) * (↑(Nat.factorial 2) * ↑2)⁻¹ ≤ 1
state_after: no goals
tactic: norm_num [Nat.factorial]
state_before: x : ℂ
hx : abs x ≤ 1
⊢ abs x ^ 2 * 1 = abs x ^ 2
state_after: no goals
tactic: rw [mul_one]
Theorem: Part.some_append_some
File: Mathlib/Data/Part.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Append α
a b : α
⊢ some a ++ some b = some (a ++ b)
state_after: no goals
tactic: simp [append_def]
Theorem: irrational_iff_ne_rational
File: Mathlib/Data/Real/Irrational.lean

Proof steps:
state_before: x : ℝ
⊢ Irrational x ↔ ∀ (a b : ℤ), x ≠ ↑a / ↑b
state_after: no goals
tactic: simp only [Irrational, Rat.forall, cast_mk, not_exists, Set.mem_range, cast_intCast, cast_div,
    eq_comm]
Theorem: Ordinal.mod_eq_of_lt
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal.{u_4}
h : a < b
⊢ a % b = a
state_after: no goals
tactic: simp only [mod_def, div_eq_zero_of_lt h, mul_zero, sub_zero]
Theorem: MeasureTheory.OuterMeasure.map_iInf_comap
File: Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean

Proof steps:
state_before: α : Type u_1
ι : Sort u_2
β : Type u_3
inst✝ : Nonempty ι
f : α → β
m : ι → OuterMeasure β
⊢ (map f) (⨅ i, (comap f) (m i)) = ⨅ i, (map f) ((comap f) (m i))
state_after: α : Type u_1
ι : Sort u_2
β : Type u_3
inst✝ : Nonempty ι
f : α → β
m : ι → OuterMeasure β
s : Set β
⊢ (⨅ i, (map f) ((comap f) (m i))) s ≤ ((map f) (⨅ i, (comap f) (m i))) s
tactic: refine (map_iInf_le _ _).antisymm fun s => ?_
state_before: α : Type u_1
ι : Sort u_2
β : Type u_3
inst✝ : Nonempty ι
f : α → β
m : ι → OuterMeasure β
s : Set β
⊢ (⨅ i, (map f) ((comap f) (m i))) s ≤ ((map f) (⨅ i, (comap f) (m i))) s
state_after: α : Type u_1
ι : Sort u_2
β : Type u_3
inst✝ : Nonempty ι
f : α → β
m : ι → OuterMeasure β
s : Set β
⊢ ∀ (i : ℕ → Set α),
    f ⁻¹' s ⊆ iUnion i →
      ⨅ t, ⨅ (_ : s ⊆ iUnion t), ∑' (n : ℕ), ⨅ i, (m i) (f '' (f ⁻¹' t n)) ≤ ∑' (n : ℕ), ⨅ i_2, (m i_2) (f '' i n)
tactic: simp only [map_apply, comap_apply, iInf_apply, le_iInf_iff]
state_before: α : Type u_1
ι : Sort u_2
β : Type u_3
inst✝ : Nonempty ι
f : α → β
m : ι → OuterMeasure β
s : Set β
⊢ ∀ (i : ℕ → Set α),
    f ⁻¹' s ⊆ iUnion i →
      ⨅ t, ⨅ (_ : s ⊆ iUnion t), ∑' (n : ℕ), ⨅ i, (m i) (f '' (f ⁻¹' t n)) ≤ ∑' (n : ℕ), ⨅ i_2, (m i_2) (f '' i n)
state_after: case refine_1
α : Type u_1
ι : Sort u_2
β : Type u_3
inst✝ : Nonempty ι
f : α → β
m : ι → OuterMeasure β
s : Set β
t : ℕ → Set α
ht : f ⁻¹' s ⊆ iUnion t
⊢ s ⊆ ⋃ n, f '' t n ∪ (range f)ᶜ

case refine_2
α : Type u_1
ι : Sort u_2
β : Type u_3
inst✝ : Nonempty ι
f : α → β
m : ι → OuterMeasure β
s : Set β
t : ℕ → Set α
ht : f ⁻¹' s ⊆ iUnion t
⊢ ∑' (n : ℕ), ⨅ i, (m i) (f '' (f ⁻¹' (fun n => f '' t n ∪ (range f)ᶜ) n)) ≤ ∑' (n : ℕ), ⨅ i, (m i) (f '' t n)
tactic: refine fun t ht => iInf_le_of_le (fun n => f '' t n ∪ (range f)ᶜ) (iInf_le_of_le ?_ ?_)
Theorem: Turing.Tape.map_mk'
File: Mathlib/Computability/TuringMachine.lean

Proof steps:
state_before: Γ : Type u_1
Γ' : Type u_2
inst✝¹ : Inhabited Γ
inst✝ : Inhabited Γ'
f : PointedMap Γ Γ'
L R : ListBlank Γ
⊢ map f (mk' L R) = mk' (ListBlank.map f L) (ListBlank.map f R)
state_after: no goals
tactic: simp only [Tape.mk', Tape.map, ListBlank.head_map, eq_self_iff_true, and_self_iff,
    ListBlank.tail_map]