ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Fin.prod_congr'
File: Mathlib/Algebra/BigOperators/Fin.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
M : Type u_3
inst✝ : CommMonoid M
a b : ℕ
f : Fin b → M
h : a = b
⊢ ∏ i : Fin a, f (cast h i) = ∏ i : Fin b, f i
state_after: α : Type u_1
β : Type u_2
M : Type u_3
inst✝ : CommMonoid M
a : ℕ
f : Fin a → M
⊢ ∏ i : Fin a, f (cast ⋯ i) = ∏ i : Fin a, f i
tactic: subst h
state_before: α : Type u_1
β : Type u_2
M : Type u_3
inst✝ : CommMonoid M
a : ℕ
f : Fin a → M
⊢ ∏ i : Fin a, f (cast ⋯ i) = ∏ i : Fin a, f i
state_after: no goals
tactic: congr
Theorem: CategoryTheory.ShortComplex.RightHomologyMapData.ofIsLimitKernelFork_φH
File: Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean

Proof steps:
state_before: C : Type u_1
inst✝¹ : Category.{?u.63038, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ✝ : S₁ ⟶ S₂
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
φ : S₁ ⟶ S₂
hf₁ : S₁.f = 0
c₁ : KernelFork S₁.g
hc₁ : IsLimit c₁
hf₂ : S₂.f = 0
c₂ : KernelFork S₂.g
hc₂ : IsLimit c₂
f : c₁.pt ⟶ c₂.pt
comm : Fork.ι c₁ ≫ φ.τ₂ = f ≫ Fork.ι c₂
⊢ φ.τ₂ ≫ (RightHomologyData.ofIsLimitKernelFork S₂ hf₂ c₂ hc₂).g' =
    (RightHomologyData.ofIsLimitKernelFork S₁ hf₁ c₁ hc₁).g' ≫ φ.τ₃
state_after: no goals
tactic: simp only [RightHomologyData.ofIsLimitKernelFork_g', φ.comm₂₃]
Theorem: ContinuousLinearMap.add_compLpL
File: Mathlib/MeasureTheory/Function/LpSpace.lean

Proof steps:
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
g : E → F
c : ℝ≥0
𝕜 : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜 F
inst✝ : Fact (1 ≤ p)
L L' : E →L[𝕜] F
⊢ compLpL p μ (L + L') = compLpL p μ L + compLpL p μ L'
state_after: case h
α : 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
g : E → F
c : ℝ≥0
𝕜 : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜 F
inst✝ : Fact (1 ≤ p)
L L' : E →L[𝕜] F
f : ↥(Lp E p μ)
⊢ (compLpL p μ (L + L')) f = (compLpL p μ L + compLpL p μ L') f
tactic: ext1 f
state_before: case h
α : 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
g : E → F
c : ℝ≥0
𝕜 : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜 F
inst✝ : Fact (1 ≤ p)
L L' : E →L[𝕜] F
f : ↥(Lp E p μ)
⊢ (compLpL p μ (L + L')) f = (compLpL p μ L + compLpL p μ L') f
state_after: no goals
tactic: exact add_compLp L L' f
Theorem: Real.Angle.sin_eq_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

Proof steps:
state_before: θ : Angle
⊢ θ.sin = 0 ↔ θ = 0 ∨ θ = ↑π
state_after: θ : Angle
⊢ θ.sin = sin 0 ↔ θ = 0 ∨ θ = ↑π
tactic: nth_rw 1 [← sin_zero]
state_before: θ : Angle
⊢ θ.sin = sin 0 ↔ θ = 0 ∨ θ = ↑π
state_after: θ : Angle
⊢ θ = 0 ∨ θ + 0 = ↑π ↔ θ = 0 ∨ θ = ↑π
tactic: rw [sin_eq_iff_eq_or_add_eq_pi]
state_before: θ : Angle
⊢ θ = 0 ∨ θ + 0 = ↑π ↔ θ = 0 ∨ θ = ↑π
state_after: no goals
tactic: simp
Theorem: Set.mem_nsmul
File: Mathlib/Data/Set/Pointwise/ListOfFn.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝ : Monoid α
s t : Set α
a✝ : α
m n✝ : ℕ
a : α
n : ℕ
⊢ a ∈ s ^ n ↔ ∃ f, (List.ofFn fun i => ↑(f i)).prod = a
state_after: no goals
tactic: rw [← mem_prod_list_ofFn, List.ofFn_const, List.prod_replicate]
Theorem: Affine.Simplex.direction_mongePlane
File: Mathlib/Geometry/Euclidean/MongePoint.lean

Proof steps:
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
n : ℕ
s : Simplex ℝ P (n + 2)
i₁ i₂ : Fin (n + 3)
⊢ (s.mongePlane i₁ i₂).direction = (Submodule.span ℝ {s.points i₁ -ᵥ s.points i₂})ᗮ ⊓ vectorSpan ℝ (Set.range s.points)
state_after: no goals
tactic: rw [mongePlane_def, direction_inf_of_mem_inf s.mongePoint_mem_mongePlane, direction_mk',
    direction_affineSpan]
Theorem: continuous_iff_ultrafilter
File: Mathlib/Topology/Basic.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
f : X → Y
s : Set X
x : X
y : Y
⊢ Continuous f ↔ ∀ (x : X) (g : Ultrafilter X), ↑g ≤ 𝓝 x → Tendsto f (↑g) (𝓝 (f x))
state_after: no goals
tactic: simp only [continuous_iff_continuousAt, continuousAt_iff_ultrafilter]
Theorem: isGLB_iff_sInf_eq
File: Mathlib/Order/CompleteLattice.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : CompleteSemilatticeInf α
s t : Set α
a b : α
⊢ sInf s = a → IsGLB s a
state_after: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : CompleteSemilatticeInf α
s t : Set α
b : α
⊢ IsGLB s (sInf s)
tactic: rintro rfl
state_before: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : CompleteSemilatticeInf α
s t : Set α
b : α
⊢ IsGLB s (sInf s)
state_after: no goals
tactic: exact isGLB_sInf _
Theorem: ENNReal.mul_inv_le_iff
File: Mathlib/Data/ENNReal/Inv.lean

Proof steps:
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z : ℝ≥0∞
h1 : y ≠ 0
h2 : y ≠ ⊤
⊢ x * y⁻¹ ≤ z ↔ x ≤ z * y
state_after: no goals
tactic: rw [mul_comm, ENNReal.inv_mul_le_iff h1 h2, mul_comm]
Theorem: unitInterval.continuous_qRight
File: Mathlib/Topology/Homotopy/HSpaces.lean

Proof steps:
state_before: ⊢ Continuous fun p => 2 * ↑p.1
state_after: no goals
tactic: fun_prop
state_before: ⊢ Continuous fun p => 1 + ↑p.2
state_after: no goals
tactic: fun_prop
Theorem: TendstoUniformlyOn.congr_right
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g✝ : ι → α
g : α → β
hf : TendstoUniformlyOn F f p s
hfg : EqOn f g s
u : Set (β × β)
hu : u ∈ 𝓤 β
⊢ ∀ᶠ (n : ι) in p, ∀ x ∈ s, (g x, F n x) ∈ u
state_after: no goals
tactic: filter_upwards [hf u hu] with i hi a ha using hfg ha ▸ hi a ha
Theorem: MvPFunctor.const.mk_get
File: Mathlib/Data/PFunctor/Multivariate/Basic.lean

Proof steps:
state_before: n m : ℕ
P : MvPFunctor.{u} n
A : Type u
α β : TypeVec.{u} n
x : ↑(const n A) α
⊢ mk n (get x) = x
state_after: case mk
n m : ℕ
P : MvPFunctor.{u} n
A : Type u
α β : TypeVec.{u} n
fst✝ : (const n A).A
snd✝ : (const n A).B fst✝ ⟹ α
⊢ mk n (get ⟨fst✝, snd✝⟩) = ⟨fst✝, snd✝⟩
tactic: cases x
state_before: case mk
n m : ℕ
P : MvPFunctor.{u} n
A : Type u
α β : TypeVec.{u} n
fst✝ : (const n A).A
snd✝ : (const n A).B fst✝ ⟹ α
⊢ mk n (get ⟨fst✝, snd✝⟩) = ⟨fst✝, snd✝⟩
state_after: case mk
n m : ℕ
P : MvPFunctor.{u} n
A : Type u
α β : TypeVec.{u} n
fst✝ : (const n A).A
snd✝ : (const n A).B fst✝ ⟹ α
⊢ ⟨fst✝, fun x a => PEmpty.elim a⟩ = ⟨fst✝, snd✝⟩
tactic: dsimp [const.get, const.mk]
state_before: case mk
n m : ℕ
P : MvPFunctor.{u} n
A : Type u
α β : TypeVec.{u} n
fst✝ : (const n A).A
snd✝ : (const n A).B fst✝ ⟹ α
⊢ ⟨fst✝, fun x a => PEmpty.elim a⟩ = ⟨fst✝, snd✝⟩
state_after: no goals
tactic: congr with (_⟨⟩)
Theorem: IsMaxFilter.sub
File: Mathlib/Order/Filter/Extr.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
inst✝ : OrderedAddCommGroup β
f g : α → β
a : α
s : Set α
l : Filter α
hf : IsMaxFilter f l a
hg : IsMinFilter g l a
⊢ IsMaxFilter (fun x => f x - g x) l a
state_after: no goals
tactic: simpa only [sub_eq_add_neg] using hf.add hg.neg
Theorem: ArithmeticFunction.pmul_comm
File: Mathlib/NumberTheory/ArithmeticFunction.lean

Proof steps:
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
f g : ArithmeticFunction R
⊢ f.pmul g = g.pmul f
state_after: case h
R : Type u_1
inst✝ : CommMonoidWithZero R
f g : ArithmeticFunction R
x✝ : ℕ
⊢ (f.pmul g) x✝ = (g.pmul f) x✝
tactic: ext
state_before: case h
R : Type u_1
inst✝ : CommMonoidWithZero R
f g : ArithmeticFunction R
x✝ : ℕ
⊢ (f.pmul g) x✝ = (g.pmul f) x✝
state_after: no goals
tactic: simp [mul_comm]
Theorem: Nat.one_lt_div_of_mem_properDivisors
File: Mathlib/NumberTheory/Divisors.lean

Proof steps:
state_before: n✝ m n : ℕ
h : m ∈ n.properDivisors
⊢ 1 < n / m
state_after: case intro
n✝ m n : ℕ
h : m ∈ n.properDivisors
h_dvd : m ∣ n
h_lt : m < n
⊢ 1 < n / m
tactic: obtain ⟨h_dvd, h_lt⟩ := mem_properDivisors.mp h
state_before: case intro
n✝ m n : ℕ
h : m ∈ n.properDivisors
h_dvd : m ∣ n
h_lt : m < n
⊢ 1 < n / m
state_after: no goals
tactic: rwa [Nat.lt_div_iff_mul_lt h_dvd, mul_one]
Theorem: Finset.addEnergy_eq_zero_iff
File: Mathlib/Combinatorics/Additive/Energy.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Mul α
s s₁ s₂ t t₁ t₂ : Finset α
⊢ Eₘ[s, t] = 0 ↔ s = ∅ ∨ t = ∅
state_after: no goals
tactic: simp [← (Nat.zero_le _).not_gt_iff_eq, not_and_or, imp_iff_or_not, or_comm]
Theorem: Real.logDeriv_sin
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean

Proof steps:
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : E → ℝ
f' : E →L[ℝ] ℝ
x : E
s : Set E
⊢ logDeriv sin = cot
state_after: case h
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : E → ℝ
f' : E →L[ℝ] ℝ
x : E
s : Set E
x✝ : ℝ
⊢ logDeriv sin x✝ = x✝.cot
tactic: ext
state_before: case h
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : E → ℝ
f' : E →L[ℝ] ℝ
x : E
s : Set E
x✝ : ℝ
⊢ logDeriv sin x✝ = x✝.cot
state_after: no goals
tactic: rw [logDeriv, Real.deriv_sin, Pi.div_apply, Real.cot_eq_cos_div_sin]
Theorem: Polynomial.isUnitTrinomial_iff''
File: Mathlib/Algebra/Polynomial/UnitTrinomial.lean

Proof steps:
state_before: p q : ℤ[X]
h : p * p.mirror = q * q.mirror
⊢ p.IsUnitTrinomial ↔ q.IsUnitTrinomial
state_after: no goals
tactic: rw [isUnitTrinomial_iff', isUnitTrinomial_iff', h]
Theorem: Complex.iter_deriv_exp
File: Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝¹ : NontriviallyNormedField 𝕜
inst✝ : NormedAlgebra 𝕜 ℂ
n : ℕ
⊢ deriv^[n + 1] cexp = cexp
state_after: no goals
tactic: rw [iterate_succ_apply, deriv_exp, iter_deriv_exp n]
Theorem: MeasureTheory.MeasurePreserving.exists_mem_iterate_mem
File: Mathlib/Dynamics/Ergodic/MeasurePreserving.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
inst✝¹ : MeasurableSpace δ
μa : Measure α
μb : Measure β
μc : Measure γ
μd : Measure δ
μ : Measure α
f : α → α
s : Set α
inst✝ : IsFiniteMeasure μ
hf : MeasurePreserving f μ μ
hs : NullMeasurableSet s μ
hs' : μ s ≠ 0
⊢ ∃ x ∈ s, ∃ m, m ≠ 0 ∧ f^[m] x ∈ s
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
inst✝¹ : MeasurableSpace δ
μa : Measure α
μb : Measure β
μc : Measure γ
μd : Measure δ
μ : Measure α
f : α → α
s : Set α
inst✝ : IsFiniteMeasure μ
hf : MeasurePreserving f μ μ
hs : NullMeasurableSet s μ
hs' : μ s ≠ 0
N : ℕ
hN : μ univ < ↑N * μ s
⊢ ∃ x ∈ s, ∃ m, m ≠ 0 ∧ f^[m] x ∈ s
tactic: rcases ENNReal.exists_nat_mul_gt hs' (measure_ne_top μ (Set.univ : Set α)) with ⟨N, hN⟩
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
inst✝¹ : MeasurableSpace δ
μa : Measure α
μb : Measure β
μc : Measure γ
μd : Measure δ
μ : Measure α
f : α → α
s : Set α
inst✝ : IsFiniteMeasure μ
hf : MeasurePreserving f μ μ
hs : NullMeasurableSet s μ
hs' : μ s ≠ 0
N : ℕ
hN : μ univ < ↑N * μ s
⊢ ∃ x ∈ s, ∃ m, m ≠ 0 ∧ f^[m] x ∈ s
state_after: case intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
inst✝¹ : MeasurableSpace δ
μa : Measure α
μb : Measure β
μc : Measure γ
μd : Measure δ
μ : Measure α
f : α → α
s : Set α
inst✝ : IsFiniteMeasure μ
hf : MeasurePreserving f μ μ
hs : NullMeasurableSet s μ
hs' : μ s ≠ 0
N : ℕ
hN : μ univ < ↑N * μ s
x : α
hx : x ∈ s
m : ℕ
hm : m ∈ Ioo 0 N
hmx : f^[m] x ∈ s
⊢ ∃ x ∈ s, ∃ m, m ≠ 0 ∧ f^[m] x ∈ s
tactic: rcases hf.exists_mem_iterate_mem_of_volume_lt_mul_volume hs hN with ⟨x, hx, m, hm, hmx⟩
state_before: case intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
inst✝¹ : MeasurableSpace δ
μa : Measure α
μb : Measure β
μc : Measure γ
μd : Measure δ
μ : Measure α
f : α → α
s : Set α
inst✝ : IsFiniteMeasure μ
hf : MeasurePreserving f μ μ
hs : NullMeasurableSet s μ
hs' : μ s ≠ 0
N : ℕ
hN : μ univ < ↑N * μ s
x : α
hx : x ∈ s
m : ℕ
hm : m ∈ Ioo 0 N
hmx : f^[m] x ∈ s
⊢ ∃ x ∈ s, ∃ m, m ≠ 0 ∧ f^[m] x ∈ s
state_after: no goals
tactic: exact ⟨x, hx, m, hm.1.ne', hmx⟩
Theorem: AlgebraicGeometry.isLocallyNoetherian_of_isOpenImmersion
File: Mathlib/AlgebraicGeometry/Noetherian.lean

Proof steps:
state_before: X Y : Scheme
f : X ⟶ Y
inst✝¹ : IsOpenImmersion f
inst✝ : IsLocallyNoetherian Y
⊢ IsLocallyNoetherian X
state_after: X Y : Scheme
f : X ⟶ Y
inst✝¹ : IsOpenImmersion f
inst✝ : IsLocallyNoetherian Y
U : ↑X.affineOpens
⊢ IsNoetherianRing ↑Γ(X, ↑U)
tactic: refine ⟨fun U => ?_⟩
state_before: X Y : Scheme
f : X ⟶ Y
inst✝¹ : IsOpenImmersion f
inst✝ : IsLocallyNoetherian Y
U : ↑X.affineOpens
⊢ IsNoetherianRing ↑Γ(X, ↑U)
state_after: X Y : Scheme
f : X ⟶ Y
inst✝¹ : IsOpenImmersion f
inst✝ : IsLocallyNoetherian Y
U : ↑X.affineOpens
V : ↑Y.affineOpens := ⟨f ''ᵁ ↑U, ⋯⟩
⊢ IsNoetherianRing ↑Γ(X, ↑U)
tactic: let V : Y.affineOpens := ⟨f ''ᵁ U, IsAffineOpen.image_of_isOpenImmersion U.prop _⟩
state_before: X Y : Scheme
f : X ⟶ Y
inst✝¹ : IsOpenImmersion f
inst✝ : IsLocallyNoetherian Y
U : ↑X.affineOpens
V : ↑Y.affineOpens := ⟨f ''ᵁ ↑U, ⋯⟩
⊢ Γ(X, ↑U) ≅ Γ(Y, ↑V)
state_after: X Y : Scheme
f : X ⟶ Y
inst✝¹ : IsOpenImmersion f
inst✝ : IsLocallyNoetherian Y
U : ↑X.affineOpens
V : ↑Y.affineOpens := ⟨f ''ᵁ ↑U, ⋯⟩
⊢ Γ(X, f ⁻¹ᵁ f ''ᵁ ↑U) ≅ Γ(Y, ↑V)
tactic: rw [← Scheme.Hom.preimage_image_eq f U]
state_before: X Y : Scheme
f : X ⟶ Y
inst✝¹ : IsOpenImmersion f
inst✝ : IsLocallyNoetherian Y
U : ↑X.affineOpens
V : ↑Y.affineOpens := ⟨f ''ᵁ ↑U, ⋯⟩
⊢ Γ(X, f ⁻¹ᵁ f ''ᵁ ↑U) ≅ Γ(Y, ↑V)
state_after: X Y : Scheme
f : X ⟶ Y
inst✝¹ : IsOpenImmersion f
inst✝ : IsLocallyNoetherian Y
U : ↑X.affineOpens
V : ↑Y.affineOpens := ⟨f ''ᵁ ↑U, ⋯⟩
⊢ Γ(X, f ⁻¹ᵁ f ''ᵁ ↑U) ≅ ?m.24248

X Y : Scheme
f : X ⟶ Y
inst✝¹ : IsOpenImmersion f
inst✝ : IsLocallyNoetherian Y
U : ↑X.affineOpens
V : ↑Y.affineOpens := ⟨f ''ᵁ ↑U, ⋯⟩
⊢ ?m.24248 ≅ Γ(Y, ↑V)

X Y : Scheme
f : X ⟶ Y
inst✝¹ : IsOpenImmersion f
inst✝ : IsLocallyNoetherian Y
U : ↑X.affineOpens
V : ↑Y.affineOpens := ⟨f ''ᵁ ↑U, ⋯⟩
⊢ CommRingCat
tactic: trans
Theorem: isSquare_of_charTwo'
File: Mathlib/Algebra/CharP/Reduced.lean

Proof steps:
state_before: R : Type u_1
inst✝³ : Finite R
inst✝² : CommRing R
inst✝¹ : IsReduced R
inst✝ : CharP R 2
a : R
⊢ IsSquare a
state_after: case intro
R : Type u_1
inst✝³ : Finite R
inst✝² : CommRing R
inst✝¹ : IsReduced R
inst✝ : CharP R 2
a : R
val✝ : Fintype R
⊢ IsSquare a
tactic: cases nonempty_fintype R
state_before: case intro
R : Type u_1
inst✝³ : Finite R
inst✝² : CommRing R
inst✝¹ : IsReduced R
inst✝ : CharP R 2
a : R
val✝ : Fintype R
⊢ IsSquare a
state_after: no goals
tactic: exact
    Exists.imp (fun b h => pow_two b ▸ Eq.symm h)
      (((Fintype.bijective_iff_injective_and_card _).mpr ⟨frobenius_inj R 2, rfl⟩).surjective a)
Theorem: CategoryTheory.OplaxNatTrans.ModificationIso.ofComponents_inv_app
File: Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean

Proof steps:
state_before: B : Type u₁
inst✝¹ : Bicategory B
C : Type u₂
inst✝ : Bicategory C
F G : OplaxFunctor B C
η θ ι : F ⟶ G
app : (a : B) → η.app a ≅ θ.app a
naturality : ∀ {a b : B} (f : a ⟶ b), F.map f ◁ (app b).hom ≫ θ.naturality f = η.naturality f ≫ (app a).hom ▷ G.map f
a b : B
f : a ⟶ b
⊢ F.map f ◁ (fun a => (app a).inv) b ≫ η.naturality f = θ.naturality f ≫ (fun a => (app a).inv) a ▷ G.map f
state_after: no goals
tactic: simpa using congr_arg (fun f => _ ◁ (app b).inv ≫ f ≫ (app a).inv ▷ _) (naturality f).symm
Theorem: FirstOrder.Language.completeTheory.mem_or_not_mem
File: Mathlib/ModelTheory/Satisfiability.lean

Proof steps:
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
M : Type w
inst✝ : L.Structure M
φ : L.Sentence
⊢ φ ∈ L.completeTheory M ∨ Formula.not φ ∈ L.completeTheory M
state_after: no goals
tactic: simp_rw [completeTheory, Set.mem_setOf_eq, Sentence.Realize, Formula.realize_not, or_not]
Theorem: le_neg_add_iff_add_le
File: Mathlib/Algebra/Order/Group/Unbundled/Basic.lean

Proof steps:
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
⊢ b ≤ a⁻¹ * c ↔ a * b ≤ c
state_after: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
⊢ a * b ≤ a * (a⁻¹ * c) ↔ a * b ≤ c
tactic: rw [← mul_le_mul_iff_left a]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
⊢ a * b ≤ a * (a⁻¹ * c) ↔ a * b ≤ c
state_after: no goals
tactic: simp
Theorem: Ideal.pow_le_pow_right
File: Mathlib/RingTheory/Ideal/Operations.lean

Proof steps:
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
m n : ℕ
h : m ≤ n
⊢ I ^ n ≤ I ^ m
state_after: case intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
m n : ℕ
h : m ≤ n
k : ℕ
hk : n = m + k
⊢ I ^ n ≤ I ^ m
tactic: cases' Nat.exists_eq_add_of_le h with k hk
state_before: case intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
m n : ℕ
h : m ≤ n
k : ℕ
hk : n = m + k
⊢ I ^ n ≤ I ^ m
state_after: case intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
m n : ℕ
h : m ≤ n
k : ℕ
hk : n = m + k
⊢ I ^ m * I ^ k ≤ I ^ m
tactic: rw [hk, pow_add]
state_before: case intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
m n : ℕ
h : m ≤ n
k : ℕ
hk : n = m + k
⊢ I ^ m * I ^ k ≤ I ^ m
state_after: no goals
tactic: exact le_trans mul_le_inf inf_le_left
Theorem: Filter.mem_liminf_iff_eventually_mem
File: Mathlib/Order/LiminfLimsup.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
p : ι → Prop
s : ι → Set α
𝓕 : Filter ι
a : α
⊢ a ∈ liminf s 𝓕 ↔ ∀ᶠ (i : ι) in 𝓕, a ∈ s i
state_after: no goals
tactic: simpa only [liminf_eq_iSup_iInf, iSup_eq_iUnion, iInf_eq_iInter, mem_iUnion, mem_iInter]
    using ⟨fun ⟨S, hS, hS'⟩ ↦ mem_of_superset hS (by tauto), fun h ↦ ⟨{i | a ∈ s i}, h, by tauto⟩⟩
Theorem: Polynomial.IsPrimitive.mul
File: Mathlib/RingTheory/Polynomial/Content.lean

Proof steps:
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
hp : p.IsPrimitive
hq : q.IsPrimitive
⊢ (p * q).IsPrimitive
state_after: no goals
tactic: rw [isPrimitive_iff_content_eq_one, content_mul, hp.content_eq_one, hq.content_eq_one, mul_one]
Theorem: Multiset.map_mk_eq_map_mk_of_rel
File: Mathlib/Data/Multiset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type v
γ : Type u_2
r : α → α → Prop
s t : Multiset α
hst : Rel r s t
a✝ b✝ : α
as✝ bs✝ : Multiset α
hab : r a✝ b✝
_hst : Rel r as✝ bs✝
ih : map (Quot.mk r) as✝ = map (Quot.mk r) bs✝
⊢ map (Quot.mk r) (a✝ ::ₘ as✝) = map (Quot.mk r) (b✝ ::ₘ bs✝)
state_after: no goals
tactic: simp [ih, Quot.sound hab]
Theorem: FractionalIdeal.coe_dual_one
File: Mathlib/RingTheory/DedekindDomain/Different.lean

Proof steps:
state_before: A : Type u_1
K : Type u_2
L : Type u
B : Type u_3
inst✝¹⁸ : CommRing A
inst✝¹⁷ : Field K
inst✝¹⁶ : CommRing B
inst✝¹⁵ : Field L
inst✝¹⁴ : Algebra A K
inst✝¹³ : Algebra B L
inst✝¹² : Algebra A B
inst✝¹¹ : Algebra K L
inst✝¹⁰ : Algebra A L
inst✝⁹ : IsScalarTower A K L
inst✝⁸ : IsScalarTower A B L
inst✝⁷ : IsDomain A
inst✝⁶ : IsFractionRing A K
inst✝⁵ : IsIntegralClosure B A L
inst✝⁴ : IsFractionRing B L
inst✝³ : FiniteDimensional K L
inst✝² : Algebra.IsSeparable K L
inst✝¹ : IsIntegrallyClosed A
inst✝ : IsDedekindDomain B
I J : FractionalIdeal B⁰ L
hI : I ≠ 0
hJ : J ≠ 0
⊢ ↑(dual A K 1) = 1ᵛ
state_after: case hI
A : Type u_1
K : Type u_2
L : Type u
B : Type u_3
inst✝¹⁸ : CommRing A
inst✝¹⁷ : Field K
inst✝¹⁶ : CommRing B
inst✝¹⁵ : Field L
inst✝¹⁴ : Algebra A K
inst✝¹³ : Algebra B L
inst✝¹² : Algebra A B
inst✝¹¹ : Algebra K L
inst✝¹⁰ : Algebra A L
inst✝⁹ : IsScalarTower A K L
inst✝⁸ : IsScalarTower A B L
inst✝⁷ : IsDomain A
inst✝⁶ : IsFractionRing A K
inst✝⁵ : IsIntegralClosure B A L
inst✝⁴ : IsFractionRing B L
inst✝³ : FiniteDimensional K L
inst✝² : Algebra.IsSeparable K L
inst✝¹ : IsIntegrallyClosed A
inst✝ : IsDedekindDomain B
I J : FractionalIdeal B⁰ L
hI : I ≠ 0
hJ : J ≠ 0
⊢ 1 ≠ 0
tactic: rw [← coe_one, coe_dual]
state_before: case hI
A : Type u_1
K : Type u_2
L : Type u
B : Type u_3
inst✝¹⁸ : CommRing A
inst✝¹⁷ : Field K
inst✝¹⁶ : CommRing B
inst✝¹⁵ : Field L
inst✝¹⁴ : Algebra A K
inst✝¹³ : Algebra B L
inst✝¹² : Algebra A B
inst✝¹¹ : Algebra K L
inst✝¹⁰ : Algebra A L
inst✝⁹ : IsScalarTower A K L
inst✝⁸ : IsScalarTower A B L
inst✝⁷ : IsDomain A
inst✝⁶ : IsFractionRing A K
inst✝⁵ : IsIntegralClosure B A L
inst✝⁴ : IsFractionRing B L
inst✝³ : FiniteDimensional K L
inst✝² : Algebra.IsSeparable K L
inst✝¹ : IsIntegrallyClosed A
inst✝ : IsDedekindDomain B
I J : FractionalIdeal B⁰ L
hI : I ≠ 0
hJ : J ≠ 0
⊢ 1 ≠ 0
state_after: no goals
tactic: exact one_ne_zero
Theorem: RCLike.smul_re
File: Mathlib/Analysis/RCLike/Basic.lean

Proof steps:
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
r : ℝ
z : K
⊢ re (r • z) = r * re z
state_after: no goals
tactic: rw [real_smul_eq_coe_mul, re_ofReal_mul]
Theorem: MeasureTheory.AEEqFun.Integrable.add
File: Mathlib/MeasureTheory/Function/L1Space.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f g : α →ₘ[μ] β
⊢ f.Integrable → g.Integrable → (f + g).Integrable
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f✝ g✝ : α →ₘ[μ] β
f : α → β
hf : AEStronglyMeasurable f μ
g : α → β
hg : AEStronglyMeasurable g μ
hfi : (mk f hf).Integrable
hgi : (mk g hg).Integrable
⊢ (mk f hf + mk g hg).Integrable
tactic: refine induction_on₂ f g fun f hf g hg hfi hgi => ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f✝ g✝ : α →ₘ[μ] β
f : α → β
hf : AEStronglyMeasurable f μ
g : α → β
hg : AEStronglyMeasurable g μ
hfi : (mk f hf).Integrable
hgi : (mk g hg).Integrable
⊢ (mk f hf + mk g hg).Integrable
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f✝ g✝ : α →ₘ[μ] β
f : α → β
hf : AEStronglyMeasurable f μ
g : α → β
hg : AEStronglyMeasurable g μ
hfi : MeasureTheory.Integrable f μ
hgi : MeasureTheory.Integrable g μ
⊢ MeasureTheory.Integrable (f + g) μ
tactic: simp only [integrable_mk, mk_add_mk] at hfi hgi ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f✝ g✝ : α →ₘ[μ] β
f : α → β
hf : AEStronglyMeasurable f μ
g : α → β
hg : AEStronglyMeasurable g μ
hfi : MeasureTheory.Integrable f μ
hgi : MeasureTheory.Integrable g μ
⊢ MeasureTheory.Integrable (f + g) μ
state_after: no goals
tactic: exact hfi.add hgi