Datasets:
The full dataset viewer is not available (click to read why). Only showing a preview of the rows.
Error code: DatasetGenerationCastError
Exception: DatasetGenerationCastError
Message: An error occurred while generating the dataset
All the data files must have the same columns, but at some point there are 4 new columns ({'state_before', 'annotation_status', 'metadata', 'state_after'})
This happened while the json dataset builder was generating data using
hf://datasets/uw-math-ai/APRIL/train/mlme_train.jsonl (at revision 5966834e50a00c31d914b34ea6f5b88a44e33076), [/tmp/hf-datasets-cache/medium/datasets/95632298063641-config-parquet-and-info-uw-math-ai-APRIL-24cc2603/hub/datasets--uw-math-ai--APRIL/snapshots/5966834e50a00c31d914b34ea6f5b88a44e33076/train/lme_train.jsonl (origin=hf://datasets/uw-math-ai/APRIL@5966834e50a00c31d914b34ea6f5b88a44e33076/train/lme_train.jsonl), /tmp/hf-datasets-cache/medium/datasets/95632298063641-config-parquet-and-info-uw-math-ai-APRIL-24cc2603/hub/datasets--uw-math-ai--APRIL/snapshots/5966834e50a00c31d914b34ea6f5b88a44e33076/train/mlme_train.jsonl (origin=hf://datasets/uw-math-ai/APRIL@5966834e50a00c31d914b34ea6f5b88a44e33076/train/mlme_train.jsonl), /tmp/hf-datasets-cache/medium/datasets/95632298063641-config-parquet-and-info-uw-math-ai-APRIL-24cc2603/hub/datasets--uw-math-ai--APRIL/snapshots/5966834e50a00c31d914b34ea6f5b88a44e33076/train/thme_train.jsonl (origin=hf://datasets/uw-math-ai/APRIL@5966834e50a00c31d914b34ea6f5b88a44e33076/train/thme_train.jsonl), /tmp/hf-datasets-cache/medium/datasets/95632298063641-config-parquet-and-info-uw-math-ai-APRIL-24cc2603/hub/datasets--uw-math-ai--APRIL/snapshots/5966834e50a00c31d914b34ea6f5b88a44e33076/train/tme_train.jsonl (origin=hf://datasets/uw-math-ai/APRIL@5966834e50a00c31d914b34ea6f5b88a44e33076/train/tme_train.jsonl)]
Please either edit the data files to have matching columns, or separate them into different configurations (see docs at https://hf.co/docs/hub/datasets-manual-configuration#multiple-configurations)
Traceback: Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/datasets/builder.py", line 1887, in _prepare_split_single
writer.write_table(table)
File "/usr/local/lib/python3.12/site-packages/datasets/arrow_writer.py", line 674, in write_table
pa_table = table_cast(pa_table, self._schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/datasets/table.py", line 2272, in table_cast
return cast_table_to_schema(table, schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/datasets/table.py", line 2218, in cast_table_to_schema
raise CastError(
datasets.table.CastError: Couldn't cast
correct_proof: string
incorrect_proof: string
theorem: null
src_hash: string
correct_name: null
incorrect_name: null
correct_formal: null
incorrect_formal: null
correct_informal: null
incorrect_informal: null
path: string
line: int64
col: int64
metadata: null
annotation_status: null
error: string
line_at_error: string
state_at_error: string
state_before: null
state_after: null
explanation: string
fix_suggestion: string
source: string
error_type: string
split: string
to
{'path': Value('string'), 'correct_proof': Value('string'), 'incorrect_proof': Value('string'), 'theorem': Value('null'), 'src_hash': Value('string'), 'correct_name': Value('null'), 'incorrect_name': Value('null'), 'correct_formal': Value('null'), 'incorrect_formal': Value('null'), 'correct_informal': Value('null'), 'incorrect_informal': Value('null'), 'line': Value('int64'), 'col': Value('int64'), 'error': Value('string'), 'line_at_error': Value('string'), 'state_at_error': Value('string'), 'explanation': Value('string'), 'fix_suggestion': Value('string'), 'source': Value('string'), 'error_type': Value('string'), 'split': Value('string')}
because column names don't match
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/src/services/worker/src/worker/job_runners/config/parquet_and_info.py", line 1347, in compute_config_parquet_and_info_response
parquet_operations = convert_to_parquet(builder)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/src/services/worker/src/worker/job_runners/config/parquet_and_info.py", line 980, in convert_to_parquet
builder.download_and_prepare(
File "/usr/local/lib/python3.12/site-packages/datasets/builder.py", line 884, in download_and_prepare
self._download_and_prepare(
File "/usr/local/lib/python3.12/site-packages/datasets/builder.py", line 947, in _download_and_prepare
self._prepare_split(split_generator, **prepare_split_kwargs)
File "/usr/local/lib/python3.12/site-packages/datasets/builder.py", line 1736, in _prepare_split
for job_id, done, content in self._prepare_split_single(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/datasets/builder.py", line 1889, in _prepare_split_single
raise DatasetGenerationCastError.from_cast_error(
datasets.exceptions.DatasetGenerationCastError: An error occurred while generating the dataset
All the data files must have the same columns, but at some point there are 4 new columns ({'state_before', 'annotation_status', 'metadata', 'state_after'})
This happened while the json dataset builder was generating data using
hf://datasets/uw-math-ai/APRIL/train/mlme_train.jsonl (at revision 5966834e50a00c31d914b34ea6f5b88a44e33076), [/tmp/hf-datasets-cache/medium/datasets/95632298063641-config-parquet-and-info-uw-math-ai-APRIL-24cc2603/hub/datasets--uw-math-ai--APRIL/snapshots/5966834e50a00c31d914b34ea6f5b88a44e33076/train/lme_train.jsonl (origin=hf://datasets/uw-math-ai/APRIL@5966834e50a00c31d914b34ea6f5b88a44e33076/train/lme_train.jsonl), /tmp/hf-datasets-cache/medium/datasets/95632298063641-config-parquet-and-info-uw-math-ai-APRIL-24cc2603/hub/datasets--uw-math-ai--APRIL/snapshots/5966834e50a00c31d914b34ea6f5b88a44e33076/train/mlme_train.jsonl (origin=hf://datasets/uw-math-ai/APRIL@5966834e50a00c31d914b34ea6f5b88a44e33076/train/mlme_train.jsonl), /tmp/hf-datasets-cache/medium/datasets/95632298063641-config-parquet-and-info-uw-math-ai-APRIL-24cc2603/hub/datasets--uw-math-ai--APRIL/snapshots/5966834e50a00c31d914b34ea6f5b88a44e33076/train/thme_train.jsonl (origin=hf://datasets/uw-math-ai/APRIL@5966834e50a00c31d914b34ea6f5b88a44e33076/train/thme_train.jsonl), /tmp/hf-datasets-cache/medium/datasets/95632298063641-config-parquet-and-info-uw-math-ai-APRIL-24cc2603/hub/datasets--uw-math-ai--APRIL/snapshots/5966834e50a00c31d914b34ea6f5b88a44e33076/train/tme_train.jsonl (origin=hf://datasets/uw-math-ai/APRIL@5966834e50a00c31d914b34ea6f5b88a44e33076/train/tme_train.jsonl)]
Please either edit the data files to have matching columns, or separate them into different configurations (see docs at https://hf.co/docs/hub/datasets-manual-configuration#multiple-configurations)Need help to make the dataset viewer work? Make sure to review how to configure the dataset viewer, and open a discussion for direct support.
path
string | correct_proof
string | incorrect_proof
string | theorem
null | src_hash
string | correct_name
null | incorrect_name
null | correct_formal
null | incorrect_formal
null | correct_informal
null | incorrect_informal
null | line
int64 | col
int64 | error
string | line_at_error
string | state_at_error
string | explanation
string | fix_suggestion
string | source
string | error_type
string | split
string |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CategoryTheory.Bicategory.id_whiskerLeft_symm.lean
|
import Mathlib.CategoryTheory.NatIso
import Mathlib.CategoryTheory.Bicategory.Basic
open CategoryTheory
open Bicategory
open Category Iso
variable {B : Type u} [Bicategory.{w, v} B] {a b c d e : B}
theorem theorem_28010 {f g : a ⟶ b} (η : f ⟶ g) : η = (λ_ f).inv ≫ 𝟙 a ◁ η ≫ (λ_ g).hom := by
simp
|
import Mathlib.CategoryTheory.NatIso
import Mathlib.CategoryTheory.Bicategory.Basic
open CategoryTheory
open Bicategory
open Category Iso
variable {B : Type u} [Bicategory.{w, v} B] {a b c d e : B}
theorem theorem_28010 {f g : a ⟶ b} (η : f ⟶ g) : η = (λ_ f).inv ≫ 𝟙 a ◁ η ≫ (λ_ g).hom := by
rw [← Iso.inv_comp_eq, leftUnitor_naturality, Category.assoc]
| null |
25ba40f63317e3a83081a8d23cd8f635e281bac38cb2c2548dc0bcecd9660e64
| null | null | null | null | null | null | 8
| 6
|
tactic 'rewrite' failed, did not find instance of the pattern in the target expression
?f = hom ?α ≫ ?g
B : Type u
inst✝ : Bicategory B
a b : B
f g : a ⟶ b
η : f ⟶ g
⊢ η = (λ_ f).inv ≫ 𝟙 a ◁ η ≫ (λ_ g).hom
|
rw [← Iso.inv_comp_eq, leftUnitor_naturality, Category.assoc]
|
B : Type u inst✝ : Bicategory B a b : B f g : a ⟶ b η : f ⟶ g ⊢ η = (λ_ f).inv ≫ 𝟙 a ◁ η ≫ (λ_ g).hom
|
The proof fails because the rewrite tactic cannot match the pattern `?f = hom ?α ≫ ?g` in the target expression, as the target is not in the expected form for `Iso.inv_comp_eq` to apply directly.
|
Use the `simp` tactic which can automatically handle all necessary rewrites and simplifications for this bicategorical identity.
|
herald
|
lme
|
train
|
OmegaCompletePartialOrder.ωSup_eq_of_isLUB.lean
|
import Mathlib.Control.Monad.Basic
import Mathlib.Dynamics.FixedPoints.Basic
import Mathlib.Order.Chain
import Mathlib.Order.Hom.Order
import Mathlib.Order.Iterate
import Mathlib.Order.Part
import Mathlib.Order.OmegaCompletePartialOrder
open OmegaCompletePartialOrder
variable {α : Type u} {β : Type v} {γ : Type*}
variable [Preorder α] [Preorder β] [Preorder γ]
variable [Preorder α] [Preorder β] [Preorder γ]
variable (c c' : Chain α)
variable (f : α →o β)
variable (g : β →o γ)
variable (f : α →o β)
variable (g : β →o γ)
variable (g : β →o γ)
variable {f}
open OmegaCompletePartialOrder
variable {α : Type u} {β : Type v} {γ : Type*}
variable [OmegaCompletePartialOrder α]
variable [OmegaCompletePartialOrder α]
theorem theorem_2190 {c : Chain α} {a : α} (h : IsLUB (Set.range c) a) : a = ωSup c := by
rw [le_antisymm_iff]
simp only [IsLUB, IsLeast, upperBounds, lowerBounds, Set.mem_range, forall_exists_index,
forall_apply_eq_imp_iff, Set.mem_setOf_eq] at h
constructor
· apply h.2
exact fun a ↦ le_ωSup c a
· rw [ωSup_le_iff]
apply h.1
|
import Mathlib.Control.Monad.Basic
import Mathlib.Dynamics.FixedPoints.Basic
import Mathlib.Order.Chain
import Mathlib.Order.Hom.Order
import Mathlib.Order.Iterate
import Mathlib.Order.Part
import Mathlib.Order.OmegaCompletePartialOrder
open OmegaCompletePartialOrder
variable {α : Type u} {β : Type v} {γ : Type*}
variable [Preorder α] [Preorder β] [Preorder γ]
variable [Preorder α] [Preorder β] [Preorder γ]
variable (c c' : Chain α)
variable (f : α →o β)
variable (g : β →o γ)
variable (f : α →o β)
variable (g : β →o γ)
variable (g : β →o γ)
variable {f}
open OmegaCompletePartialOrder
variable {α : Type u} {β : Type v} {γ : Type*}
variable [OmegaCompletePartialOrder α]
variable [OmegaCompletePartialOrder α]
theorem theorem_2190 {c : Chain α} {a : α} (h : IsLUB (Set.range c) a) : a = ωSup c := by
rw [le_antisymm_iff]
simp only [IsLUB, IsLeast, upperBounds, lowerBounds, Set.mem_range, forall_exists_index,
forall_apply_eq_imp_iff, Set.mem_setOf_eq] at h
constructor
· apply h.2
exact fun x ⟨i, hi⟩ => hi ▸ le_ωSup c i
· rw [ωSup_le_iff]
apply h.1
| null |
9d8a4e4f3d0218d8bfc6e227b67583e15be1160c964829a1254725e9484ed986
| null | null | null | null | null | null | 24
| 4
|
type mismatch
fun x x_1 => ?m.2447
has type
(x : ℕ) → (x_1 : ?m.2448 x) → ?m.2449 x x_1 : Sort (imax ?u.2442 ?u.2445)
but is expected to have type
∀ (a : ℕ), c a ≤ ωSup c : Prop
|
exact fun x ⟨i, hi⟩ => hi ▸ le_ωSup c i
|
case left.a α : Type u inst✝¹ inst✝ : OmegaCompletePartialOrder α c : Chain α a : α h : (∀ (a_1 : ℕ), c a_1 ≤ a) ∧ ∀ ⦃a_1 : α⦄, (∀ (a : ℕ), c a ≤ a_1) → a ≤ a_1 ⊢ ∀ (a : ℕ), c a ≤ ωSup c
|
The proof fails because the lambda expression in the incorrect proof doesn't match the expected type, which should be a unary function ∀ (a : ℕ), c a ≤ ωSup c but was given as a binary function with an additional unnecessary parameter.
|
Simplify the lambda expression to directly show ∀ (a : ℕ), c a ≤ ωSup c without extra parameters.
|
herald
|
lme
|
train
|
AlgebraicGeometry.Scheme.Pullback.pullbackFstιToV_snd.lean
|
import Mathlib.AlgebraicGeometry.Gluing
import Mathlib.CategoryTheory.Limits.Opposites
import Mathlib.AlgebraicGeometry.AffineScheme
import Mathlib.CategoryTheory.Limits.Shapes.Diagonal
import Mathlib.AlgebraicGeometry.Pullbacks
open AlgebraicGeometry
open Scheme
open Pullback
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
variable {C : Type u} [Category.{v} C]
variable {X Y Z : Scheme.{u}} (𝒰 : OpenCover.{u} X) (f : X ⟶ Z) (g : Y ⟶ Z)
variable [∀ i, HasPullback (𝒰.map i ≫ f) g]
variable {X Y Z : Scheme.{u}} (𝒰 : OpenCover.{u} X) (f : X ⟶ Z) (g : Y ⟶ Z)
variable [∀ i, HasPullback (𝒰.map i ≫ f) g]
variable [∀ i, HasPullback (𝒰.map i ≫ f) g]
variable (s : PullbackCone f g)
theorem theorem_18535 (i j : 𝒰.J) :
pullbackFstιToV 𝒰 f g i j ≫ pullback.snd _ _ = pullback.fst _ _ ≫ pullback.snd _ _ := by
simp [pullbackFstιToV, p1]
|
import Mathlib.AlgebraicGeometry.Gluing
import Mathlib.CategoryTheory.Limits.Opposites
import Mathlib.AlgebraicGeometry.AffineScheme
import Mathlib.CategoryTheory.Limits.Shapes.Diagonal
import Mathlib.AlgebraicGeometry.Pullbacks
open AlgebraicGeometry
open Scheme
open Pullback
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
variable {C : Type u} [Category.{v} C]
variable {X Y Z : Scheme.{u}} (𝒰 : OpenCover.{u} X) (f : X ⟶ Z) (g : Y ⟶ Z)
variable [∀ i, HasPullback (𝒰.map i ≫ f) g]
variable {X Y Z : Scheme.{u}} (𝒰 : OpenCover.{u} X) (f : X ⟶ Z) (g : Y ⟶ Z)
variable [∀ i, HasPullback (𝒰.map i ≫ f) g]
variable [∀ i, HasPullback (𝒰.map i ≫ f) g]
variable (s : PullbackCone f g)
theorem theorem_18535 (i j : 𝒰.J) :
pullbackFstιToV 𝒰 f g i j ≫ pullback.snd _ _ = pullback.fst _ _ ≫ pullback.snd _ _ := by
simp [pullbackFstιToV]
| null |
edf1b77315333ebff8b4f41f81e62dd177c243c0815b493eda23fb0a26504a10
| null | null | null | null | null | null | 15
| 90
|
unsolved goals
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝¹ inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i j : 𝒰.J
⊢ (pullbackSymmetry (pullback.fst (p1 𝒰 f g) (𝒰.map i)) (Multicoequalizer.π (gluing 𝒰 f g).diagram j)).hom ≫
(pullbackRightPullbackFstIso (p1 𝒰 f g) (𝒰.map i) (Multicoequalizer.π (gluing 𝒰 f g).diagram j)).hom ≫
pullback.snd
(Multicoequalizer.π (gluing 𝒰 f g).diagram j ≫
Multicoequalizer.desc (gluing 𝒰 f g).diagram X (fun i => pullback.fst (𝒰.map i ≫ f) g ≫ 𝒰.map i) ⋯)
(𝒰.map i) =
pullback.fst (pullback.fst (p1 𝒰 f g) (𝒰.map i)) (Multicoequalizer.π (gluing 𝒰 f g).diagram j) ≫
pullback.snd (p1 𝒰 f g) (𝒰.map i)
|
pullbackFstιToV 𝒰 f g i j ≫ pullback.snd _ _ = pullback.fst _ _ ≫ pullback.snd _ _ := by
|
X Y Z : Scheme 𝒰 : X.OpenCover f : X ⟶ Z g : Y ⟶ Z inst✝¹ inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g i j : 𝒰.J ⊢ pullbackFstιToV 𝒰 f g i j ≫ pullback.snd (pullback.fst (𝒰.map j ≫ f) g ≫ 𝒰.map j) (𝒰.map i) = pullback.fst (pullback.fst (p1 𝒰 f g) (𝒰.map i)) ((gluing 𝒰 f g).ι j) ≫ pullback.snd (p1 𝒰 f g) (𝒰.map i)
|
The proof fails because the `simp` tactic alone is insufficient to simplify the complex pullback expressions, particularly those involving the `pullbackFstιToV` construction and pullback symmetries.
|
Add more specific lemmas or intermediate steps to simplify the pullback expressions before applying `simp`.
|
herald
|
lme
|
train
|
HasDerivWithinAt.liminf_right_slope_norm_le.lean
|
import Mathlib.Analysis.Calculus.Deriv.Basic
import Mathlib.LinearAlgebra.AffineSpace.Slope
import Mathlib.Analysis.Calculus.Deriv.Slope
open HasDerivWithinAt
open Topology Filter TopologicalSpace
open Filter Set
variable {𝕜 : Type u} [NontriviallyNormedField 𝕜]
variable {F : Type v} [NormedAddCommGroup F] [NormedSpace 𝕜 F]
variable {E : Type w} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
variable {f f₀ f₁ g : 𝕜 → F}
variable {f' f₀' f₁' g' : F}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {F : Type v} [NormedAddCommGroup F] [NormedSpace 𝕜 F]
variable {E : Type w} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
variable {f f₀ f₁ g : 𝕜 → F}
variable {f' f₀' f₁' g' : F}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {E : Type w} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
variable {f f₀ f₁ g : 𝕜 → F}
variable {f' f₀' f₁' g' : F}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {f f₀ f₁ g : 𝕜 → F}
variable {f' f₀' f₁' g' : F}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {f' f₀' f₁' g' : F}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {f : ℝ → ℝ} {f' : ℝ} {s : Set ℝ} {x : ℝ} {r : ℝ}
open Metric
variable {E : Type u} [NormedAddCommGroup E] [NormedSpace ℝ E] {f : ℝ → E} {f' : E} {s : Set ℝ}
{x r : ℝ}
theorem theorem_43318 (hf : HasDerivWithinAt f f' (Ici x) x)
(hr : ‖f'‖ < r) : ∃ᶠ z in 𝓝[>] x, (z - x)⁻¹ * (‖f z‖ - ‖f x‖) < r := by
have := (hf.Ioi_of_Ici.limsup_slope_norm_le hr).frequently
refine this.mp (Eventually.mono self_mem_nhdsWithin fun z hxz hz ↦ ?_)
rwa [Real.norm_eq_abs, abs_of_pos (sub_pos_of_lt hxz)] at hz
|
import Mathlib.Analysis.Calculus.Deriv.Basic
import Mathlib.LinearAlgebra.AffineSpace.Slope
import Mathlib.Analysis.Calculus.Deriv.Slope
open HasDerivWithinAt
open Topology Filter TopologicalSpace
open Filter Set
variable {𝕜 : Type u} [NontriviallyNormedField 𝕜]
variable {F : Type v} [NormedAddCommGroup F] [NormedSpace 𝕜 F]
variable {E : Type w} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
variable {f f₀ f₁ g : 𝕜 → F}
variable {f' f₀' f₁' g' : F}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {F : Type v} [NormedAddCommGroup F] [NormedSpace 𝕜 F]
variable {E : Type w} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
variable {f f₀ f₁ g : 𝕜 → F}
variable {f' f₀' f₁' g' : F}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {E : Type w} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
variable {f f₀ f₁ g : 𝕜 → F}
variable {f' f₀' f₁' g' : F}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {f f₀ f₁ g : 𝕜 → F}
variable {f' f₀' f₁' g' : F}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {f' f₀' f₁' g' : F}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {x : 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {s t : Set 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {L L₁ L₂ : Filter 𝕜}
variable {f : ℝ → ℝ} {f' : ℝ} {s : Set ℝ} {x : ℝ} {r : ℝ}
open Metric
variable {E : Type u} [NormedAddCommGroup E] [NormedSpace ℝ E] {f : ℝ → E} {f' : E} {s : Set ℝ}
{x r : ℝ}
theorem theorem_43318 (hf : HasDerivWithinAt f f' (Ici x) x)
(hr : ‖f'‖ < r) : ∃ᶠ z in 𝓝[>] x, (z - x)⁻¹ * (‖f z‖ - ‖f x‖) < r := by
have := hf.eventually_norm_slope_lt hr (by simp)
refine this.mp (Eventually.mono self_mem_nhdsWithin fun z hxz hz ↦ ?_)
rwa [Real.norm_eq_abs, abs_of_pos (sub_pos_of_lt hxz)] at hz
| null |
640b839b936333bafa4b5334212f8c6eaa7271c4790132098f82068cfbe7becf
| null | null | null | null | null | null | 47
| 73
|
unsolved goals
E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
f' : E
x r : ℝ
hf : HasDerivWithinAt f f' (Ici x) x
hr : ‖f'‖ < r
⊢ ∃ᶠ (z : ℝ) in 𝓝[>] x, (z - x)⁻¹ * (‖f z‖ - ‖f x‖) < r
|
(hr : ‖f'‖ < r) : ∃ᶠ z in 𝓝[>] x, (z - x)⁻¹ * (‖f z‖ - ‖f x‖) < r := by
|
E : Type u inst✝¹ : NormedAddCommGroup E inst✝ : NormedSpace ℝ E f : ℝ → E f' : E x r : ℝ hf : HasDerivWithinAt f f' (Ici x) x hr : ‖f'‖ < r ⊢ ∃ᶠ (z : ℝ) in 𝓝[>] x, (z - x)⁻¹ * (‖f z‖ - ‖f x‖) < r
|
The incorrect proof fails because it uses `hf.eventually_norm_slope_lt` which doesn't directly apply to the right-neighborhood condition (𝓝[>] x) needed in the theorem. The theorem requires working specifically with the right limit (Ioi x) rather than the closed interval (Ici x).
|
Use `hf.Ioi_of_Ici` to convert the derivative condition to the open interval before applying slope comparison.
|
herald
|
lme
|
train
|
tendsto_exp_div_rpow_atTop.lean
|
import Mathlib.Analysis.SpecialFunctions.Pow.NNReal
import Mathlib.Analysis.SpecialFunctions.Pow.Asymptotics
open scoped Classical
open Real Topology NNReal ENNReal Filter ComplexConjugate Finset Set
open Real Filter
open Asymptotics in
theorem theorem_21772 (s : ℝ) : Tendsto (fun x : ℝ => exp x / x ^ s) atTop atTop := by
cases' archimedean_iff_nat_lt.1 Real.instArchimedean s with n hn
refine tendsto_atTop_mono' _ ?_ (tendsto_exp_div_pow_atTop n)
filter_upwards [eventually_gt_atTop (0 : ℝ), eventually_ge_atTop (1 : ℝ)] with x hx₀ hx₁
rw [div_le_div_left (exp_pos _) (pow_pos hx₀ _) (rpow_pos_of_pos hx₀ _), ← Real.rpow_natCast]
exact rpow_le_rpow_of_exponent_le hx₁ hn.le
|
import Mathlib.Analysis.SpecialFunctions.Pow.NNReal
import Mathlib.Analysis.SpecialFunctions.Pow.Asymptotics
open scoped Classical
open Real Topology NNReal ENNReal Filter ComplexConjugate Finset Set
open Real Filter
open Asymptotics in
theorem theorem_21772 (s : ℝ) : Tendsto (fun x : ℝ => exp x / x ^ s) atTop atTop := by
obtain ⟨n, hn⟩ := exists_nat_ge s
refine tendsto_atTop_mono' _ ?_ (tendsto_exp_div_pow_atTop n)
filter_upwards [eventually_gt_atTop (0 : ℝ), eventually_ge_atTop (1 : ℝ)] with x hx₀ hx₁
rw [div_le_div_left (exp_pos _) (pow_pos hx₀ _) (rpow_pos_of_pos hx₀ _), ← Real.rpow_natCast]
exact rpow_le_rpow_of_exponent_le hx₁ hn.le
| null |
e6097cc7dea7dcae6a113b7b47993283de13f77cd592257bd2e1525efb615616
| null | null | null | null | null | null | 13
| 8
|
overloaded, errors
15:40 Invalid field `le`: The environment does not contain `_private.Mathlib.Data.Real.Basic.0.Real.le.le`
hn
has type
Real.le✝ s ↑n
15:40 Invalid field `le`: The environment does not contain `_private.Mathlib.Data.Real.Basic.0.Real.le.le`
hn
has type
Real.le✝ s ↑n
15:40 Invalid field `le`: The environment does not contain `_private.Mathlib.Data.Real.Basic.0.Real.le.le`
hn
has type
Real.le✝ s ↑n
|
exact rpow_le_rpow_of_exponent_le hx₁ hn.le
|
case h s : ℝ n : ℕ hn : s ≤ ↑n x : ℝ hx₀ : 0 < x hx₁ : 1 ≤ x ⊢ x ^ s ≤ x ^ ↑n
|
The proof fails because it attempts to use `exists_nat_ge` from Order.Bounds.Basic which creates a problematic implicit coercion to find a natural number upper bound (Real.le.le), rather than using the correct archimedean property instance for reals.
|
Use `archimedean_iff_nat_lt` with `Real.instArchimedean` to properly handle the real-to-natural-number coercion.
|
herald
|
lme
|
train
|
IsLindelof.elim_nhds_subcover.lean
|
import Mathlib.Topology.Bases
import Mathlib.Order.Filter.CountableInter
import Mathlib.Topology.Compactness.SigmaCompact
import Mathlib.Topology.Compactness.Lindelof
open IsLindelof
open Set Filter Topology TopologicalSpace
variable {X : Type u} {Y : Type v} {ι : Type*}
variable [TopologicalSpace X] [TopologicalSpace Y] {s t : Set X}
variable [TopologicalSpace X] [TopologicalSpace Y] {s t : Set X}
theorem theorem_29954 (hs : IsLindelof s) (U : X → Set X)
(hU : ∀ x ∈ s, U x ∈ 𝓝 x) :
∃ t : Set X, t.Countable ∧ (∀ x ∈ t, x ∈ s) ∧ s ⊆ ⋃ x ∈ t, U x := by
let ⟨t, ⟨htc, htsub⟩⟩ := hs.elim_nhds_subcover' (fun x _ ↦ U x) hU
refine ⟨↑t, Countable.image htc Subtype.val, ?_⟩
constructor
· intro _
simp only [mem_image, Subtype.exists, exists_and_right, exists_eq_right, forall_exists_index]
tauto
· have : ⋃ x ∈ t, U ↑x = ⋃ x ∈ Subtype.val '' t, U x := biUnion_image.symm
rwa [← this]
|
import Mathlib.Topology.Bases
import Mathlib.Order.Filter.CountableInter
import Mathlib.Topology.Compactness.SigmaCompact
import Mathlib.Topology.Compactness.Lindelof
open IsLindelof
open Set Filter Topology TopologicalSpace
variable {X : Type u} {Y : Type v} {ι : Type*}
variable [TopologicalSpace X] [TopologicalSpace Y] {s t : Set X}
variable [TopologicalSpace X] [TopologicalSpace Y] {s t : Set X}
theorem theorem_29954 (hs : IsLindelof s) (U : X → Set X)
(hU : ∀ x ∈ s, U x ∈ 𝓝 x) :
∃ t : Set X, t.Countable ∧ (∀ x ∈ t, x ∈ s) ∧ s ⊆ ⋃ x ∈ t, U x := by
let ⟨t, ⟨htc, htsub⟩⟩ := hs.elim_nhds_subcover' (fun x _ ↦ U x) hU
refine ⟨↑t, Countable.image htc Subtype.val, ?_⟩
constructor
· intro _
simp only [mem_image, Subtype.exists, exists_and_right, exists_eq_right, forall_exists_index]
tauto
have : (⋃ x ∈ t, U (x : X)) = ⋃ x ∈ (↑t : Set X), U x := by
rwa [← this]
| null |
32ef1d627a31fbf6446a89b0b7b0a33f1d591b18fd24b5606c0db57ec03d924a
| null | null | null | null | null | null | 10
| 70
|
unsolved goals
case right
X : Type u
inst✝¹ inst✝ : TopologicalSpace X
s : Set X
hs : IsLindelof s
U : X → Set X
hU : ∀ x ∈ s, U x ∈ 𝓝 x
t : Set ↑s
htc : t.Countable
htsub : s ⊆ ⋃ x ∈ t, U ↑x
this : ⋃ x ∈ t, U ↑x = ⋃ x ∈ Subtype.val '' t, U x
⊢ s ⊆ ⋃ x ∈ Subtype.val '' t, U x
|
∃ t : Set X, t.Countable ∧ (∀ x ∈ t, x ∈ s) ∧ s ⊆ ⋃ x ∈ t, U x := by
|
X : Type u inst✝¹ inst✝ : TopologicalSpace X s : Set X hs : IsLindelof s U : X → Set X hU : ∀ x ∈ s, U x ∈ 𝓝 x ⊢ ∃ t, t.Countable ∧ (∀ x ∈ t, x ∈ s) ∧ s ⊆ ⋃ x ∈ t, U x
|
The proof fails because it doesn't properly handle the subset relation between unions. The last `have` statement creates an equality, but then tries to rewrite with it incorrectly.
|
Use the created equality to rewrite the goal directly from `htsub` instead of attempting an unnecessary rewrite.
|
herald
|
lme
|
train
|
HomologicalComplex.XIsoOfEq_inv_comp_d.lean
|
import Mathlib.Algebra.Homology.ComplexShape
import Mathlib.CategoryTheory.Subobject.Limits
import Mathlib.CategoryTheory.GradedObject
import Mathlib.Algebra.Homology.ShortComplex.Basic
import Mathlib.Algebra.Homology.HomologicalComplex
open HomologicalComplex
open CategoryTheory CategoryTheory.Category CategoryTheory.Limits
variable {ι : Type*}
variable (V : Type u) [Category.{v} V] [HasZeroMorphisms V]
variable (V : Type u) [Category.{v} V] [HasZeroMorphisms V]
variable {V} {c : ComplexShape ι}
theorem theorem_40848 (K : HomologicalComplex V c) {p₂ p₁ : ι} (h : p₂ = p₁) (p₃ : ι) :
(K.XIsoOfEq h).inv ≫ K.d p₂ p₃ = K.d p₁ p₃ := by
subst h; simp
|
import Mathlib.Algebra.Homology.ComplexShape
import Mathlib.CategoryTheory.Subobject.Limits
import Mathlib.CategoryTheory.GradedObject
import Mathlib.Algebra.Homology.ShortComplex.Basic
import Mathlib.Algebra.Homology.HomologicalComplex
open HomologicalComplex
open CategoryTheory CategoryTheory.Category CategoryTheory.Limits
variable {ι : Type*}
variable (V : Type u) [Category.{v} V] [HasZeroMorphisms V]
variable (V : Type u) [Category.{v} V] [HasZeroMorphisms V]
variable {V} {c : ComplexShape ι}
theorem theorem_40848 (K : HomologicalComplex V c) {p₂ p₁ : ι} (h : p₂ = p₁) (p₃ : ι) :
(K.XIsoOfEq h).inv ≫ K.d p₂ p₃ = K.d p₁ p₃ := by
dsimp [XIsoOfEq]; simp
| null |
84d4ef5293087bb5535c9f1c400b006758fd02d5b130fb9a97b8dbb33ca76b48
| null | null | null | null | null | null | 11
| 20
|
simp made no progress
|
dsimp [XIsoOfEq]; simp
|
ι : Type u_1 V : Type u inst✝¹ : Category.{v, u} V inst✝ : HasZeroMorphisms V c : ComplexShape ι K : HomologicalComplex V c p₂ p₁ : ι h : p₂ = p₁ p₃ : ι ⊢ eqToHom ⋯ ≫ K.d p₂ p₃ = K.d p₁ p₃
|
The proof fails because 'dsimp [XIsoOfEq]' simplifies the goal to an eqToHom expression, but 'simp' cannot further simplify it without knowing p₂ = p₁.
|
First substitute the equality h before simplifying to allow simp to make progress.
|
herald
|
lme
|
train
|
List.findIdxs_cons.lean
|
import Batteries.Control.ForInStep.Lemmas
import Batteries.Data.List.Basic
import Batteries.Tactic.Init
import Batteries.Tactic.Alias
import Batteries.Data.List.Lemmas
open List
open Nat
variable [BEq α]
variable [BEq α]
variable [LawfulBEq α]
theorem theorem_20771 :
(x :: xs : List α).findIdxs p =
bif p x then 0 :: (xs.findIdxs p).map (· + 1) else (xs.findIdxs p).map (· + 1) := by
dsimp [findIdxs]
rw [cond_eq_if]
split <;>
· simp only [Nat.zero_add, foldrIdx_start, Nat.add_zero, cons.injEq, true_and]
apply findIdxs_cons_aux
|
import Batteries.Control.ForInStep.Lemmas
import Batteries.Data.List.Basic
import Batteries.Tactic.Init
import Batteries.Tactic.Alias
import Batteries.Data.List.Lemmas
open List
open Nat
variable [BEq α]
variable [BEq α]
variable [LawfulBEq α]
theorem theorem_20771 :
(x :: xs : List α).findIdxs p =
bif p x then 0 :: (xs.findIdxs p).map (· + 1) else (xs.findIdxs p).map (· + 1) := by
dsimp [findIdxs]
rw [cond_eq_if]
split <;>
· simp only [Nat.zero_add, foldrIdx_start, Nat.add_zero, cons.injEq, true_and]
rfl
| null |
3054c2eb429a30f30e6f0b3b3a031b46376ecfbd30f56bc86f7089883e2a109c
| null | null | null | null | null | null | 15
| 4
|
tactic 'rfl' failed, the left-hand side
foldrIdx (fun i a is => if p a = true then (i + 0 + 1) :: is else is) [] xs
is not definitionally equal to the right-hand side
map (fun x => x + 1) (foldrIdx (fun i a is => if p a = true then (i + 0) :: is else is) [] xs)
case isTrue
α : Type u_1
inst✝² inst✝¹ : BEq α
inst✝ : LawfulBEq α
x : α
xs : List α
p : α → Bool
h✝ : p x = true
⊢ foldrIdx (fun i a is => if p a = true then (i + 0 + 1) :: is else is) [] xs =
map (fun x => x + 1) (foldrIdx (fun i a is => if p a = true then (i + 0) :: is else is) [] xs)
|
rfl
|
case isFalse α : Type u_1 inst✝² inst✝¹ : BEq α inst✝ : LawfulBEq α x : α xs : List α p : α → Bool h✝ : ¬p x = true ⊢ foldrIdx (fun i a is => if p a = true then (i + 0 + 1) :: is else is) [] xs = map (fun x => x + 1) (foldrIdx (fun i a is => if p a = true then (i + 0) :: is else is) [] xs)
|
The proof fails because the 'rfl' tactic cannot automatically prove the equality between the two forms of foldrIdx expressions, particularly when dealing with the conditional branches and index arithmetic.
|
Instead of using 'rfl', invoke a lemma (findIdxs_cons_aux) that specifically handles the recursive case of findIdxs.
|
herald
|
lme
|
train
|
Nat.iSup_le_succ.lean
|
import Mathlib.Order.ConditionallyCompleteLattice.Finset
import Mathlib.Order.Interval.Finset.Nat
import Mathlib.Data.Nat.Lattice
open Nat
open Set
open scoped Classical
variable {α : Type*} [CompleteLattice α]
theorem theorem_35856 (u : ℕ → α) (n : ℕ) : ⨆ k ≤ n + 1, u k = (⨆ k ≤ n, u k) ⊔ u (n + 1) := by
simp_rw [← Nat.lt_succ_iff, iSup_lt_succ]
|
import Mathlib.Order.ConditionallyCompleteLattice.Finset
import Mathlib.Order.Interval.Finset.Nat
import Mathlib.Data.Nat.Lattice
open Nat
open Set
open scoped Classical
variable {α : Type*} [CompleteLattice α]
theorem theorem_35856 (u : ℕ → α) (n : ℕ) : ⨆ k ≤ n + 1, u k = (⨆ k ≤ n, u k) ⊔ u (n + 1) := by
simp [iSup_or, Nat.lt_succ_iff_lt_or_eq]
| null |
29b3c555b501ee56cab734db0c97fa4d045457bcf6d29887626d3a839525c9e7
| null | null | null | null | null | null | 8
| 2
|
simp made no progress
|
simp [iSup_or, Nat.lt_succ_iff_lt_or_eq]
|
α : Type u_1 inst✝ : CompleteLattice α u : ℕ → α n : ℕ ⊢ ⨆ k, ⨆ (_ : k ≤ n + 1), u k = (⨆ k, ⨆ (_ : k ≤ n), u k) ⊔ u (n + 1)
|
The proof fails because `simp` cannot simplify the goal using only `iSup_or` and `Nat.lt_succ_iff_lt_or_eq`; these lemmas don't directly match the structure of the goal about supremums over natural number bounds.
|
Use `simp_rw` with `Nat.lt_succ_iff` and `iSup_lt_succ` to rewrite the goal in a form that matches existing lemmas about supremums and successor relations.
|
herald
|
lme
|
train
|
List.mem_enum_iff_get?.lean
|
import Batteries.Tactic.Alias
import Mathlib.Tactic.TypeStar
import Mathlib.Data.Nat.Notation
import Mathlib.Data.List.Enum
open List
variable {α β : Type*}
theorem theorem_13170 {x : ℕ × α} {l : List α} : x ∈ enum l ↔ l.get? x.1 = x.2 := by
simp [mem_enum_iff_getElem?]
|
import Batteries.Tactic.Alias
import Mathlib.Tactic.TypeStar
import Mathlib.Data.Nat.Notation
import Mathlib.Data.List.Enum
open List
variable {α β : Type*}
theorem theorem_13170 {x : ℕ × α} {l : List α} : x ∈ enum l ↔ l.get? x.1 = x.2 := by
rw [List.mem_enum, List.get?_eq_some]
| null |
51bbb197b0ae82302e6abc8ed51c725111702431165b31ba3e018f6172f8b808
| null | null | null | null | null | null | 6
| 6
|
tactic 'rewrite' failed, equality or iff proof expected
?m.211 < length ?m.212 ∧ ?m.210 = ?m.212[?m.211]
α : Type u_1
x : ℕ × α
l : List α
⊢ x ∈ l.enum ↔ l.get? x.1 = some x.2
|
rw [List.mem_enum, List.get?_eq_some]
|
α : Type u_1 x : ℕ × α l : List α ⊢ x ∈ l.enum ↔ l.get? x.1 = some x.2
|
The proof fails because the rewrite tactic cannot directly apply `List.mem_enum` and `List.get?_eq_some` since they don't match the goal's structure and require additional simplification.
|
Use a simp lemma specifically designed for enum membership (`mem_enum_iff_getElem?`) to simplify the goal.
|
herald
|
lme
|
train
|
Fin.cons_injective_iff.lean
|
import Mathlib.Data.Fin.Basic
import Mathlib.Data.Nat.Find
import Batteries.Data.Fin.Lemmas
import Mathlib.Data.Fin.Tuple.Basic
open Fin
variable {m n : ℕ}
open Function
variable {α : Fin (n + 1) → Type u} (x : α 0) (q : ∀ i, α i) (p : ∀ i : Fin n, α i.succ) (i : Fin n)
(y : α i.succ) (z : α 0)
theorem theorem_17650 {α} {x₀ : α} {x : Fin n → α} :
Function.Injective (cons x₀ x : Fin n.succ → α) ↔ x₀ ∉ Set.range x ∧ Function.Injective x := by
refine ⟨fun h ↦ ⟨?_, ?_⟩, fun h ↦ cons_injective_of_injective h.1 h.2⟩
· rintro ⟨i, hi⟩
replace h := @h i.succ 0
simp [hi, succ_ne_zero] at h
· simpa [Function.comp] using h.comp (Fin.succ_injective _)
|
import Mathlib.Data.Fin.Basic
import Mathlib.Data.Nat.Find
import Batteries.Data.Fin.Lemmas
import Mathlib.Data.Fin.Tuple.Basic
open Fin
variable {m n : ℕ}
open Function
variable {α : Fin (n + 1) → Type u} (x : α 0) (q : ∀ i, α i) (p : ∀ i : Fin n, α i.succ) (i : Fin n)
(y : α i.succ) (z : α 0)
theorem theorem_17650 {α} {x₀ : α} {x : Fin n → α} :
Function.Injective (cons x₀ x : Fin n.succ → α) ↔ x₀ ∉ Set.range x ∧ Function.Injective x := by
refine ⟨fun h ↦ ⟨?_, ?_⟩, fun h ↦ cons_injective_of_injective h.1 h.2⟩
· rintro ⟨i, hi⟩
have := h (by simp [hi])
simp [hi, succ_ne_zero] at h
· simpa [Function.comp] using h.comp (Fin.succ_injective _)
| null |
09f7f80e6d5429d74cb2c40c63421f13682c1434ee09a84801611a5117ea7d2f
| null | null | null | null | null | null | 12
| 15
|
unsolved goals
n : ℕ
α : Type u_1
x₀ : α
x : Fin n → α
h : Injective (cons x₀ x)
i : Fin n
hi : x i = x₀
⊢ cons x₀ x ?m.600 = cons x₀ x ?m.601
|
have := h (by simp [hi])
|
n : ℕ α : Type u_1 x₀ : α x : Fin n → α h : Injective (cons x₀ x) i : Fin n hi : x i = x₀ ⊢ cons x₀ x ?m.600 = cons x₀ x ?m.601
|
The proof fails because the initial approach incorrectly uses `h (by simp [hi])` without specifying which indices to compare, leaving metavariables unresolved.
|
Explicitly compare specific indices (i.succ and 0) when using injectivity to resolve the goal.
|
herald
|
lme
|
train
|
List.dropLast_eq_dropLastTR.lean
|
import Init.Data.Array.Lemmas
import Init.Data.List.Impl
open List
theorem theorem_6886 : @dropLast = @dropLastTR := by
funext α l; simp [dropLastTR]
|
import Init.Data.Array.Lemmas
import Init.Data.List.Impl
open List
theorem theorem_6886 : @dropLast = @dropLastTR := by
exact funext (fun l => by induction l <;> simp [dropLast, dropLastTR])
| null |
bc3fb9b984e965d8b0aa486e994ba2260500067111957318ee17d907317cebe3
| null | null | null | null | null | null | 5
| 28
|
tactic 'induction' failed, major premise type is not an inductive type
Type u_1
Explanation: the 'induction' tactic is for constructor-based reasoning as well as for applying custom induction principles with a 'using' clause or a registered '@[induction_eliminator]' theorem. The above type neither is an inductive type nor has a registered theorem.
Type universes are not inductive types, and type-constructor-based reasoning is not possible. This is a strong limitation. According to Lean's underlying theory, the only provable distinguishing feature of types is their cardinalities.
l : Type u_1
⊢ dropLast = dropLastTR
|
exact funext (fun l => by induction l <;> simp [dropLast, dropLastTR])
|
l : Type u_1 ⊢ dropLast = dropLastTR
|
The proof fails because it attempts to use the 'induction' tactic on a type variable (Type u_1), which is not an inductive type and cannot be reasoned about by induction.
|
Replace the inductive approach with a direct proof using functional extensionality and simplification.
|
herald
|
lme
|
train
|
Complex.restrictScalars_one_smulRight.lean
|
import Mathlib.Data.Complex.Module
import Mathlib.Data.Complex.Order
import Mathlib.Data.Complex.Exponential
import Mathlib.Analysis.RCLike.Basic
import Mathlib.Topology.Algebra.InfiniteSum.Module
import Mathlib.Topology.Instances.RealVectorSpace
import Mathlib.Analysis.Complex.Basic
open Complex
variable {z : ℂ}
open ComplexConjugate Topology Filter
variable {E : Type*} [SeminormedAddCommGroup E] [NormedSpace ℂ E]
open ContinuousLinearMap
theorem theorem_24256 (x : ℂ) :
ContinuousLinearMap.restrictScalars ℝ ((1 : ℂ →L[ℂ] ℂ).smulRight x : ℂ →L[ℂ] ℂ) =
x • (1 : ℂ →L[ℝ] ℂ) := by
ext1 z
dsimp
apply mul_comm
|
import Mathlib.Data.Complex.Module
import Mathlib.Data.Complex.Order
import Mathlib.Data.Complex.Exponential
import Mathlib.Analysis.RCLike.Basic
import Mathlib.Topology.Algebra.InfiniteSum.Module
import Mathlib.Topology.Instances.RealVectorSpace
import Mathlib.Analysis.Complex.Basic
open Complex
variable {z : ℂ}
open ComplexConjugate Topology Filter
variable {E : Type*} [SeminormedAddCommGroup E] [NormedSpace ℂ E]
open ContinuousLinearMap
theorem theorem_24256 (x : ℂ) :
ContinuousLinearMap.restrictScalars ℝ ((1 : ℂ →L[ℂ] ℂ).smulRight x : ℂ →L[ℂ] ℂ) =
x • (1 : ℂ →L[ℝ] ℂ) := by
ext1 z
simp [ContinuousLinearMap.smulRight_apply, ContinuousLinearMap.restrictScalars_apply, ContinuousLinearMap.smul_apply]
apply mul_comm
| null |
f13edb38c8de6769d1a80fba946c7d28cb308f58880e41e538be9707d5bcc421
| null | null | null | null | null | null | 12
| 45
|
unknown constant 'ContinuousLinearMap.restrictScalars_apply'
|
simp [ContinuousLinearMap.smulRight_apply, ContinuousLinearMap.restrictScalars_apply, ContinuousLinearMap.smul_apply]
|
x : ℂ ⊢ restrictScalars ℝ (smulRight 1 x) = x • 1
|
The proof fails because it tries to use `ContinuousLinearMap.restrictScalars_apply` which is not a known lemma in the current context.
|
Replace the problematic lemma with simpler tactics like `dsimp` to unfold definitions.
|
herald
|
lme
|
train
|
CategoryTheory.ShiftedHom.id_map.lean
|
import Mathlib.CategoryTheory.Shift.CommShift
import Mathlib.CategoryTheory.Preadditive.AdditiveFunctor
import Mathlib.CategoryTheory.Shift.ShiftedHom
open CategoryTheory
open ShiftedHom
open Category
variable {C : Type*} [Category C] {D : Type*} [Category D] {E : Type*} [Category E]
{M : Type*} [AddMonoid M] [HasShift C M] [HasShift D M] [HasShift E M]
variable {X Y Z T : C}
variable [Preadditive C]
variable (X Y) in
@[simp]
lemma mk₀_zero (m₀ : M) (hm₀ : m₀ = 0) : mk₀ m₀ hm₀ (0 : X ⟶ Y) = 0 := by simp [mk₀]
variable (Z) in
@[simp]
lemma comp_zero [∀ (a : M), (shiftFunctor C a).PreservesZeroMorphisms]
{a : M} (β : ShiftedHom X Y a) {b c : M} (h : b + a = c) :
β.comp (0 : ShiftedHom Y Z b) h = 0 := by
rw [comp, Functor.map_zero, Limits.zero_comp, Limits.comp_zero]
variable (X) in
@[simp]
lemma zero_comp (a : M) {b c : M} (β : ShiftedHom Y Z b) (h : b + a = c) :
(0 : ShiftedHom X Y a).comp β h = 0 := by
rw [comp, Limits.zero_comp]
theorem theorem_35713 {a : M} (f : ShiftedHom X Y a) : f.map (𝟭 C) = f := by
simp [map, Functor.commShiftIso, Functor.CommShift.iso]
|
import Mathlib.CategoryTheory.Shift.CommShift
import Mathlib.CategoryTheory.Preadditive.AdditiveFunctor
import Mathlib.CategoryTheory.Shift.ShiftedHom
open CategoryTheory
open ShiftedHom
open Category
variable {C : Type*} [Category C] {D : Type*} [Category D] {E : Type*} [Category E]
{M : Type*} [AddMonoid M] [HasShift C M] [HasShift D M] [HasShift E M]
variable {X Y Z T : C}
variable [Preadditive C]
variable (X Y) in
@[simp]
lemma mk₀_zero (m₀ : M) (hm₀ : m₀ = 0) : mk₀ m₀ hm₀ (0 : X ⟶ Y) = 0 := by simp [mk₀]
variable (Z) in
@[simp]
lemma comp_zero [∀ (a : M), (shiftFunctor C a).PreservesZeroMorphisms]
{a : M} (β : ShiftedHom X Y a) {b c : M} (h : b + a = c) :
β.comp (0 : ShiftedHom Y Z b) h = 0 := by
rw [comp, Functor.map_zero, Limits.zero_comp, Limits.comp_zero]
variable (X) in
@[simp]
lemma zero_comp (a : M) {b c : M} (β : ShiftedHom Y Z b) (h : b + a = c) :
(0 : ShiftedHom X Y a).comp β h = 0 := by
rw [comp, Limits.zero_comp]
theorem theorem_35713 {a : M} (f : ShiftedHom X Y a) : f.map (𝟭 C) = f := by
simp [map, Functor.commShiftIso, Functor.CommShift.iso]
| null |
0b87f5f2c3c43a5a276519a210da246833fec6ba2e818962a8be8aefcbc57387
| null | null | null | null | null | null | 22
| 12
|
tactic 'rewrite' failed, did not find instance of the pattern in the target expression
(Functor.toPrefunctor ?F).map 0
C : Type u_1
inst✝³ : Category.{u_5, u_1} C
M : Type u_4
inst✝² : AddMonoid M
inst✝¹ : HasShift C M
X Y Z : C
inst✝ : Preadditive C
a b c : M
β : ShiftedHom Y Z b
h : b + a = c
⊢ 0 ≫ (shiftFunctor C a).map β ≫ (shiftFunctorAdd' C b a c h).inv.app Z = 0
|
rw [comp, Functor.map_zero, Limits.zero_comp, Limits.comp_zero]
|
C : Type u_1 inst✝³ : Category.{u_5, u_1} C M : Type u_4 inst✝² : AddMonoid M inst✝¹ : HasShift C M X Y Z : C inst✝ : Preadditive C a b c : M β : ShiftedHom Y Z b h : b + a = c ⊢ 0 ≫ (shiftFunctor C a).map β ≫ (shiftFunctorAdd' C b a c h).inv.app Z = 0
|
The proof fails because it attempts to rewrite using `Functor.map_zero` when the target expression doesn't contain this pattern, instead having the zero morphism composed with other terms.
|
Simplify the proof by directly applying `zero_comp` lemma which handles the zero morphism composition case.
|
herald
|
lme
|
train
|
mem_adjoin_of_dvd_coeff_of_dvd_aeval.lean
|
import Mathlib.Data.Nat.Choose.Dvd
import Mathlib.RingTheory.IntegralClosure.IntegrallyClosed
import Mathlib.RingTheory.Norm.Basic
import Mathlib.RingTheory.Polynomial.Cyclotomic.Expand
import Mathlib.RingTheory.Polynomial.Eisenstein.IsIntegral
variable {R : Type u}
open Ideal Algebra Finset
open scoped Polynomial
variable (p : ℕ)
open Polynomial
variable {K : Type v} {L : Type z} {p : R} [CommRing R] [Field K] [Field L]
variable [Algebra K L] [Algebra R L] [Algebra R K] [IsScalarTower R K L] [Algebra.IsSeparable K L]
variable [IsDomain R] [IsFractionRing R K] [IsIntegrallyClosed R]
variable [Algebra K L] [Algebra R L] [Algebra R K] [IsScalarTower R K L] [Algebra.IsSeparable K L]
variable [IsDomain R] [IsFractionRing R K] [IsIntegrallyClosed R]
variable [IsDomain R] [IsFractionRing R K] [IsIntegrallyClosed R]
open IsIntegrallyClosed PowerBasis Nat Polynomial IsScalarTower
theorem theorem_6572 {A B : Type*} [CommSemiring A] [CommRing B]
[Algebra A B] [NoZeroSMulDivisors A B] {Q : A[X]} {p : A} {x z : B} (hp : p ≠ 0)
(hQ : ∀ i ∈ range (Q.natDegree + 1), p ∣ Q.coeff i) (hz : aeval x Q = p • z) :
z ∈ adjoin A ({x} : Set B) := by
choose! f hf using hQ
rw [aeval_eq_sum_range, sum_range] at hz
conv_lhs at hz =>
congr
next => skip
ext i
rw [hf i (mem_range.2 (Fin.is_lt i)), ← smul_smul]
rw [← smul_sum] at hz
rw [← smul_right_injective _ hp hz]
exact
Subalgebra.sum_mem _ fun _ _ =>
Subalgebra.smul_mem _ (Subalgebra.pow_mem _ (subset_adjoin (Set.mem_singleton _)) _) _
|
import Mathlib.Data.Nat.Choose.Dvd
import Mathlib.RingTheory.IntegralClosure.IntegrallyClosed
import Mathlib.RingTheory.Norm.Basic
import Mathlib.RingTheory.Polynomial.Cyclotomic.Expand
import Mathlib.RingTheory.Polynomial.Eisenstein.IsIntegral
variable {R : Type u}
open Ideal Algebra Finset
open scoped Polynomial
variable (p : ℕ)
open Polynomial
variable {K : Type v} {L : Type z} {p : R} [CommRing R] [Field K] [Field L]
variable [Algebra K L] [Algebra R L] [Algebra R K] [IsScalarTower R K L] [Algebra.IsSeparable K L]
variable [IsDomain R] [IsFractionRing R K] [IsIntegrallyClosed R]
variable [Algebra K L] [Algebra R L] [Algebra R K] [IsScalarTower R K L] [Algebra.IsSeparable K L]
variable [IsDomain R] [IsFractionRing R K] [IsIntegrallyClosed R]
variable [IsDomain R] [IsFractionRing R K] [IsIntegrallyClosed R]
open IsIntegrallyClosed PowerBasis Nat Polynomial IsScalarTower
theorem theorem_6572 {A B : Type*} [CommSemiring A] [CommRing B]
[Algebra A B] [NoZeroSMulDivisors A B] {Q : A[X]} {p : A} {x z : B} (hp : p ≠ 0)
(hQ : ∀ i ∈ range (Q.natDegree + 1), p ∣ Q.coeff i) (hz : aeval x Q = p • z) :
z ∈ adjoin A ({x} : Set B) := by
choose! f hf using hQ
rw [aeval_eq_sum_range, sum_range] at hz
conv_lhs at hz =>
congr
next => skip
ext i
rw [hf i (mem_range.2 (Fin.is_lt i)), ← smul_smul]
rw [← smul_sum] at hz
rw [← smul_right_injective _ hp hz]
exact
Subalgebra.sum_mem _ fun _ _ =>
Subalgebra.smul_mem _ (Subalgebra.pow_mem _ (subset_adjoin (Set.mem_singleton x)) (i : ℕ)) (f i)
| null |
43abea0330c05492f8048fd055f330230a4f03f179d7ed2e3f8a947ccc8ae168
| null | null | null | null | null | null | 31
| 89
|
unknown identifier 'i'
|
Subalgebra.smul_mem _ (Subalgebra.pow_mem _ (subset_adjoin (Set.mem_singleton x)) (i : ℕ)) (f i)
|
A : Type u_1 B : Type u_2 inst✝³ : CommSemiring A inst✝² : CommRing B inst✝¹ : Algebra A B inst✝ : NoZeroSMulDivisors A B Q : A[X] p : A x z : B hp : p ≠ 0 f : ℕ → A hz : p • ∑ x_1, f ↑x_1 • x ^ ↑x_1 = p • z hf : ∀ i ∈ range (Q.natDegree + 1), Q.coeff i = p * f i ⊢ ∑ x_1, f ↑x_1 • x ^ ↑x_1 ∈ adjoin A {x}
|
The proof fails because the variable 'i' is referenced in the final exact statement but it is out of scope - it was only visible within the conv_lhs block.
|
Replace the specific variable 'i' with a placeholder or lambda-bound variable in the final exact statement to maintain correct scope.
|
herald
|
lme
|
train
|
ENNReal.Ioo_zero_top_eq_iUnion_Ico_zpow.lean
|
import Mathlib.Data.ENNReal.Operations
import Mathlib.Data.ENNReal.Inv
open ENNReal
open Set NNReal
variable {a b c d : ℝ≥0∞} {r p q : ℝ≥0}
theorem theorem_388 {y : ℝ≥0∞} (hy : 1 < y) (h'y : y ≠ ⊤) :
Ioo (0 : ℝ≥0∞) (∞ : ℝ≥0∞) = ⋃ n : ℤ, Ico (y ^ n) (y ^ (n + 1)) := by
ext x
simp only [mem_iUnion, mem_Ioo, mem_Ico]
constructor
· rintro ⟨hx, h'x⟩
exact exists_mem_Ico_zpow hx.ne' h'x.ne hy h'y
· rintro ⟨n, hn, h'n⟩
constructor
· apply lt_of_lt_of_le _ hn
exact ENNReal.zpow_pos (zero_lt_one.trans hy).ne' h'y _
· apply lt_trans h'n _
exact ENNReal.zpow_lt_top (zero_lt_one.trans hy).ne' h'y _
|
import Mathlib.Data.ENNReal.Operations
import Mathlib.Data.ENNReal.Inv
open ENNReal
open Set NNReal
variable {a b c d : ℝ≥0∞} {r p q : ℝ≥0}
theorem theorem_388 {y : ℝ≥0∞} (hy : 1 < y) (h'y : y ≠ ⊤) :
Ioo (0 : ℝ≥0∞) (∞ : ℝ≥0∞) = ⋃ n : ℤ, Ico (y ^ n) (y ^ (n + 1)) := by
ext x
simp only [mem_iUnion, mem_Ioo, mem_Ico]
constructor
· rintro ⟨hx, h'x⟩
obtain ⟨n, hn, h'n⟩ := ENNReal.exists_mem_Ico_zpow hy h'y (ne_of_gt hx) (ne_of_lt h'x)
· rintro ⟨n, hn, h'n⟩
constructor
· apply lt_of_lt_of_le _ hn
exact ENNReal.zpow_pos (zero_lt_one.trans hy).ne' h'y _
· apply lt_trans h'n _
exact ENNReal.zpow_lt_top (zero_lt_one.trans hy).ne' h'y _
| null |
d5fac205433a26918d95af7bf4a2018da752346be5974e0cc3e677f925a2c63f
| null | null | null | null | null | null | 12
| 55
|
Application type mismatch: In the application
ENNReal.exists_mem_Ico_zpow hy
the argument
hy
has type
1 < y : Prop
but is expected to have type
?m.1231 ≠ 0 : Prop
|
obtain ⟨n, hn, h'n⟩ := ENNReal.exists_mem_Ico_zpow hy h'y (ne_of_gt hx) (ne_of_lt h'x)
|
y : ℝ≥0∞ hy : 1 < y h'y : y ≠ ⊤ ⊢ Ioo 0 ⊤ = ⋃ n, Ico (y ^ n) (y ^ (n + 1))
|
The proof fails because `ENNReal.exists_mem_Ico_zpow` expects four arguments in the order: `(hx : x ≠ 0) (hx' : x ≠ ⊤) (hy : 1 < y) (h'y : y ≠ ⊤)`, but the incorrect proof passes the arguments out of order.
|
Pass the arguments in correct order, first showing x is neither 0 nor ∞, then showing y is greater than 1 and finite.
|
herald
|
lme
|
train
|
CochainComplex.mappingCone.inr_snd.lean
|
import Mathlib.Algebra.Homology.HomotopyCategory.HomComplex
import Mathlib.Algebra.Homology.HomotopyCofiber
import Mathlib.Algebra.Homology.HomotopyCategory.MappingCone
open CochainComplex
open mappingCone
open CategoryTheory Limits
variable {C D : Type*} [Category C] [Category D] [Preadditive C] [Preadditive D]
open HomologicalComplex
variable {ι : Type*} [AddRightCancelSemigroup ι] [One ι]
{F G : CochainComplex C ι} (φ : F ⟶ G)
variable {F G : CochainComplex C ℤ} (φ : F ⟶ G)
variable [HasHomotopyCofiber φ]
variable [HasHomotopyCofiber φ]
open HomComplex
theorem theorem_34562 :
(Cochain.ofHom (inr φ)).comp (snd φ) (zero_add 0) = Cochain.ofHom (𝟙 G) := by
aesop_cat
|
import Mathlib.Algebra.Homology.HomotopyCategory.HomComplex
import Mathlib.Algebra.Homology.HomotopyCofiber
import Mathlib.Algebra.Homology.HomotopyCategory.MappingCone
open CochainComplex
open mappingCone
open CategoryTheory Limits
variable {C D : Type*} [Category C] [Category D] [Preadditive C] [Preadditive D]
open HomologicalComplex
variable {ι : Type*} [AddRightCancelSemigroup ι] [One ι]
{F G : CochainComplex C ι} (φ : F ⟶ G)
variable {F G : CochainComplex C ℤ} (φ : F ⟶ G)
variable [HasHomotopyCofiber φ]
variable [HasHomotopyCofiber φ]
open HomComplex
theorem theorem_34562 :
(Cochain.ofHom (inr φ)).comp (snd φ) (zero_add 0) = Cochain.ofHom (𝟙 G) := by
simp [inr_comp_snd]
| null |
abae78748898619ed0b9b4f74fba7934f4a3bbda5977f912a0f7f07d4fd55ec3
| null | null | null | null | null | null | 16
| 8
|
unknown identifier 'inr_comp_snd'
|
simp [inr_comp_snd]
|
C : Type u_1 inst✝³ : Category.{u_4, u_1} C inst✝² : Preadditive C F G : CochainComplex C ℤ φ : F ⟶ G inst✝¹ inst✝ : HasHomotopyCofiber φ ⊢ (Cochain.ofHom (inr φ)).comp (snd φ) ⋯ = Cochain.ofHom (𝟙 G)
|
The proof fails because it references an unknown lemma 'inr_comp_snd', which doesn't exist in the current context or imported modules.
|
Use a more general automation tactic like aesop_cat that can find or construct the required proof.
|
herald
|
lme
|
train
|
TypeVec.diag_sub_val.lean
|
import Mathlib.Data.Fin.Fin2
import Mathlib.Logic.Function.Basic
import Mathlib.Tactic.Common
import Mathlib.Data.TypeVec
open TypeVec
variable {n : ℕ}
open MvFunctor
open Nat
open Function (uncurry)
variable {α β γ : TypeVec.{u} n}
variable (p : α ⟹ «repeat» n Prop) (r : α ⊗ α ⟹ «repeat» n Prop)
variable (p : α ⟹ «repeat» n Prop) (r : α ⊗ α ⟹ «repeat» n Prop)
theorem theorem_1976 {n} {α : TypeVec.{u} n} : subtypeVal (repeatEq α) ⊚ diagSub = prod.diag := by
ext i x
induction' i with _ _ _ i_ih
· simp only [comp, subtypeVal, repeatEq.eq_2, diagSub, prod.diag]
apply @i_ih (drop α)
|
import Mathlib.Data.Fin.Fin2
import Mathlib.Logic.Function.Basic
import Mathlib.Tactic.Common
import Mathlib.Data.TypeVec
open TypeVec
variable {n : ℕ}
open MvFunctor
open Nat
open Function (uncurry)
variable {α β γ : TypeVec.{u} n}
variable (p : α ⟹ «repeat» n Prop) (r : α ⊗ α ⟹ «repeat» n Prop)
variable (p : α ⟹ «repeat» n Prop) (r : α ⊗ α ⟹ «repeat» n Prop)
theorem theorem_1976 {n} {α : TypeVec.{u} n} : subtypeVal (repeatEq α) ⊚ diagSub = prod.diag := by
ext i x
induction i with
· simp only [comp, subtypeVal, repeatEq.eq_2, diagSub, prod.diag]
apply @i_ih (drop α)
| null |
ee5a833e8b190bb37706dee155753a04fc383f05fcc1748aab01d16b692b0158
| null | null | null | null | null | null | 13
| 2
|
Alternative 'fz' has not been provided
|
induction i with
|
case a.h n : ℕ α : TypeVec.{u} n i : Fin2 n x : α i ⊢ (subtypeVal α.repeatEq ⊚ diagSub) i x = prod.diag i x
|
The proof fails because the induction tactic is incorrectly used without specifying the base case pattern for Fin2 (Fin2.zero vs Fin2.succ).
|
Use induction' instead of induction to properly handle Fin2 cases with explicit pattern matching.
|
herald
|
lme
|
train
|
Fin.init_snoc.lean
|
import Mathlib.Data.Fin.Basic
import Mathlib.Data.Nat.Find
import Batteries.Data.Fin.Lemmas
import Mathlib.Data.Fin.Tuple.Basic
open Fin
variable {m n : ℕ}
open Function
variable {α : Fin (n + 1) → Type u} (x : α 0) (q : ∀ i, α i) (p : ∀ i : Fin n, α i.succ) (i : Fin n)
(y : α i.succ) (z : α 0)
variable {α : Fin (n + 1) → Type u} (x : α (last n)) (q : ∀ i, α i)
(p : ∀ i : Fin n, α (castSucc i)) (i : Fin n) (y : α (castSucc i)) (z : α (last n))
theorem theorem_17580 : init (snoc p x) = p := by
ext i
simp only [init, snoc, coe_castSucc, is_lt, cast_eq, dite_true]
convert cast_eq rfl (p i)
|
import Mathlib.Data.Fin.Basic
import Mathlib.Data.Nat.Find
import Batteries.Data.Fin.Lemmas
import Mathlib.Data.Fin.Tuple.Basic
open Fin
variable {m n : ℕ}
open Function
variable {α : Fin (n + 1) → Type u} (x : α 0) (q : ∀ i, α i) (p : ∀ i : Fin n, α i.succ) (i : Fin n)
(y : α i.succ) (z : α 0)
variable {α : Fin (n + 1) → Type u} (x : α (last n)) (q : ∀ i, α i)
(p : ∀ i : Fin n, α (castSucc i)) (i : Fin n) (y : α (castSucc i)) (z : α (last n))
theorem theorem_17580 : init (snoc p x) = p := by
ext i
dsimp [init]
convert cast_eq rfl (p i)
| null |
e8608406393bba0ee2797209bfef834e455ca04c7ad97f2038a2d32690e625fc
| null | null | null | null | null | null | 10
| 47
|
unsolved goals
case h.e'_2
n : ℕ
α : Fin (n + 1) → Type u
x : α (last n)
p : (i : Fin n) → α i.castSucc
i : Fin n
⊢ snoc p x i.castSucc = cast ⋯ (p i)
|
theorem theorem_17580 : init (snoc p x) = p := by
|
n : ℕ α : Fin (n + 1) → Type u x : α (last n) p : (i : Fin n) → α i.castSucc ⊢ init (snoc p x) = p
|
The proof fails because the `convert` tactic doesn't fully simplify the `snoc` expression applied to `i.castSucc`, leaving an unsolved goal about the equality of terms.
|
Add more simplification lemmas before the `convert` step to properly reduce the `snoc` application.
|
herald
|
lme
|
train
|
nhdsSet_eq_principal_iff.lean
|
import Mathlib.Topology.Basic
import Mathlib.Topology.NhdsSet
open Set Filter Topology
variable {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y] {f : Filter X}
{s t s₁ s₂ t₁ t₂ : Set X} {x : X}
theorem theorem_18985 : 𝓝ˢ s = 𝓟 s ↔ IsOpen s := by
rw [← principal_le_nhdsSet.le_iff_eq, le_principal_iff, mem_nhdsSet_iff_forall,
isOpen_iff_mem_nhds]
|
import Mathlib.Topology.Basic
import Mathlib.Topology.NhdsSet
open Set Filter Topology
variable {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y] {f : Filter X}
{s t s₁ s₂ t₁ t₂ : Set X} {x : X}
theorem theorem_18985 : 𝓝ˢ s = 𝓟 s ↔ IsOpen s := by
constructor
isOpen_iff_mem_nhds]
| null |
5e34d46a413031b2f70a184a29aa6cc2568b2438eedd9d021c3a4c603c4d28ac
| null | null | null | null | null | null | 7
| 49
|
unsolved goals
case mp
X : Type u_1
inst✝ : TopologicalSpace X
s : Set X
⊢ 𝓝ˢ s = 𝓟 s → IsOpen s
case mpr
X : Type u_1
inst✝ : TopologicalSpace X
s : Set X
⊢ IsOpen s → 𝓝ˢ s = 𝓟 s
|
theorem theorem_18985 : 𝓝ˢ s = 𝓟 s ↔ IsOpen s := by
|
X : Type u_1 inst✝ : TopologicalSpace X s : Set X ⊢ 𝓝ˢ s = 𝓟 s ↔ IsOpen s
|
The proof fails because it only attempts to use one tactic `isOpen_iff_mem_nhds` which isn't sufficient to prove the bi-implication. The constructor tactic splits the goal into two directions (mp and mpr), but neither subgoal is addressed.
|
Use rewrite tactics to transform both sides of the bi-implication using relevant lemmas about neighborhoods and principal filters.
|
herald
|
lme
|
train
|
ProbabilityTheory.Kernel.sum_fintype.lean
|
import Mathlib.MeasureTheory.Integral.Bochner
import Mathlib.MeasureTheory.Measure.GiryMonad
import Mathlib.Probability.Kernel.Basic
open ProbabilityTheory
open Kernel
open MeasureTheory
open scoped MeasureTheory ENNReal NNReal
variable {α β ι : Type*} {mα : MeasurableSpace α} {mβ : MeasurableSpace β}
variable {κ : Kernel α β}
theorem theorem_25974 [Fintype ι] (κ : ι → Kernel α β) : Kernel.sum κ = ∑ i, κ i := by
ext a s hs
simp only [sum_apply' κ a hs, finset_sum_apply' _ κ a s, tsum_fintype]
|
import Mathlib.MeasureTheory.Integral.Bochner
import Mathlib.MeasureTheory.Measure.GiryMonad
import Mathlib.Probability.Kernel.Basic
open ProbabilityTheory
open Kernel
open MeasureTheory
open scoped MeasureTheory ENNReal NNReal
variable {α β ι : Type*} {mα : MeasurableSpace α} {mβ : MeasurableSpace β}
variable {κ : Kernel α β}
theorem theorem_25974 [Fintype ι] (κ : ι → Kernel α β) : Kernel.sum κ = ∑ i, κ i := by
ext a s hs
rfl
| null |
8e3746e6213f7acf7dddc2d4897c09a131858fb79a044020350d07941ba3df0d
| null | null | null | null | null | null | 11
| 2
|
tactic 'rfl' failed, the left-hand side
((Kernel.sum κ) a) s
is not definitionally equal to the right-hand side
((∑ i, κ i) a) s
case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝ : Fintype ι
κ : ι → Kernel α β
a : α
s : Set β
hs : MeasurableSet s
⊢ ((Kernel.sum κ) a) s = ((∑ i, κ i) a) s
|
rfl
|
case h.h α : Type u_1 β : Type u_2 ι : Type u_3 mα : MeasurableSpace α mβ : MeasurableSpace β inst✝ : Fintype ι κ : ι → Kernel α β a : α s : Set β hs : MeasurableSet s ⊢ ((Kernel.sum κ) a) s = ((∑ i, κ i) a) s
|
The proof fails because `rfl` can only prove equalities that are definitionally true, but the expressions `((Kernel.sum κ) a) s` and `((∑ i, κ i) a) s` are not definitionally equal - they require unfolding definitions and applying theorems about kernel sums.
|
Use simplification lemmas like `sum_apply'` and `finset_sum_apply'` to rewrite both sides into equivalent forms before applying `rfl`.
|
herald
|
lme
|
train
|
Filter.EventuallyLE.cardinal_bInter.lean
|
import Mathlib.Order.Filter.Basic
import Mathlib.Order.Filter.CountableInter
import Mathlib.SetTheory.Cardinal.Ordinal
import Mathlib.SetTheory.Cardinal.Cofinality
import Mathlib.Order.Filter.CardinalInter
open Filter
open EventuallyLE
open Set Filter Cardinal
variable {ι : Type u} {α β : Type u} {c : Cardinal.{u}}
variable {l : Filter α}
variable [CardinalInterFilter l c]
theorem theorem_22050 {S : Set ι} (hS : #S < c)
{s t : ∀ i ∈ S, Set α} (h : ∀ i hi, s i hi ≤ᶠ[l] t i hi) :
⋂ i ∈ S, s i ‹_› ≤ᶠ[l] ⋂ i ∈ S, t i ‹_› := by
simp only [biInter_eq_iInter]
exact EventuallyLE.cardinal_iInter hS fun i => h i i.2
|
import Mathlib.Order.Filter.Basic
import Mathlib.Order.Filter.CountableInter
import Mathlib.SetTheory.Cardinal.Ordinal
import Mathlib.SetTheory.Cardinal.Cofinality
import Mathlib.Order.Filter.CardinalInter
open Filter
open EventuallyLE
open Set Filter Cardinal
variable {ι : Type u} {α β : Type u} {c : Cardinal.{u}}
variable {l : Filter α}
variable [CardinalInterFilter l c]
theorem theorem_22050 {S : Set ι} (hS : #S < c)
{s t : ∀ i ∈ S, Set α} (h : ∀ i hi, s i hi ≤ᶠ[l] t i hi) :
⋂ i ∈ S, s i ‹_› ≤ᶠ[l] ⋂ i ∈ S, t i ‹_› := by
simp only [biInter_eq_iInter]
exact CardinalInterFilter.eventually_iInter hS h
| null |
be41a2ff636fcc372ca303236623d436b5df6837ec5943569b945d8df7e245f3
| null | null | null | null | null | null | 13
| 8
|
unknown constant 'CardinalInterFilter.eventually_iInter'
|
exact CardinalInterFilter.eventually_iInter hS h
|
ι α : Type u c : Cardinal.{u} l : Filter α inst✝ : CardinalInterFilter l c S : Set ι hS : #↑S < c s t : (i : ι) → i ∈ S → Set α h : ∀ (i : ι) (hi : i ∈ S), s i hi ≤ᶠ[l] t i hi ⊢ ⋂ x, s ↑x ⋯ ≤ᶠ[l] ⋂ x, t ↑x ⋯
|
The proof fails because it references an unknown constant 'CardinalInterFilter.eventually_iInter', which doesn't exist in the available imports.
|
Use 'EventuallyLE.cardinal_iInter' instead, which is the correct function for this operation.
|
herald
|
lme
|
train
|
Pretrivialization.coe_linearMapAt_of_mem.lean
|
import Mathlib.Analysis.Normed.Operator.BoundedLinearMaps
import Mathlib.Topology.FiberBundle.Basic
import Mathlib.Topology.VectorBundle.Basic
open Pretrivialization
open Bundle Set
open scoped Topology
variable (R : Type*) {B : Type*} (F : Type*) (E : B → Type*)
variable {F E}
variable [Semiring R] [TopologicalSpace F] [TopologicalSpace B]
variable [Semiring R] [TopologicalSpace F] [TopologicalSpace B]
variable (e : Pretrivialization F (π F E)) {x : TotalSpace F E} {b : B} {y : E b}
variable [AddCommMonoid F] [Module R F] [∀ x, AddCommMonoid (E x)] [∀ x, Module R (E x)]
open Classical in
variable {R}
open Classical in
theorem theorem_15623 (e : Pretrivialization F (π F E)) [e.IsLinear R] {b : B}
(hb : b ∈ e.baseSet) : ⇑(e.linearMapAt R b) = fun y => (e ⟨b, y⟩).2 := by
simp_rw [coe_linearMapAt, if_pos hb]
|
import Mathlib.Analysis.Normed.Operator.BoundedLinearMaps
import Mathlib.Topology.FiberBundle.Basic
import Mathlib.Topology.VectorBundle.Basic
open Pretrivialization
open Bundle Set
open scoped Topology
variable (R : Type*) {B : Type*} (F : Type*) (E : B → Type*)
variable {F E}
variable [Semiring R] [TopologicalSpace F] [TopologicalSpace B]
variable [Semiring R] [TopologicalSpace F] [TopologicalSpace B]
variable (e : Pretrivialization F (π F E)) {x : TotalSpace F E} {b : B} {y : E b}
variable [AddCommMonoid F] [Module R F] [∀ x, AddCommMonoid (E x)] [∀ x, Module R (E x)]
open Classical in
variable {R}
open Classical in
theorem theorem_15623 (e : Pretrivialization F (π F E)) [e.IsLinear R] {b : B}
(hb : b ∈ e.baseSet) : ⇑(e.linearMapAt R b) = fun y => (e ⟨b, y⟩).2 := by
simp_rw [e.coe_linearMapAt, dif_pos hb]
| null |
0f88d0c8e0e7784225ade9af9d296896083e12934fc55b0810faaa16197b74d8
| null | null | null | null | null | null | 17
| 30
|
simp made no progress
|
simp_rw [e.coe_linearMapAt, dif_pos hb]
|
R : Type u_1 B : Type u_2 F : Type u_3 E : B → Type u_4 inst✝¹⁰ : Semiring R inst✝⁹ : TopologicalSpace F inst✝⁸ : TopologicalSpace B inst✝⁷ : Semiring R inst✝⁶ : TopologicalSpace F inst✝⁵ : TopologicalSpace B inst✝⁴ : AddCommMonoid F inst✝³ : Module R F inst✝² : (x : B) → AddCommMonoid (E x) inst✝¹ : (x : B) → Module R (E x) e : Pretrivialization F TotalSpace.proj inst✝ : Pretrivialization.IsLinear R e b : B hb : b ∈ e.baseSet ⊢ (fun y => if b ∈ e.baseSet then (↑e { proj := b, snd := y }).2 else 0) = fun y => (↑e { proj := b, snd := y }).2
|
The proof fails because `simp_rw` with `dif_pos hb` doesn't simplify the goal since the condition `b ∈ e.baseSet` appears in a different form (as an `if` expression rather than a `dite`).
|
Use `if_pos hb` instead of `dif_pos hb` to match the `if` expression in the goal.
|
herald
|
lme
|
train
|
Surreal.Multiplication.P4_neg_left.lean
|
import Mathlib.Logic.Hydra
import Mathlib.SetTheory.Surreal.Basic
import Mathlib.SetTheory.Surreal.Multiplication
open Surreal
open Multiplication
open SetTheory Game PGame WellFounded
variable {x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame.{u}}
theorem theorem_29512 : P4 x₁ x₂ y ↔ P4 (-x₂) (-x₁) y := by
simp_rw [P4, PGame.neg_lt_neg_iff, moveLeft_neg', ← P3_neg]
|
import Mathlib.Logic.Hydra
import Mathlib.SetTheory.Surreal.Basic
import Mathlib.SetTheory.Surreal.Multiplication
open Surreal
open Multiplication
open SetTheory Game PGame WellFounded
variable {x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame.{u}}
theorem theorem_29512 : P4 x₁ x₂ y ↔ P4 (-x₂) (-x₁) y := by
constructor <;> intro h <;> simpa using h.neg
| null |
48db926d38f8433c6f2436dfb8a90a2d2b6f69d6a581fe06864ac13babcacbe2
| null | null | null | null | null | null | 8
| 42
|
Invalid field `neg`: The environment does not contain `Surreal.Multiplication.P4.neg`
h
has type
P4 x₁ x₂ y
|
constructor <;> intro h <;> simpa using h.neg
|
case mpr x₁ x₂ y : PGame h : P4 (-x₂) (-x₁) y ⊢ P4 x₁ x₂ y
|
The proof fails because it incorrectly assumes P4 has a 'neg' field, but this field doesn't exist in the current environment.
|
Use the correct lemmas about P4 properties and negation instead of the non-existent neg field.
|
herald
|
lme
|
train
|
Real.four_mul_arctan_inv_5_sub_arctan_inv_239.lean
|
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Complex
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Arctan
open Real
open Set Filter
open scoped Topology Real
theorem theorem_27001 : 4 * arctan 5⁻¹ - arctan 239⁻¹ = π / 4 := by
rw [show 4 * arctan _ = 2 * (2 * _) by ring, two_mul_arctan, two_mul_arctan, ← arctan_one,
sub_eq_iff_eq_add, arctan_add] <;> norm_num
|
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Complex
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Arctan
open Real
open Set Filter
open scoped Topology Real
theorem theorem_27001 : 4 * arctan 5⁻¹ - arctan 239⁻¹ = π / 4 := by
calc 4 * arctan 5⁻¹ - arctan 239⁻¹ = arctan 1 := by
sub_eq_iff_eq_add, arctan_add] <;> norm_num
| null |
b82cbfb6583e6138c372379de9f55e3dad066648dee862107651ea9a3878eb52
| null | null | null | null | null | null | 6
| 65
|
unsolved goals
case calc.step
⊢ arctan 1 = π / 4
|
theorem theorem_27001 : 4 * arctan 5⁻¹ - arctan 239⁻¹ = π / 4 := by
|
⊢ 4 * arctan 5⁻¹ - arctan 239⁻¹ = π / 4
|
The proof fails because it attempts to use `sub_eq_iff_eq_add` and `arctan_add` directly without first breaking down the 4*arctan term using properties of arctangent.
|
First apply angle doubling formulas to break down the 4*arctan term before using arctan addition identities.
|
herald
|
lme
|
train
|
DomMulAct.stabilizer_card.lean
|
import Mathlib.Algebra.Group.Subgroup.Basic
import Mathlib.GroupTheory.GroupAction.DomAct.Basic
import Mathlib.GroupTheory.GroupAction.Basic
import Mathlib.Data.Fintype.Basic
import Mathlib.Data.Fintype.Perm
import Mathlib.SetTheory.Cardinal.Finite
import Mathlib.GroupTheory.Perm.DomMulAct
open DomMulAct
variable {α ι : Type*} {f : α → ι}
open Equiv MulAction
variable (f)
variable {f}
variable [Fintype α] [Fintype ι] [DecidableEq α] [DecidableEq ι]
open Nat
variable (f)
theorem theorem_20791 :
Fintype.card {g : Perm α // f ∘ g = f} = ∏ i, (Fintype.card {a // f a = i})! := by
-- rewriting via Nat.card because Fintype instance is not found
rw [← Nat.card_eq_fintype_card, Nat.card_congr (subtypeEquiv mk fun _ ↦ ?_),
Nat.card_congr MulOpposite.opEquiv,
Nat.card_congr (DomMulAct.stabilizerMulEquiv f).toEquiv, Nat.card_pi]
· exact Finset.prod_congr rfl fun i _ ↦ by rw [Nat.card_eq_fintype_card, Fintype.card_perm]
· rfl
|
import Mathlib.Algebra.Group.Subgroup.Basic
import Mathlib.GroupTheory.GroupAction.DomAct.Basic
import Mathlib.GroupTheory.GroupAction.Basic
import Mathlib.Data.Fintype.Basic
import Mathlib.Data.Fintype.Perm
import Mathlib.SetTheory.Cardinal.Finite
import Mathlib.GroupTheory.Perm.DomMulAct
open DomMulAct
variable {α ι : Type*} {f : α → ι}
open Equiv MulAction
variable (f)
variable {f}
variable [Fintype α] [Fintype ι] [DecidableEq α] [DecidableEq ι]
open Nat
variable (f)
theorem theorem_20791 :
Fintype.card {g : Perm α // f ∘ g = f} = ∏ i, (Fintype.card {a // f a = i})! := by
-- rewriting via Nat.card because Fintype instance is not found
rw [← Nat.card_eq_fintype_card, Nat.card_congr (subtypeEquiv mk fun _ ↦ ?_),
Nat.card_congr MulOpposite.opEquiv,
Nat.card_congr (Equiv.piCongrRight fun i => (Perm.subtypePerm (fun a => f a = i)).symm)
· exact Finset.prod_congr rfl fun i _ ↦ by rw [Nat.card_eq_fintype_card, Fintype.card_perm]
· rfl
| null |
f710ad0dbd89c6e318a259019a03a42a565c31191f32c381e9a0d4a7a9c09565
| null | null | null | null | null | null | 12
| 84
|
unsolved goals
α : Type u_1
ι : Type u_2
f : α → ι
inst✝³ : Fintype α
inst✝² : Fintype ι
inst✝¹ : DecidableEq α
inst✝ : DecidableEq ι
⊢ Nat.card { b // ?m.2003 b }ᵐᵒᵖ = ∏ i, (Fintype.card { a // f a = i })!
α : Type u_1
ι : Type u_2
f : α → ι
inst✝³ : Fintype α
inst✝² : Fintype ι
inst✝¹ : DecidableEq α
inst✝ : DecidableEq ι
⊢ (Perm α)ᵈᵐᵃ → Prop
α : Type u_1
ι : Type u_2
f : α → ι
inst✝³ : Fintype α
inst✝² : Fintype ι
inst✝¹ : DecidableEq α
inst✝ : DecidableEq ι
⊢ (Perm α)ᵈᵐᵃ → Prop
α : Type u_1
ι : Type u_2
f : α → ι
inst✝³ : Fintype α
inst✝² : Fintype ι
inst✝¹ : DecidableEq α
inst✝ : DecidableEq ι
x✝ : Perm α
⊢ f ∘ ⇑x✝ = f ↔ ?m.2003 (DomMulAct.mk x✝)
|
Fintype.card {g : Perm α // f ∘ g = f} = ∏ i, (Fintype.card {a // f a = i})! := by
|
α : Type u_1 ι : Type u_2 f : α → ι inst✝³ : Fintype α inst✝² : Fintype ι inst✝¹ : DecidableEq α inst✝ : DecidableEq ι ⊢ Fintype.card { g // f ∘ ⇑g = f } = ∏ i, (Fintype.card { a // f a = i })!
|
The proof fails because the rewritten goal leaves unresolved meta-variables (?m.2003) and doesn't properly connect to the required proposition about permutations preserving fibers of f. The equivalence used (Equiv.piCongrRight) doesn't match the needed stabilization property.
|
Replace the incorrect equivalence with the proper stabilizer equivalence (DomMulAct.stabilizerMulEquiv) that handles permutations preserving f's fibers.
|
herald
|
lme
|
train
|
Doset.mk_eq_of_doset_eq.lean
|
import Mathlib.Algebra.Group.Subgroup.Pointwise
import Mathlib.GroupTheory.Coset.Basic
import Mathlib.GroupTheory.DoubleCoset
open Doset
variable {G : Type*} [Group G] {α : Type*} [Mul α] (J : Subgroup G) (g : G)
open MulOpposite
open scoped Pointwise
theorem theorem_22642 {H K : Subgroup G} {a b : G} (h : doset a H K = doset b H K) :
mk H K a = mk H K b := by
rw [eq]
exact mem_doset.mp (h.symm ▸ mem_doset_self H K b)
|
import Mathlib.Algebra.Group.Subgroup.Pointwise
import Mathlib.GroupTheory.Coset.Basic
import Mathlib.GroupTheory.DoubleCoset
open Doset
variable {G : Type*} [Group G] {α : Type*} [Mul α] (J : Subgroup G) (g : G)
open MulOpposite
open scoped Pointwise
theorem theorem_22642 {H K : Subgroup G} {a b : G} (h : doset a H K = doset b H K) :
mk H K a = mk H K b := by
rw [eq]
exact h
| null |
28827ad2ba0a092cf7b738e3af3e6b271a82947d62bed15d8a8f38fa84b20071
| null | null | null | null | null | null | 10
| 2
|
type mismatch
h
has type
doset a ↑H ↑K = doset b ↑H ↑K : Prop
but is expected to have type
∃ h ∈ H, ∃ k ∈ K, b = h * a * k : Prop
|
exact h
|
G : Type u_1 inst✝ : Group G H K : Subgroup G a b : G h : doset a ↑H ↑K = doset b ↑H ↑K ⊢ ∃ h ∈ H, ∃ k ∈ K, b = h * a * k
|
The proof fails because `h` is an equality between double cosets, but `eq` expects an existential statement about group elements relating `a` and `b`.
|
Convert the double coset equality `h` into the required existential statement using `mem_doset.mp` and properties of double cosets.
|
herald
|
lme
|
train
|
UniformSpace.mem_comp_comp.lean
|
import Mathlib.Order.Filter.SmallSets
import Mathlib.Tactic.Monotonicity
import Mathlib.Topology.Compactness.Compact
import Mathlib.Topology.NhdsSet
import Mathlib.Algebra.Group.Defs
import Mathlib.Topology.UniformSpace.Basic
open UniformSpace
open Set Filter Topology
variable {α : Type ua} {β : Type ub} {γ : Type uc} {δ : Type ud} {ι : Sort*}
open Uniformity
variable [UniformSpace α]
open UniformSpace (ball)
theorem theorem_32181 {V W M : Set (β × β)} (hW' : SymmetricRel W) {p : β × β} :
p ∈ V ○ M ○ W ↔ (ball p.1 V ×ˢ ball p.2 W ∩ M).Nonempty := by
cases' p with x y
constructor
· rintro ⟨z, ⟨w, hpw, hwz⟩, hzy⟩
exact ⟨(w, z), ⟨hpw, by rwa [mem_ball_symmetry hW']⟩, hwz⟩
· rintro ⟨⟨w, z⟩, ⟨w_in, z_in⟩, hwz⟩
rw [mem_ball_symmetry hW'] at z_in
exact ⟨z, ⟨w, w_in, hwz⟩, z_in⟩
|
import Mathlib.Order.Filter.SmallSets
import Mathlib.Tactic.Monotonicity
import Mathlib.Topology.Compactness.Compact
import Mathlib.Topology.NhdsSet
import Mathlib.Algebra.Group.Defs
import Mathlib.Topology.UniformSpace.Basic
open UniformSpace
open Set Filter Topology
variable {α : Type ua} {β : Type ub} {γ : Type uc} {δ : Type ud} {ι : Sort*}
open Uniformity
variable [UniformSpace α]
open UniformSpace (ball)
theorem theorem_32181 {V W M : Set (β × β)} (hW' : SymmetricRel W) {p : β × β} :
p ∈ V ○ M ○ W ↔ (ball p.1 V ×ˢ ball p.2 W ∩ M).Nonempty := by
simp_rw [Set.mem_compRel]
constructor
· rintro ⟨z, ⟨w, hpw, hwz⟩, hzy⟩
exact ⟨(w, z), ⟨hpw, by rwa [mem_ball_symmetry hW']⟩, hwz⟩
· rintro ⟨⟨w, z⟩, ⟨w_in, z_in⟩, hwz⟩
rw [mem_ball_symmetry hW'] at z_in
exact ⟨z, ⟨w, w_in, hwz⟩, z_in⟩
| null |
c3c49c34040e758a5f2ff01037038c1517785471aaae937e14c92cee286ce380
| null | null | null | null | null | null | 11
| 11
|
unknown constant 'Set.mem_compRel'
|
simp_rw [Set.mem_compRel]
|
β : Type ub V W M : Set (β × β) hW' : SymmetricRel W p : β × β ⊢ p ∈ V ○ M ○ W ↔ (ball p.1 V ×ˢ ball p.2 W ∩ M).Nonempty
|
The proof fails because it references 'Set.mem_compRel' which is not a known theorem/definition in the current context, suggesting missing imports.
|
Add the required imports that contain the definition of 'Set.mem_compRel' to make the theorem available.
|
herald
|
lme
|
train
|
MvPolynomial.bind₂_monomial.lean
|
import Mathlib.Algebra.MvPolynomial.Rename
import Mathlib.Algebra.MvPolynomial.Variables
import Mathlib.Algebra.MvPolynomial.Monad
open MvPolynomial
open Finsupp
variable {σ : Type*} {τ : Type*}
variable {R S T : Type*} [CommSemiring R] [CommSemiring S] [CommSemiring T]
variable {R S T : Type*} [CommSemiring R] [CommSemiring S] [CommSemiring T]
variable (σ R)
variable (f : σ → MvPolynomial τ R)
theorem theorem_22926 (f : R →+* MvPolynomial σ S) (d : σ →₀ ℕ) (r : R) :
bind₂ f (monomial d r) = f r * monomial d 1 := by
simp only [monomial_eq, RingHom.map_mul, bind₂_C_right, Finsupp.prod, map_prod,
map_pow, bind₂_X_right, C_1, one_mul]
|
import Mathlib.Algebra.MvPolynomial.Rename
import Mathlib.Algebra.MvPolynomial.Variables
import Mathlib.Algebra.MvPolynomial.Monad
open MvPolynomial
open Finsupp
variable {σ : Type*} {τ : Type*}
variable {R S T : Type*} [CommSemiring R] [CommSemiring S] [CommSemiring T]
variable {R S T : Type*} [CommSemiring R] [CommSemiring S] [CommSemiring T]
variable (σ R)
variable (f : σ → MvPolynomial τ R)
theorem theorem_22926 (f : R →+* MvPolynomial σ S) (d : σ →₀ ℕ) (r : R) :
bind₂ f (monomial d r) = f r * monomial d 1 := by
rw [bind₂_monomial, map_pow, bind₂_X_right, C_1, one_mul]
map_pow, bind₂_X_right, C_1, one_mul]
| null |
44b8fc40572cc39b955fb70141c9be77068b71a1ecd56a27c5a9301f2162a19a
| null | null | null | null | null | null | 12
| 22
|
tactic 'rewrite' failed, did not find instance of the pattern in the target expression
?f (?a ^ ?n)
σ : Type u_1
R : Type u_6
S : Type u_7
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
f : R →+* MvPolynomial σ S
d : σ →₀ ℕ
r : R
⊢ f r * (monomial d) 1 = f r * (monomial d) 1
|
rw [bind₂_monomial, map_pow, bind₂_X_right, C_1, one_mul]
|
σ : Type u_1 R : Type u_6 S : Type u_7 inst✝¹ : CommSemiring R inst✝ : CommSemiring S f : R →+* MvPolynomial σ S d : σ →₀ ℕ r : R ⊢ f r * (monomial d) 1 = f r * (monomial d) 1
|
The proof fails because the rewrite tactic `map_pow` is looking for a power operation in the target expression, but the target is already in the desired form (an equality where both sides are identical). The proof is stuck in a loop trying to apply the same rewrite rules repeatedly.
|
Replace the rewrite sequence with a single simplification step using `simp` with the relevant lemmas.
|
herald
|
lme
|
train
|
Set.isWF_univ_iff.lean
|
import Mathlib.Data.Prod.Lex
import Mathlib.Data.Sigma.Lex
import Mathlib.Order.Antichain
import Mathlib.Order.OrderIsoNat
import Mathlib.Order.WellFounded
import Mathlib.Tactic.TFAE
import Mathlib.Order.WellFoundedSet
open Set
variable {ι α β γ : Type*} {π : ι → Type*}
variable {r r' : α → α → Prop}
variable {f : β → α} {s t : Set α} {x y : α}
open Relation
open List in
variable [IsStrictOrder α r] {s t : Set α}
variable [LT α] {s t : Set α}
theorem theorem_8079 : IsWF (univ : Set α) ↔ WellFounded ((· < ·) : α → α → Prop) := by
simp [IsWF, wellFoundedOn_iff]
|
import Mathlib.Data.Prod.Lex
import Mathlib.Data.Sigma.Lex
import Mathlib.Order.Antichain
import Mathlib.Order.OrderIsoNat
import Mathlib.Order.WellFounded
import Mathlib.Tactic.TFAE
import Mathlib.Order.WellFoundedSet
open Set
variable {ι α β γ : Type*} {π : ι → Type*}
variable {r r' : α → α → Prop}
variable {f : β → α} {s t : Set α} {x y : α}
open Relation
open List in
variable [IsStrictOrder α r] {s t : Set α}
variable [LT α] {s t : Set α}
theorem theorem_8079 : IsWF (univ : Set α) ↔ WellFounded ((· < ·) : α → α → Prop) := by
simp [IsWF, wellFounded_iff_has_min]
| null |
cfa820c3cac1630fce34f8f88d69e620b74d4fdae12c150c9d6c4a68d215821f
| null | null | null | null | null | null | 12
| 14
|
unknown identifier 'wellFounded_iff_has_min'
|
simp [IsWF, wellFounded_iff_has_min]
|
α : Type u_2 inst✝ : LT α ⊢ univ.IsWF ↔ WellFounded fun x1 x2 => x1 < x2
|
The proof fails because it references an unknown identifier 'wellFounded_iff_has_min', which is not imported or defined in the current context.
|
Use 'wellFoundedOn_iff' instead of 'wellFounded_iff_has_min' as it's the correct lemma available in the context.
|
herald
|
lme
|
train
|
Coheyting.boundary_le_boundary_sup_sup_boundary_inf_right.lean
|
import Mathlib.Order.BooleanAlgebra
import Mathlib.Tactic.Common
import Mathlib.Order.Heyting.Boundary
open Coheyting
variable {α : Type*}
variable [CoheytingAlgebra α] {a b : α}
open Heyting
theorem theorem_1767 : ∂ b ≤ ∂ (a ⊔ b) ⊔ ∂ (a ⊓ b) := by
rw [sup_comm a, inf_comm]
exact boundary_le_boundary_sup_sup_boundary_inf_left
|
import Mathlib.Order.BooleanAlgebra
import Mathlib.Tactic.Common
import Mathlib.Order.Heyting.Boundary
open Coheyting
variable {α : Type*}
variable [CoheytingAlgebra α] {a b : α}
open Heyting
theorem theorem_1767 : ∂ b ≤ ∂ (a ⊔ b) ⊔ ∂ (a ⊓ b) := by
exact boundary_le_boundary_sup_sup_boundary_inf_left
exact boundary_le_boundary_sup_sup_boundary_inf_left
| null |
86afda3bdaca4f7fe2a8997d9edc4894df51d54f71d989eba8237beb8fd3b9d4
| null | null | null | null | null | null | 8
| 8
|
typeclass instance problem is stuck, it is often due to metavariables
CoheytingAlgebra ?m.657
|
exact boundary_le_boundary_sup_sup_boundary_inf_left
|
α : Type u_1 inst✝ : CoheytingAlgebra α a b : α ⊢ ∂ b ≤ ∂ (a ⊔ b) ⊔ ∂ (a ⊓ b)
|
The proof fails because it calls the same lemma twice without modifying the goal, and Lean cannot infer the correct typeclass instance due to metavariables in the context.
|
Rewrite the goal using commutative properties of sup and inf operations before applying the lemma to match its expected form.
|
herald
|
lme
|
train
|
Subgroup.eq_top_of_card_eq.lean
|
import Mathlib.Algebra.Group.Subgroup.Basic
import Mathlib.Algebra.Group.Submonoid.Membership
import Mathlib.Data.Finite.Card
import Mathlib.Algebra.Group.Subgroup.Finite
open Subgroup
variable {G : Type*} [Group G]
variable {A : Type*} [AddGroup A]
variable {A : Type*} [AddGroup A]
variable (H K : Subgroup G)
theorem theorem_42795 [Finite H] (h : Nat.card H = Nat.card G) : H = ⊤ := by
have : Finite G := Nat.finite_of_card_ne_zero (h ▸ Nat.card_pos.ne')
exact eq_top_of_le_card _ (Nat.le_of_eq h.symm)
|
import Mathlib.Algebra.Group.Subgroup.Basic
import Mathlib.Algebra.Group.Submonoid.Membership
import Mathlib.Data.Finite.Card
import Mathlib.Algebra.Group.Subgroup.Finite
open Subgroup
variable {G : Type*} [Group G]
variable {A : Type*} [AddGroup A]
variable {A : Type*} [AddGroup A]
variable (H K : Subgroup G)
theorem theorem_42795 [Finite H] (h : Nat.card H = Nat.card G) : H = ⊤ := by
have : Finite G := by rwa [finite_iff_finite_of_card_eq h]
exact eq_top_of_le_card _ (Nat.le_of_eq h.symm)
| null |
45bca2b9c3c264914f4e01ae7185aa63357d8a0d882106050141c052235ef8d5
| null | null | null | null | null | null | 9
| 29
|
unknown identifier 'finite_iff_finite_of_card_eq'
|
have : Finite G := by rwa [finite_iff_finite_of_card_eq h]
|
G : Type u_1 inst✝¹ : Group G H : Subgroup G inst✝ : Finite ↥H h : Nat.card ↥H = Nat.card G ⊢ Finite G
|
The proof fails because it uses an undefined lemma 'finite_iff_finite_of_card_eq', which doesn't exist in the imported libraries.
|
Replace the undefined lemma with a valid proof that derives finiteness from the cardinality equality using Nat.finite_of_card_ne_zero.
|
herald
|
lme
|
train
|
EReal.coe_ennreal_pos.lean
|
import Mathlib.Data.Real.Basic
import Mathlib.Data.ENNReal.Real
import Mathlib.Data.Sign
import Mathlib.Data.Real.EReal
open EReal
open Function ENNReal NNReal Set SignType
theorem theorem_4497 {x : ℝ≥0∞} : (0 : EReal) < x ↔ 0 < x := by
rw [← coe_ennreal_zero, coe_ennreal_lt_coe_ennreal_iff]
|
import Mathlib.Data.Real.Basic
import Mathlib.Data.ENNReal.Real
import Mathlib.Data.Sign
import Mathlib.Data.Real.EReal
open EReal
open Function ENNReal NNReal Set SignType
theorem theorem_4497 {x : ℝ≥0∞} : (0 : EReal) < x ↔ 0 < x := by
exact ENNReal.toEReal_pos
| null |
6f78ca0624932bd581512c5c966ad4e151f21d27c9d7270fc4ed4e8dcac9c358
| null | null | null | null | null | null | 6
| 8
|
unknown constant 'ENNReal.toEReal_pos'
|
exact ENNReal.toEReal_pos
|
x : ℝ≥0∞ ⊢ 0 < ↑x ↔ 0 < x
|
The proof fails because it references an undefined lemma 'ENNReal.toEReal_pos' that doesn't exist in the current context.
|
Use existing lemmas about coercion and comparison between EReal and ENNReal to rewrite the goal.
|
herald
|
lme
|
train
|
Real.rpow_add_natCast'.lean
|
import Mathlib.Analysis.SpecialFunctions.Pow.Complex
import Qq
import Mathlib.Analysis.SpecialFunctions.Pow.Real
open Real
open scoped Classical
open Real ComplexConjugate
open Finset Set
variable {x y z : ℝ}
open Real
variable {w x y z : ℝ}
open Lean Meta Qq
variable {x y z : ℝ} {n : ℕ}
theorem theorem_37365 (hx : 0 ≤ x) (h : y + n ≠ 0) : x ^ (y + n) = x ^ y * x ^ n := by
rw [rpow_add' hx h, rpow_natCast]
|
import Mathlib.Analysis.SpecialFunctions.Pow.Complex
import Qq
import Mathlib.Analysis.SpecialFunctions.Pow.Real
open Real
open scoped Classical
open Real ComplexConjugate
open Finset Set
variable {x y z : ℝ}
open Real
variable {w x y z : ℝ}
open Lean Meta Qq
variable {x y z : ℝ} {n : ℕ}
theorem theorem_37365 (hx : 0 ≤ x) (h : y + n ≠ 0) : x ^ (y + n) = x ^ y * x ^ n := by
exact Real.rpow_add (hx.lt_of_ne (λ hx0 => h (by simp [hx0]))) y (n : ℝ)
| null |
361e415e72669a072867db3265b2a7ab568667c6b88e0667d1eecde296c3065a
| null | null | null | null | null | null | 13
| 48
|
unsolved goals
x y : ℝ
n : ℕ
hx : 0 ≤ x
h : y + ↑n ≠ 0
hx0 : 0 = x
⊢ y + ↑n = x
|
exact Real.rpow_add (hx.lt_of_ne (λ hx0 => h (by simp [hx0]))) y (n : ℝ)
|
x y : ℝ n : ℕ hx : 0 ≤ x h : y + ↑n ≠ 0 hx0 : 0 = x ⊢ y + ↑n = 0
|
The proof fails because the proof attempts to use `lt_of_ne` to show `x > 0` from `x ≤ 0` and `x ≠ 0`, but then introduces a new subgoal to show `y + n = 0` when `x = 0`, which contradicts the hypothesis `h : y + n ≠ 0`.
|
Use `rpow_add'` directly with the existing hypotheses `hx` and `h` instead of trying to prove `x > 0` first.
|
herald
|
lme
|
train
|
Polynomial.trailingDegree_one_le.lean
|
import Mathlib.Algebra.Polynomial.Degree.Definitions
import Mathlib.Data.ENat.Basic
import Mathlib.Data.ENat.Lattice
import Mathlib.Algebra.Polynomial.Degree.TrailingDegree
open Polynomial
open Function Polynomial Finsupp Finset
open scoped Polynomial
variable {R : Type u} {S : Type v} {a b : R} {n m : ℕ}
variable [Semiring R] {p q r : R[X]}
theorem theorem_13816 : (0 : ℕ∞) ≤ trailingDegree (1 : R[X]) := by
rw [← C_1]
exact le_trailingDegree_C
|
import Mathlib.Algebra.Polynomial.Degree.Definitions
import Mathlib.Data.ENat.Basic
import Mathlib.Data.ENat.Lattice
import Mathlib.Algebra.Polynomial.Degree.TrailingDegree
open Polynomial
open Function Polynomial Finsupp Finset
open scoped Polynomial
variable {R : Type u} {S : Type v} {a b : R} {n m : ℕ}
variable [Semiring R] {p q r : R[X]}
theorem theorem_13816 : (0 : ℕ∞) ≤ trailingDegree (1 : R[X]) := by
rw [← C_1]
exact le_trailingDegree_C 1
| null |
9827c4446a43396700b6f7461165e6566c7034ed5d36fe36788550c6e2b46eaa
| null | null | null | null | null | null | 10
| 8
|
typeclass instance problem is stuck, it is often due to metavariables
Semiring ?m.526
|
exact le_trailingDegree_C 1
|
R : Type u inst✝ : Semiring R ⊢ 0 ≤ (C 1).trailingDegree
|
The proof fails because Lean cannot infer the semiring instance for the type involved in the `le_trailingDegree_C` application, as indicated by the metavariable error.
|
Remove the explicit argument `1` from `le_trailingDegree_C` to let Lean infer the instance automatically.
|
herald
|
lme
|
train
|
ZMod.χ₈_nat_mod_eight.lean
|
import Mathlib.Data.Int.Range
import Mathlib.Data.ZMod.Basic
import Mathlib.NumberTheory.MulChar.Basic
import Mathlib.NumberTheory.LegendreSymbol.ZModChar
open ZMod
theorem theorem_31582 (n : ℕ) : χ₈ n = χ₈ (n % 8 : ℕ) := by
rw [← ZMod.natCast_mod n 8]
|
import Mathlib.Data.Int.Range
import Mathlib.Data.ZMod.Basic
import Mathlib.NumberTheory.MulChar.Basic
import Mathlib.NumberTheory.LegendreSymbol.ZModChar
open ZMod
theorem theorem_31582 (n : ℕ) : χ₈ n = χ₈ (n % 8 : ℕ) := by
exact map_mod χ₈ n
| null |
47b15196787b5f95c3203a9eb506ffe6b4b617877cd7db3afc02f7dc8db88904
| null | null | null | null | null | null | 5
| 8
|
unknown identifier 'map_mod'
|
exact map_mod χ₈ n
|
n : ℕ ⊢ χ₈ ↑n = χ₈ ↑(n % 8)
|
The proof fails because it attempts to use an undefined identifier 'map_mod' which doesn't exist in Lean's library or context.
|
Use the correct lemma 'ZMod.natCast_mod' which properly relates natural number casting and modulus in ZMod.
|
herald
|
lme
|
train
|
sphere_prod.lean
|
import Mathlib.Topology.Bornology.Constructions
import Mathlib.Topology.MetricSpace.Pseudo.Defs
import Mathlib.Topology.UniformSpace.UniformEmbedding
import Mathlib.Topology.MetricSpace.Pseudo.Constructions
open Bornology Filter Metric Set
open scoped NNReal Topology
variable {α β : Type*} [PseudoMetricSpace α]
variable [PseudoMetricSpace β]
variable [PseudoMetricSpace β]
theorem theorem_12904 (x : α × β) (r : ℝ) :
sphere x r = sphere x.1 r ×ˢ closedBall x.2 r ∪ closedBall x.1 r ×ˢ sphere x.2 r := by
obtain hr | rfl | hr := lt_trichotomy r 0
· simp [hr]
· cases x
simp_rw [← closedBall_eq_sphere_of_nonpos le_rfl, union_self, closedBall_prod_same]
· ext ⟨x', y'⟩
simp_rw [Set.mem_union, Set.mem_prod, Metric.mem_closedBall, Metric.mem_sphere, Prod.dist_eq,
max_eq_iff]
refine or_congr (and_congr_right ?_) (and_comm.trans (and_congr_left ?_))
all_goals rintro rfl; rfl
|
import Mathlib.Topology.Bornology.Constructions
import Mathlib.Topology.MetricSpace.Pseudo.Defs
import Mathlib.Topology.UniformSpace.UniformEmbedding
import Mathlib.Topology.MetricSpace.Pseudo.Constructions
open Bornology Filter Metric Set
open scoped NNReal Topology
variable {α β : Type*} [PseudoMetricSpace α]
variable [PseudoMetricSpace β]
variable [PseudoMetricSpace β]
theorem theorem_12904 (x : α × β) (r : ℝ) :
sphere x r = sphere x.1 r ×ˢ closedBall x.2 r ∪ closedBall x.1 r ×ˢ sphere x.2 r := by
obtain hr | rfl | hr := lt_trichotomy r 0
· simp [hr]
· cases x
simp_rw [← closedBall_eq_sphere_of_nonpos le_rfl, union_self, closedBall_prod_same]
· ext ⟨x', y'⟩
simp_rw [Set.mem_union, Set.mem_prod, Metric.mem_closedBall, Metric.mem_sphere, Prod.dist_eq,
max_eq_iff]
refine or_congr (and_congr_right ?_) (and_comm.trans (and_congr_left ?_))
fun h => by rw [h]; exact max_eq_left_iff.symm
| null |
963a3afaa0575f34ebe2d2ccd490f376e000cce563a4088ceecd6a17f4bc23a2
| null | null | null | null | null | null | 15
| 2
|
unsolved goals
case inr.inr.h.mk.refine_1
α : Type u_1
β : Type u_2
inst✝² : PseudoMetricSpace α
inst✝¹ inst✝ : PseudoMetricSpace β
x : α × β
r : ℝ
hr : 0 < r
x' : α
y' : β
⊢ dist x' x.1 = r → (dist y' x.2 ≤ dist x' x.1 ↔ dist y' x.2 ≤ r)
case inr.inr.h.mk.refine_2
α : Type u_1
β : Type u_2
inst✝² : PseudoMetricSpace α
inst✝¹ inst✝ : PseudoMetricSpace β
x : α × β
r : ℝ
hr : 0 < r
x' : α
y' : β
⊢ dist y' x.2 = r → (dist x' x.1 ≤ dist y' x.2 ↔ dist x' x.1 ≤ r)
|
· ext ⟨x', y'⟩
|
case inr.inr α : Type u_1 β : Type u_2 inst✝² : PseudoMetricSpace α inst✝¹ inst✝ : PseudoMetricSpace β x : α × β r : ℝ hr : 0 < r ⊢ sphere x r = sphere x.1 r ×ˢ closedBall x.2 r ∪ closedBall x.1 r ×ˢ sphere x.2 r
|
The proof fails because the two goals created by `refine or_congr` remain unsolved - the proof attempts to use a malformed lambda expression that doesn't properly handle the cases for the distance comparisons.
|
Replace the malformed lambda with proper case handling using `rintro rfl` to simplify the distance equalities.
|
herald
|
lme
|
train
|
StructureGroupoid.LocalInvariantProp.liftPropWithinAt_mono.lean
|
import Mathlib.Geometry.Manifold.ChartedSpace
import Mathlib.Geometry.Manifold.LocalInvariantProperties
open StructureGroupoid
open LocalInvariantProp
open Set Filter TopologicalSpace
open scoped Manifold Topology
variable {H M H' M' X : Type*}
variable [TopologicalSpace H] [TopologicalSpace M] [ChartedSpace H M]
variable [TopologicalSpace H'] [TopologicalSpace M'] [ChartedSpace H' M']
variable [TopologicalSpace X]
variable [TopologicalSpace H] [TopologicalSpace M] [ChartedSpace H M]
variable [TopologicalSpace H'] [TopologicalSpace M'] [ChartedSpace H' M']
variable [TopologicalSpace X]
variable [TopologicalSpace H'] [TopologicalSpace M'] [ChartedSpace H' M']
variable [TopologicalSpace X]
variable [TopologicalSpace X]
variable (G : StructureGroupoid H) (G' : StructureGroupoid H')
variable {G G'} {P : (H → H') → Set H → H → Prop} {s t u : Set H} {x : H}
variable (hG : G.LocalInvariantProp G' P)
include hG
variable (hG : G.LocalInvariantProp G' P)
include hG
open ChartedSpace
variable {G : StructureGroupoid H} {G' : StructureGroupoid H'} {e e' : PartialHomeomorph M H}
{f f' : PartialHomeomorph M' H'} {P : (H → H') → Set H → H → Prop} {g g' : M → M'} {s t : Set M}
{x : M} {Q : (H → H) → Set H → H → Prop}
variable (hG : G.LocalInvariantProp G' P)
include hG
theorem theorem_24333 (mono : ∀ ⦃s x t⦄ ⦃f : H → H'⦄, t ⊆ s → P f s x → P f t x)
(h : LiftPropWithinAt P g s x) (hts : t ⊆ s) : LiftPropWithinAt P g t x := by
refine ⟨h.1.mono hts, mono (fun y hy ↦ ?_) h.2⟩
simp only [mfld_simps] at hy
simp only [hy, hts _, mfld_simps]
|
import Mathlib.Geometry.Manifold.ChartedSpace
import Mathlib.Geometry.Manifold.LocalInvariantProperties
open StructureGroupoid
open LocalInvariantProp
open Set Filter TopologicalSpace
open scoped Manifold Topology
variable {H M H' M' X : Type*}
variable [TopologicalSpace H] [TopologicalSpace M] [ChartedSpace H M]
variable [TopologicalSpace H'] [TopologicalSpace M'] [ChartedSpace H' M']
variable [TopologicalSpace X]
variable [TopologicalSpace H] [TopologicalSpace M] [ChartedSpace H M]
variable [TopologicalSpace H'] [TopologicalSpace M'] [ChartedSpace H' M']
variable [TopologicalSpace X]
variable [TopologicalSpace H'] [TopologicalSpace M'] [ChartedSpace H' M']
variable [TopologicalSpace X]
variable [TopologicalSpace X]
variable (G : StructureGroupoid H) (G' : StructureGroupoid H')
variable {G G'} {P : (H → H') → Set H → H → Prop} {s t u : Set H} {x : H}
variable (hG : G.LocalInvariantProp G' P)
include hG
variable (hG : G.LocalInvariantProp G' P)
include hG
open ChartedSpace
variable {G : StructureGroupoid H} {G' : StructureGroupoid H'} {e e' : PartialHomeomorph M H}
{f f' : PartialHomeomorph M' H'} {P : (H → H') → Set H → H → Prop} {g g' : M → M'} {s t : Set M}
{x : M} {Q : (H → H) → Set H → H → Prop}
variable (hG : G.LocalInvariantProp G' P)
include hG
theorem theorem_24333 (mono : ∀ ⦃s x t⦄ ⦃f : H → H'⦄, t ⊆ s → P f s x → P f t x)
(h : LiftPropWithinAt P g s x) (hts : t ⊆ s) : LiftPropWithinAt P g t x := by
have hy := mono hts h.2.1
simp only [mfld_simps] at hy
simp only [hy, hts _, mfld_simps]
| null |
4ade587632f6f530f4e12f1d23df60b3a36e3f0c9ee75e6b856d1eb5cb478d17
| null | null | null | null | null | null | 31
| 18
|
Application type mismatch: In the application
mono hts
the argument
hts
has type
Subset.{u_2} t s : Prop
but is expected to have type
Subset.{u_1} ?m.6991 ?m.6989 : Prop
|
have hy := mono hts h.2.1
|
H : Type u_1 M : Type u_2 H' : Type u_3 M' : Type u_4 inst✝¹⁴ : TopologicalSpace H inst✝¹³ : TopologicalSpace M inst✝¹² : ChartedSpace H M inst✝¹¹ : TopologicalSpace H' inst✝¹⁰ : TopologicalSpace M' inst✝⁹ : ChartedSpace H' M' inst✝⁸ : TopologicalSpace H inst✝⁷ : TopologicalSpace M inst✝⁶ : ChartedSpace H M inst✝⁵ : TopologicalSpace H' inst✝⁴ : TopologicalSpace M' inst✝³ : ChartedSpace H' M' inst✝² : TopologicalSpace H' inst✝¹ : TopologicalSpace M' inst✝ : ChartedSpace H' M' G : StructureGroupoid H G' : StructureGroupoid H' P✝ : (H → H') → Set H → H → Prop hG : G.LocalInvariantProp G' P✝ P : (H → H') → Set H → H → Prop g : M → M' s t : Set M x : M mono : ∀ ⦃s : Set H⦄ ⦃x : H⦄ ⦃t : Set H⦄ ⦃f : H → H'⦄, t ⊆ s → P f s x → P f t x h : LiftPropWithinAt P g s x hts : t ⊆ s ⊢ LiftPropWithinAt P g t x
|
The proof fails because the argument `hts` given to `mono` is about subsets of `M` (`t ⊆ s`), but `mono` expects subsets of `H` (`t ⊆ s` for `H`). There's a type mismatch between sets of the manifold and sets of the model space.
|
Transform the subset condition to work with the model space `H` rather than the manifold `M` by using charting functions.
|
herald
|
lme
|
train
|
Matrix.det_of_card_zero.lean
|
import Mathlib.Algebra.Polynomial.Expand
import Mathlib.Algebra.Polynomial.Laurent
import Mathlib.LinearAlgebra.Matrix.Charpoly.Basic
import Mathlib.LinearAlgebra.Matrix.Reindex
import Mathlib.RingTheory.Polynomial.Nilpotent
import Mathlib.LinearAlgebra.Matrix.Charpoly.Coeff
open Matrix
open Finset Matrix Polynomial
variable {R : Type u} [CommRing R]
variable {n G : Type v} [DecidableEq n] [Fintype n]
variable {α β : Type v} [DecidableEq α]
variable {M : Matrix n n R}
variable {n G : Type v} [DecidableEq n] [Fintype n]
variable {α β : Type v} [DecidableEq α]
variable {M : Matrix n n R}
variable {α β : Type v} [DecidableEq α]
variable {M : Matrix n n R}
variable {M : Matrix n n R}
variable (M)
theorem theorem_31099 (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1 := by
rw [Fintype.card_eq_zero_iff] at h
suffices M = 1 by simp [this]
ext i
exact h.elim i
|
import Mathlib.Algebra.Polynomial.Expand
import Mathlib.Algebra.Polynomial.Laurent
import Mathlib.LinearAlgebra.Matrix.Charpoly.Basic
import Mathlib.LinearAlgebra.Matrix.Reindex
import Mathlib.RingTheory.Polynomial.Nilpotent
import Mathlib.LinearAlgebra.Matrix.Charpoly.Coeff
open Matrix
open Finset Matrix Polynomial
variable {R : Type u} [CommRing R]
variable {n G : Type v} [DecidableEq n] [Fintype n]
variable {α β : Type v} [DecidableEq α]
variable {M : Matrix n n R}
variable {n G : Type v} [DecidableEq n] [Fintype n]
variable {α β : Type v} [DecidableEq α]
variable {M : Matrix n n R}
variable {α β : Type v} [DecidableEq α]
variable {M : Matrix n n R}
variable {M : Matrix n n R}
variable (M)
theorem theorem_31099 (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1 := by
rw [Fintype.card_eq_zero_iff] at h
suffices M = 1 by simp [this]
ext i
exact (h.elim i).elim
| null |
b8576a6ff174b01bd61d8f81e2d85997ad47a52d8674facef89051ce900dab86
| null | null | null | null | null | null | 20
| 9
|
failed to elaborate eliminator, expected type is not available
|
exact (h.elim i).elim
|
case a R : Type u inst✝² : CommRing R n : Type v inst✝¹ : DecidableEq n inst✝ : Fintype n h : IsEmpty n M : Matrix n n R i j✝ : n ⊢ M i j✝ = 1 i j✝
|
The proof fails because `h.elim i` is being called with two arguments when it only expects one, leading to an elimination error. The `ext` tactic introduces both `i` and `j` as variables, but the elimination needs to handle them separately.
|
Remove the extraneous `.elim` call and directly use `h.elim` on just one variable.
|
herald
|
lme
|
train
|
HomologicalComplex.d_comp_XIsoOfEq_inv.lean
|
import Mathlib.Algebra.Homology.ComplexShape
import Mathlib.CategoryTheory.Subobject.Limits
import Mathlib.CategoryTheory.GradedObject
import Mathlib.Algebra.Homology.ShortComplex.Basic
import Mathlib.Algebra.Homology.HomologicalComplex
open HomologicalComplex
open CategoryTheory CategoryTheory.Category CategoryTheory.Limits
variable {ι : Type*}
variable (V : Type u) [Category.{v} V] [HasZeroMorphisms V]
variable (V : Type u) [Category.{v} V] [HasZeroMorphisms V]
variable {V} {c : ComplexShape ι}
theorem theorem_40862 (K : HomologicalComplex V c) {p₂ p₃ : ι} (h : p₃ = p₂) (p₁ : ι) :
K.d p₁ p₂ ≫ (K.XIsoOfEq h).inv = K.d p₁ p₃ := by
subst h; simp
|
import Mathlib.Algebra.Homology.ComplexShape
import Mathlib.CategoryTheory.Subobject.Limits
import Mathlib.CategoryTheory.GradedObject
import Mathlib.Algebra.Homology.ShortComplex.Basic
import Mathlib.Algebra.Homology.HomologicalComplex
open HomologicalComplex
open CategoryTheory CategoryTheory.Category CategoryTheory.Limits
variable {ι : Type*}
variable (V : Type u) [Category.{v} V] [HasZeroMorphisms V]
variable (V : Type u) [Category.{v} V] [HasZeroMorphisms V]
variable {V} {c : ComplexShape ι}
theorem theorem_40862 (K : HomologicalComplex V c) {p₂ p₃ : ι} (h : p₃ = p₂) (p₁ : ι) :
K.d p₁ p₂ ≫ (K.XIsoOfEq h).inv = K.d p₁ p₃ := by
exact K.d_comp_XIsoOfEq_hom p₁ h.symm
| null |
e8d11fa4dacd7096851694771854425ecaa777be994059719301623e22617d19
| null | null | null | null | null | null | 11
| 30
|
Application type mismatch: In the application
d_comp_XIsoOfEq_hom K p₁
the argument
p₁
has type
ι : Type u_1
but is expected to have type
?m.364 = ?m.365 : Prop
|
exact K.d_comp_XIsoOfEq_hom p₁ h.symm
|
ι : Type u_1 V : Type u inst✝¹ : Category.{v, u} V inst✝ : HasZeroMorphisms V c : ComplexShape ι K : HomologicalComplex V c p₂ p₃ : ι h : p₃ = p₂ p₁ : ι ⊢ K.d p₁ p₂ ≫ (K.XIsoOfEq h).inv = K.d p₁ p₃
|
The proof fails because it incorrectly uses `d_comp_XIsoOfEq_hom` with the wrong argument types. The lemma expects a proof of equality as its second argument, but `p₁` is provided instead, which is of type `ι`.
|
Use the `subst` tactic to eliminate the equality hypothesis `h` first, then simplify with `simp`.
|
herald
|
lme
|
train
|
MeasureTheory.measure_le_laverage_pos.lean
|
import Mathlib.MeasureTheory.Integral.SetIntegral
import Mathlib.MeasureTheory.Integral.Average
open MeasureTheory
open ENNReal MeasureTheory MeasureTheory.Measure Metric Set Filter TopologicalSpace Function
open scoped Topology ENNReal Convex
variable {α E F : Type*} {m0 : MeasurableSpace α} [NormedAddCommGroup E] [NormedSpace ℝ E]
[NormedAddCommGroup F] [NormedSpace ℝ F] [CompleteSpace F] {μ ν : Measure α}
{s t : Set α}
variable (μ) {f g : α → ℝ≥0∞}
variable {μ}
variable (μ)
variable {f g : α → E}
variable {f g : α → E}
variable {μ}
variable [CompleteSpace E]
variable {N : Set α} {f : α → ℝ}
variable [IsFiniteMeasure μ]
variable [IsProbabilityMeasure μ]
variable {N : Set α} {f : α → ℝ≥0∞}
variable [IsFiniteMeasure μ]
theorem theorem_7625 (hμ : μ ≠ 0) (hf : AEMeasurable f μ) :
0 < μ {x | f x ≤ ⨍⁻ a, f a ∂μ} := by
simpa using
measure_le_setLaverage_pos (measure_univ_ne_zero.2 hμ) (measure_ne_top _ _) hf.restrict
|
import Mathlib.MeasureTheory.Integral.SetIntegral
import Mathlib.MeasureTheory.Integral.Average
open MeasureTheory
open ENNReal MeasureTheory MeasureTheory.Measure Metric Set Filter TopologicalSpace Function
open scoped Topology ENNReal Convex
variable {α E F : Type*} {m0 : MeasurableSpace α} [NormedAddCommGroup E] [NormedSpace ℝ E]
[NormedAddCommGroup F] [NormedSpace ℝ F] [CompleteSpace F] {μ ν : Measure α}
{s t : Set α}
variable (μ) {f g : α → ℝ≥0∞}
variable {μ}
variable (μ)
variable {f g : α → E}
variable {f g : α → E}
variable {μ}
variable [CompleteSpace E]
variable {N : Set α} {f : α → ℝ}
variable [IsFiniteMeasure μ]
variable [IsProbabilityMeasure μ]
variable {N : Set α} {f : α → ℝ≥0∞}
variable [IsFiniteMeasure μ]
theorem theorem_7625 (hμ : μ ≠ 0) (hf : AEMeasurable f μ) :
0 < μ {x | f x ≤ ⨍⁻ a, f a ∂μ} := by
exact measure_le_setLaverage_pos (measure_univ_ne_zero.2 hμ) (measure_ne_top _ _) (hf.restrict univ)
measure_le_setLaverage_pos (measure_univ_ne_zero.2 hμ) (measure_ne_top _ _) hf.restrict
| null |
7bb18f0a44b3312c4bc170b412eb8687aee5c0a853f2c2bf829a1240181df164
| null | null | null | null | null | null | 23
| 85
|
Function expected at
AEMeasurable.restrict hf
but this term has type
AEMeasurable f (μ.restrict ?m.10815)
Note: Expected a function because this term is being applied to the argument
univ
|
exact measure_le_setLaverage_pos (measure_univ_ne_zero.2 hμ) (measure_ne_top _ _) (hf.restrict univ)
|
α : Type u_1 m0 : MeasurableSpace α μ : Measure α inst✝² : IsFiniteMeasure μ inst✝¹ : IsProbabilityMeasure μ f : α → ℝ≥0∞ inst✝ : IsFiniteMeasure μ hμ : μ ≠ 0 hf : AEMeasurable f μ ⊢ 0 < μ {x | f x ≤ ⨍⁻ (a : α), f a ∂μ}
|
The proof fails because hf.restrict is incorrectly applied to univ without proper scoping, leading to a type mismatch where a function was expected but got a restricted measurable instead.
|
Remove the redundant application of measure_le_setLaverage_pos and use simpa to properly apply the lemma with the restricted measure.
|
herald
|
lme
|
train
|
Int.modEq_neg.lean
|
import Mathlib.Data.Nat.ModEq
import Mathlib.Tactic.Abel
import Mathlib.Tactic.GCongr.Core
import Mathlib.Data.Int.ModEq
open Int
variable {m n a b c d : ℤ}
theorem theorem_36725 : a ≡ b [ZMOD -n] ↔ a ≡ b [ZMOD n] := by
simp [modEq_iff_dvd]
|
import Mathlib.Data.Nat.ModEq
import Mathlib.Tactic.Abel
import Mathlib.Tactic.GCongr.Core
import Mathlib.Data.Int.ModEq
open Int
variable {m n a b c d : ℤ}
theorem theorem_36725 : a ≡ b [ZMOD -n] ↔ a ≡ b [ZMOD n] := by
exact Int.modEq_neg_iff
| null |
08ece4e9d6fc8bd5d52ca18f93b90c8e75f0a61278436faefc06ea287adc4a7d
| null | null | null | null | null | null | 6
| 8
|
unknown constant 'Int.modEq_neg_iff'
|
exact Int.modEq_neg_iff
|
n a b : ℤ ⊢ a ≡ b [ZMOD -n] ↔ a ≡ b [ZMOD n]
|
The proof fails because it references an unknown constant 'Int.modEq_neg_iff' which doesn't exist in the imported modules.
|
Use the existing 'modEq_iff_dvd' lemma and simplify to prove the equivalence.
|
herald
|
lme
|
train
|
Rat.inv_divInt.lean
|
import Batteries.Data.Rat.Basic
import Batteries.Tactic.SeqFocus
import Batteries.Data.Rat.Lemmas
open Rat
theorem theorem_2786 (n d : Int) : (n /. d).inv = d /. n := by
if z : d = 0 then simp [z] else
cases e : n /. d; rcases divInt_num_den z e with ⟨g, zg, rfl, rfl⟩
simp [inv_def, divInt_mul_right zg]
|
import Batteries.Data.Rat.Basic
import Batteries.Tactic.SeqFocus
import Batteries.Data.Rat.Lemmas
open Rat
theorem theorem_2786 (n d : Int) : (n /. d).inv = d /. n := by
by_cases z : n /. d = 0; · simp [z]
cases e : n /. d; rcases divInt_num_den z e with ⟨g, zg, rfl, rfl⟩
simp [inv_def, divInt_mul_right zg]
| null |
75d9a1acf2fbbee698deff1d98958db2659aff553f4aeda4a7a0643514d95481
| null | null | null | null | null | null | 5
| 27
|
unsolved goals
case pos
n d : ℤ
z : n /. d = 0
⊢ 0 = d /. n
|
by_cases z : n /. d = 0; · simp [z]
|
case pos n d : ℤ z : n /. d = 0 ⊢ (n /. d).inv = d /. n case neg n d : ℤ z : ¬n /. d = 0 ⊢ (n /. d).inv = d /. n
|
The proof fails because the first case `z : n /. d = 0` doesn't properly handle the case when the denominator `d` is zero, which makes `d /. n` undefined.
|
Check if the denominator `d` is zero first before handling the case where the rational number is zero.
|
herald
|
lme
|
train
|
TendstoUniformly.im.lean
|
import Mathlib.Analysis.Complex.Basic
import Mathlib.Topology.FiberBundle.IsHomeomorphicTrivialBundle
import Mathlib.Analysis.Complex.ReImTopology
open TendstoUniformly
open Set
open Complex Metric
variable {s t : Set ℝ}
variable {α ι : Type*}
theorem theorem_7549 {f : ι → α → ℂ} {p : Filter ι} {g : α → ℂ}
(hf : TendstoUniformly f g p) :
TendstoUniformly (fun n x => (f n x).im) (fun y => (g y).im) p := by
apply UniformContinuous.comp_tendstoUniformly uniformlyContinous_im hf
|
import Mathlib.Analysis.Complex.Basic
import Mathlib.Topology.FiberBundle.IsHomeomorphicTrivialBundle
import Mathlib.Analysis.Complex.ReImTopology
open TendstoUniformly
open Set
open Complex Metric
variable {s t : Set ℝ}
variable {α ι : Type*}
theorem theorem_7549 {f : ι → α → ℂ} {p : Filter ι} {g : α → ℂ}
(hf : TendstoUniformly f g p) :
TendstoUniformly (fun n x => (f n x).im) (fun y => (g y).im) p := by
exact hf.comp Complex.im_clm Complex.im_clm.uniformContinuous
| null |
f944dff673b38fa3f6908df60058f7897f6e5057361fb4b3c4fa6b1721b88f04
| null | null | null | null | null | null | 11
| 16
|
unknown constant 'Complex.im_clm'
|
exact hf.comp Complex.im_clm Complex.im_clm.uniformContinuous
|
α : Type u_1 ι : Type u_2 f : ι → α → ℂ p : Filter ι g : α → ℂ hf : TendstoUniformly f g p ⊢ TendstoUniformly (fun n x => (f n x).im) (fun y => (g y).im) p
|
The proof fails because it references an undefined constant 'Complex.im_clm', which should be a continuous linear map for the complex imaginary part. The module imports don't expose this constant.
|
Use the uniformly continuous function uniformlyContinous_im instead of the missing linear map constant.
|
herald
|
lme
|
train
|
HurwitzZeta.tendsto_hurwitzZetaEven_sub_one_div_nhds_one.lean
|
import Mathlib.NumberTheory.LSeries.AbstractFuncEq
import Mathlib.NumberTheory.ModularForms.JacobiTheta.Bounds
import Mathlib.Analysis.SpecialFunctions.Gamma.Deligne
import Mathlib.NumberTheory.LSeries.MellinEqDirichlet
import Mathlib.NumberTheory.LSeries.Basic
import Mathlib.Analysis.Complex.RemovableSingularity
import Mathlib.NumberTheory.LSeries.HurwitzZetaEven
open HurwitzZeta
open Complex Filter Topology Asymptotics Real Set Classical MeasureTheory
theorem theorem_22969 (a : UnitAddCircle) :
Tendsto (fun s ↦ hurwitzZetaEven a s - 1 / (s - 1) / Gammaℝ s) (𝓝 1)
(𝓝 (hurwitzZetaEven a 1)) := by
simpa only [one_div, sub_self, div_zero, Gammaℝ_one, div_one, sub_zero] using
(differentiableAt_hurwitzZetaEven_sub_one_div a).continuousAt.tendsto
|
import Mathlib.NumberTheory.LSeries.AbstractFuncEq
import Mathlib.NumberTheory.ModularForms.JacobiTheta.Bounds
import Mathlib.Analysis.SpecialFunctions.Gamma.Deligne
import Mathlib.NumberTheory.LSeries.MellinEqDirichlet
import Mathlib.NumberTheory.LSeries.Basic
import Mathlib.Analysis.Complex.RemovableSingularity
import Mathlib.NumberTheory.LSeries.HurwitzZetaEven
open HurwitzZeta
open Complex Filter Topology Asymptotics Real Set Classical MeasureTheory
theorem theorem_22969 (a : UnitAddCircle) :
Tendsto (fun s ↦ hurwitzZetaEven a s - 1 / (s - 1) / Gammaℝ s) (𝓝 1)
(𝓝 (hurwitzZetaEven a 1)) := by
exact
(differentiableAt_hurwitzZetaEven_sub_one_div a).continuousAt.tendsto
| null |
0b9d133bee1f084d9423977a86c9fa2b06562f3395e3addc10abd290b77d05ce
| null | null | null | null | null | null | 8
| 2
|
type mismatch
ContinuousAt.tendsto (DifferentiableAt.continuousAt (differentiableAt_hurwitzZetaEven_sub_one_div a))
has type
Tendsto (fun s => hurwitzZetaEven a s - 1 / (s - 1) / s.Gammaℝ) (𝓝 1)
(𝓝 (hurwitzZetaEven a 1 - 1 / (1 - 1) / Gammaℝ 1)) : Prop
but is expected to have type
Tendsto (fun s => hurwitzZetaEven a s - 1 / (s - 1) / s.Gammaℝ) (𝓝 1) (𝓝 (hurwitzZetaEven a 1)) : Prop
|
exact
|
a : UnitAddCircle ⊢ Tendsto (fun s => hurwitzZetaEven a s - 1 / (s - 1) / s.Gammaℝ) (𝓝 1) (𝓝 (hurwitzZetaEven a 1))
|
The proof fails because the expected limit value is simply `hurwitzZetaEven a 1`, while the actual limit value from the continuity assumption includes additional terms `1 / (1 - 1) / Gammaℝ 1`.
|
Simplify the limit expression using algebraic manipulations to match the expected form by canceling out the additional terms.
|
herald
|
lme
|
train
|
Real.Angle.toIocMod_toReal.lean
|
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Basic
import Mathlib.Analysis.Normed.Group.AddCircle
import Mathlib.Algebra.CharZero.Quotient
import Mathlib.Topology.Instances.Sign
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Angle
open Real
open Angle
open Real
theorem theorem_19889 (θ : Angle) : toIocMod two_pi_pos (-π) θ.toReal = θ.toReal := by
induction θ using Real.Angle.induction_on
rw [toReal_coe]
exact toIocMod_toIocMod _ _ _ _
|
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Basic
import Mathlib.Analysis.Normed.Group.AddCircle
import Mathlib.Algebra.CharZero.Quotient
import Mathlib.Topology.Instances.Sign
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Angle
open Real
open Angle
open Real
theorem theorem_19889 (θ : Angle) : toIocMod two_pi_pos (-π) θ.toReal = θ.toReal := by
rw [toReal_coe]
rw [toReal_coe]
exact toIocMod_toIocMod _ _ _ _
| null |
f73ea6296c3ab392b817476b26c513b47693324cde896345f0e2fa73e05592f5
| null | null | null | null | null | null | 7
| 6
|
tactic 'rewrite' failed, did not find instance of the pattern in the target expression
(↑?θ).toReal
θ : Angle
⊢ toIocMod two_pi_pos (-π) θ.toReal = θ.toReal
|
rw [toReal_coe]
|
θ : Angle ⊢ toIocMod two_pi_pos (-π) θ.toReal = θ.toReal
|
The proof fails because it attempts to rewrite θ.toReal using toReal_coe twice, but θ is already an Angle type, not a coercion, so the rewrite pattern doesn't match.
|
Use angle induction via Real.Angle.induction_on before applying the rewrites.
|
herald
|
lme
|
train
|
CategoryTheory.rightDistributor_ext₂_left.lean
|
import Mathlib.CategoryTheory.Preadditive.AdditiveFunctor
import Mathlib.CategoryTheory.Monoidal.Functor
import Mathlib.CategoryTheory.Monoidal.Preadditive
open CategoryTheory
open scoped Classical
open CategoryTheory.Limits
open CategoryTheory.MonoidalCategory
variable (C : Type*) [Category C] [Preadditive C] [MonoidalCategory C]
variable {C}
variable [MonoidalPreadditive C]
variable [MonoidalPreadditive C]
variable [HasFiniteBiproducts C]
theorem theorem_41073 {J : Type} [Fintype J]
{f : J → C} {X Y Z : C} {g h : ((⨁ f) ⊗ X) ⊗ Y ⟶ Z}
(w : ∀ j, ((biproduct.ι f j ▷ X) ▷ Y) ≫ g = ((biproduct.ι f j ▷ X) ▷ Y) ≫ h) :
g = h := by
apply (cancel_epi (α_ _ _ _).inv).mp
ext
simp [w]
|
import Mathlib.CategoryTheory.Preadditive.AdditiveFunctor
import Mathlib.CategoryTheory.Monoidal.Functor
import Mathlib.CategoryTheory.Monoidal.Preadditive
open CategoryTheory
open scoped Classical
open CategoryTheory.Limits
open CategoryTheory.MonoidalCategory
variable (C : Type*) [Category C] [Preadditive C] [MonoidalCategory C]
variable {C}
variable [MonoidalPreadditive C]
variable [MonoidalPreadditive C]
variable [HasFiniteBiproducts C]
theorem theorem_41073 {J : Type} [Fintype J]
{f : J → C} {X Y Z : C} {g h : ((⨁ f) ⊗ X) ⊗ Y ⟶ Z}
(w : ∀ j, ((biproduct.ι f j ▷ X) ▷ Y) ≫ g = ((biproduct.ι f j ▷ X) ▷ Y) ≫ h) :
g = h := by
apply (cancel_epi (α_ _ _ _).inv).mp
ext
simp [← Category.assoc, MonoidalCategory.associator_inv_naturality, w]
| null |
9e40210ab568a32742eada5a2a147bafad670d998ba27555e02ac5994d8882bd
| null | null | null | null | null | null | 15
| 13
|
unsolved goals
case w
C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : Preadditive C
inst✝⁴ : MonoidalCategory C
inst✝³ inst✝² : MonoidalPreadditive C
inst✝¹ : HasFiniteBiproducts C
J : Type
inst✝ : Fintype J
f : J → C
X Y Z : C
g h : ((⨁ f) ⊗ X) ⊗ Y ⟶ Z
w : ∀ (j : J), biproduct.ι f j ▷ X ▷ Y ≫ g = biproduct.ι f j ▷ X ▷ Y ≫ h
j✝ : J
⊢ ((((α_ (f j✝) X Y).inv ≫ biproduct.ι f j✝ ▷ X ▷ Y) ≫ (α_ (⨁ f) X Y).hom) ≫ (α_ (⨁ f) X Y).inv) ≫ g =
((((α_ (f j✝) X Y).inv ≫ biproduct.ι f j✝ ▷ X ▷ Y) ≫ (α_ (⨁ f) X Y).hom) ≫ (α_ (⨁ f) X Y).inv) ≫ h
|
g = h := by
|
C : Type u_1 inst✝⁶ : Category.{u_2, u_1} C inst✝⁵ : Preadditive C inst✝⁴ : MonoidalCategory C inst✝³ inst✝² : MonoidalPreadditive C inst✝¹ : HasFiniteBiproducts C J : Type inst✝ : Fintype J f : J → C X Y Z : C g h : ((⨁ f) ⊗ X) ⊗ Y ⟶ Z w : ∀ (j : J), biproduct.ι f j ▷ X ▷ Y ≫ g = biproduct.ι f j ▷ X ▷ Y ≫ h ⊢ g = h
|
The proof fails because the `simp` tactic with additional lemmas is causing unnecessary complexity by introducing associators, when the goal can be solved more directly using just the hypothesis `w`.
|
Remove unnecessary lemmas from `simp` and use only the given hypothesis `w` to simplify the goal.
|
herald
|
lme
|
train
|
MeasureTheory.eLpNorm'_measure_zero_of_pos.lean
|
import Mathlib.Analysis.NormedSpace.IndicatorFunction
import Mathlib.MeasureTheory.Function.EssSup
import Mathlib.MeasureTheory.Function.AEEqFun
import Mathlib.MeasureTheory.Function.SpecialFunctions.Basic
import Mathlib.MeasureTheory.Function.LpSeminorm.Basic
open MeasureTheory
open TopologicalSpace MeasureTheory Filter
open scoped NNReal ENNReal Topology
variable {α E F G : Type*} {m m0 : MeasurableSpace α} {p : ℝ≥0∞} {q : ℝ} {μ ν : Measure α}
[NormedAddCommGroup E] [NormedAddCommGroup F] [NormedAddCommGroup G]
variable [MeasurableSpace α]
theorem theorem_11129 {f : α → F} (hq_pos : 0 < q) :
eLpNorm' f q (0 : Measure α) = 0 := by
simp [eLpNorm', hq_pos]
|
import Mathlib.Analysis.NormedSpace.IndicatorFunction
import Mathlib.MeasureTheory.Function.EssSup
import Mathlib.MeasureTheory.Function.AEEqFun
import Mathlib.MeasureTheory.Function.SpecialFunctions.Basic
import Mathlib.MeasureTheory.Function.LpSeminorm.Basic
open MeasureTheory
open TopologicalSpace MeasureTheory Filter
open scoped NNReal ENNReal Topology
variable {α E F G : Type*} {m m0 : MeasurableSpace α} {p : ℝ≥0∞} {q : ℝ} {μ ν : Measure α}
[NormedAddCommGroup E] [NormedAddCommGroup F] [NormedAddCommGroup G]
variable [MeasurableSpace α]
theorem theorem_11129 {f : α → F} (hq_pos : 0 < q) :
eLpNorm' f q (0 : Measure α) = 0 := by
simp [eLpNorm']
| null |
c650feb43f867f956eabe20d7838291194ea1298c3bf7412147d55f7a48cd18d
| null | null | null | null | null | null | 10
| 40
|
unsolved goals
α : Type u_1
F : Type u_3
q : ℝ
inst✝¹ : NormedAddCommGroup F
inst✝ : MeasurableSpace α
f : α → F
hq_pos : 0 < q
⊢ 0 < q
|
eLpNorm' f q (0 : Measure α) = 0 := by
|
α : Type u_1 F : Type u_3 q : ℝ inst✝¹ : NormedAddCommGroup F inst✝ : MeasurableSpace α f : α → F hq_pos : 0 < q ⊢ eLpNorm' f q 0 = 0
|
The proof fails because the simplifier cannot fully simplify the expression without knowing that the variable q is positive, despite hq_pos being in the context.
|
Add the hypothesis hq_pos to the list of simplification lemmas to discharge the remaining goal.
|
herald
|
lme
|
train
|
inf_sdiff_eq_bot_iff.lean
|
import Mathlib.Order.Heyting.Basic
import Mathlib.Order.BooleanAlgebra
open Function OrderDual
variable {α : Type u} {β : Type*} {w x y z : α}
variable [GeneralizedBooleanAlgebra α]
theorem theorem_4321 (hz : z ≤ y) (hx : x ≤ y) : z ⊓ y \ x = ⊥ ↔ z ≤ x := by
rw [← disjoint_iff]
exact disjoint_sdiff_iff_le hz hx
|
import Mathlib.Order.Heyting.Basic
import Mathlib.Order.BooleanAlgebra
open Function OrderDual
variable {α : Type u} {β : Type*} {w x y z : α}
variable [GeneralizedBooleanAlgebra α]
theorem theorem_4321 (hz : z ≤ y) (hx : x ≤ y) : z ⊓ y \ x = ⊥ ↔ z ≤ x := by
rw [disjoint_iff]
exact disjoint_sdiff_iff_le hz hx
| null |
452c80bff7f0fa2f126f3bd34acf3711da8a7e12d625fe2ff372510513d8abf0
| null | null | null | null | null | null | 8
| 6
|
tactic 'rewrite' failed, did not find instance of the pattern in the target expression
Disjoint ?m.707 ?m.708
α : Type u
x y z : α
inst✝ : GeneralizedBooleanAlgebra α
hz : z ≤ y
hx : x ≤ y
⊢ z ⊓ y \ x = ⊥ ↔ z ≤ x
|
rw [disjoint_iff]
|
α : Type u x y z : α inst✝ : GeneralizedBooleanAlgebra α hz : z ≤ y hx : x ≤ y ⊢ z ⊓ y \ x = ⊥ ↔ z ≤ x
|
The proof fails because 'disjoint_iff' requires the target to be in the form 'Disjoint a b', but the current goal is 'z ⊓ y \\\\ x = ⊥' which is not syntactically the same, though semantically equivalent.
|
Use the reverse rewrite direction '← disjoint_iff' to convert the goal into the required Disjoint form.
|
herald
|
lme
|
train
|
RingHom.codomain_trivial_iff_map_one_eq_zero.lean
|
import Mathlib.Algebra.Group.Pi.Basic
import Mathlib.Algebra.GroupWithZero.Hom
import Mathlib.Algebra.Ring.Defs
import Mathlib.Algebra.Ring.Basic
import Mathlib.Algebra.Ring.Hom.Defs
open RingHom
open Function
variable {F α β γ : Type*}
variable [NonUnitalNonAssocSemiring α] [NonUnitalNonAssocSemiring β] [FunLike F α β]
variable [NonUnitalRingHomClass F α β]
variable [NonUnitalRingHomClass F α β]
variable [NonUnitalNonAssocSemiring α] [NonUnitalNonAssocSemiring β]
variable [NonUnitalNonAssocSemiring α] [NonUnitalNonAssocSemiring β]
variable (f : α →ₙ+* β) {x y : α}
variable (f : α →ₙ+* β) {x y : α}
variable [NonUnitalNonAssocSemiring α] [NonUnitalNonAssocSemiring β]
variable [NonUnitalNonAssocSemiring γ]
variable (g : β →ₙ+* γ) (f : α →ₙ+* β)
variable [FunLike F α β]
variable {_ : NonAssocSemiring α} {_ : NonAssocSemiring β} [RingHomClass F α β]
variable {_ : NonAssocSemiring α} {_ : NonAssocSemiring β}
variable {_ : NonAssocSemiring α} {_ : NonAssocSemiring β} (f : α →+* β) {x y : α}
theorem theorem_27796 : (0 : β) = 1 ↔ f 1 = 0 := by
rw [map_one, eq_comm]
|
import Mathlib.Algebra.Group.Pi.Basic
import Mathlib.Algebra.GroupWithZero.Hom
import Mathlib.Algebra.Ring.Defs
import Mathlib.Algebra.Ring.Basic
import Mathlib.Algebra.Ring.Hom.Defs
open RingHom
open Function
variable {F α β γ : Type*}
variable [NonUnitalNonAssocSemiring α] [NonUnitalNonAssocSemiring β] [FunLike F α β]
variable [NonUnitalRingHomClass F α β]
variable [NonUnitalRingHomClass F α β]
variable [NonUnitalNonAssocSemiring α] [NonUnitalNonAssocSemiring β]
variable [NonUnitalNonAssocSemiring α] [NonUnitalNonAssocSemiring β]
variable (f : α →ₙ+* β) {x y : α}
variable (f : α →ₙ+* β) {x y : α}
variable [NonUnitalNonAssocSemiring α] [NonUnitalNonAssocSemiring β]
variable [NonUnitalNonAssocSemiring γ]
variable (g : β →ₙ+* γ) (f : α →ₙ+* β)
variable [FunLike F α β]
variable {_ : NonAssocSemiring α} {_ : NonAssocSemiring β} [RingHomClass F α β]
variable {_ : NonAssocSemiring α} {_ : NonAssocSemiring β}
variable {_ : NonAssocSemiring α} {_ : NonAssocSemiring β} (f : α →+* β) {x y : α}
theorem theorem_27796 : (0 : β) = 1 ↔ f 1 = 0 := by
simp [map_one f]
| null |
57203f6bfa4bfffe4dafa9090d55ef6f31fdc3686b438e251b89918439fd01c0
| null | null | null | null | null | null | 20
| 49
|
unsolved goals
α : Type u_2
β : Type u_3
inst✝⁷ : NonUnitalNonAssocSemiring α
inst✝⁶ : NonUnitalNonAssocSemiring β
inst✝⁵ : NonUnitalNonAssocSemiring α
inst✝⁴ : NonUnitalNonAssocSemiring β
inst✝³ : NonUnitalNonAssocSemiring α
inst✝² : NonUnitalNonAssocSemiring β
inst✝¹ : NonUnitalNonAssocSemiring α
inst✝ : NonUnitalNonAssocSemiring β
x✝¹ : NonAssocSemiring α
x✝ : NonAssocSemiring β
f : α →+* β
⊢ 0 = 1 ↔ 1 = 0
|
theorem theorem_27796 : (0 : β) = 1 ↔ f 1 = 0 := by
|
α : Type u_2 β : Type u_3 inst✝⁷ : NonUnitalNonAssocSemiring α inst✝⁶ : NonUnitalNonAssocSemiring β inst✝⁵ : NonUnitalNonAssocSemiring α inst✝⁴ : NonUnitalNonAssocSemiring β inst✝³ : NonUnitalNonAssocSemiring α inst✝² : NonUnitalNonAssocSemiring β inst✝¹ : NonUnitalNonAssocSemiring α inst✝ : NonUnitalNonAssocSemiring β x✝¹ : NonAssocSemiring α x✝ : NonAssocSemiring β f : α →+* β ⊢ 0 = 1 ↔ f 1 = 0
|
The proof fails because `simp [map_one f]` only simplifies `f 1` to `1` but doesn't address the required equivalence between `0 = 1` and `1 = 0`. The goal remains unsolved after simplification.
|
Use `rw [map_one, eq_comm]` to both apply the ring homomorphism property and swap the sides of the equality in the goal.
|
herald
|
lme
|
train
|
Affine.Simplex.sum_reflectionCircumcenterWeightsWithCircumcenter.lean
|
import Mathlib.Geometry.Euclidean.Sphere.Basic
import Mathlib.LinearAlgebra.AffineSpace.FiniteDimensional
import Mathlib.Tactic.DeriveFintype
import Mathlib.Geometry.Euclidean.Circumcenter
open Affine
open Simplex
open RealInnerProductSpace
variable {V : Type*} {P : Type*} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P]
[NormedAddTorsor V P]
open AffineSubspace
open Finset AffineSubspace EuclideanGeometry
variable {V : Type*} {P : Type*} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P]
[NormedAddTorsor V P]
open PointsWithCircumcenterIndex
theorem theorem_24435 {n : ℕ} {i₁ i₂ : Fin (n + 1)}
(h : i₁ ≠ i₂) : ∑ i, reflectionCircumcenterWeightsWithCircumcenter i₁ i₂ i = 1 := by
simp_rw [sum_pointsWithCircumcenter, reflectionCircumcenterWeightsWithCircumcenter, sum_ite,
sum_const, filter_or, filter_eq']
rw [card_union_of_disjoint]
· set_option simprocs false in simp
· simpa only [if_true, mem_univ, disjoint_singleton] using h
|
import Mathlib.Geometry.Euclidean.Sphere.Basic
import Mathlib.LinearAlgebra.AffineSpace.FiniteDimensional
import Mathlib.Tactic.DeriveFintype
import Mathlib.Geometry.Euclidean.Circumcenter
open Affine
open Simplex
open RealInnerProductSpace
variable {V : Type*} {P : Type*} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P]
[NormedAddTorsor V P]
open AffineSubspace
open Finset AffineSubspace EuclideanGeometry
variable {V : Type*} {P : Type*} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P]
[NormedAddTorsor V P]
open PointsWithCircumcenterIndex
theorem theorem_24435 {n : ℕ} {i₁ i₂ : Fin (n + 1)}
(h : i₁ ≠ i₂) : ∑ i, reflectionCircumcenterWeightsWithCircumcenter i₁ i₂ i = 1 := by
simp_rw [sum_pointsWithCircumcenter, reflectionCircumcenterWeightsWithCircumcenter, sum_ite,
sum_const, filter_or, filter_eq']
field_simp [Nat.cast_succ]
· set_option simprocs false in simp
· simpa only [if_true, mem_univ, disjoint_singleton] using h
| null |
761bc473f22f48e523d609a7106f97d4ee57b918682880963857dd7f29721aa9
| null | null | null | null | null | null | 18
| 33
|
simp made no progress
|
· set_option simprocs false in simp
|
n : ℕ i₁ i₂ : Fin (n + 1) h : i₁ ≠ i₂ ⊢ ↑(#({i₁} ∪ {i₂})) + -1 = 1
|
The proof fails because `field_simp` cannot simplify the goal `↑(#({i₁} ∪ {i₂})) + -1 = 1` with the given assumptions, while the correct proof uses `rw [card_union_of_disjoint]` to properly handle the cardinality of the union of two finite sets.
|
Replace `field_simp` with a rewrite using `card_union_of_disjoint` to properly handle set cardinality calculation.
|
herald
|
lme
|
train
|
AddChar.exists_divisor_of_not_isPrimitive.lean
|
import Mathlib.NumberTheory.Cyclotomic.PrimitiveRoots
import Mathlib.FieldTheory.Finite.Trace
import Mathlib.Algebra.Group.AddChar
import Mathlib.Data.ZMod.Units
import Mathlib.Analysis.Complex.Polynomial.Basic
import Mathlib.NumberTheory.LegendreSymbol.AddCharacter
open AddChar
variable {R : Type u} [CommRing R] {R' : Type v} [CommMonoid R']
variable {N : ℕ} [NeZero N] {R : Type*} [CommRing R] (e : AddChar (ZMod N) R)
theorem theorem_3937 (he : ¬e.IsPrimitive) :
∃ d : ℕ, d ∣ N ∧ d < N ∧ e.mulShift d = 1 := by
simp_rw [IsPrimitive, not_forall, not_ne_iff] at he
rcases he with ⟨b, hb_ne, hb⟩
-- We have `AddChar.mulShift e b = 1`, but `b ≠ 0`.
obtain ⟨d, hd, u, hu, rfl⟩ := b.eq_unit_mul_divisor
refine ⟨d, hd, lt_of_le_of_ne (Nat.le_of_dvd (NeZero.pos _) hd) ?_, ?_⟩
· exact fun h ↦ by simp only [h, ZMod.natCast_self, mul_zero, ne_eq, not_true_eq_false] at hb_ne
· rw [← mulShift_unit_eq_one_iff _ hu, ← hb, mul_comm]
ext1 y
rw [mulShift_apply, mulShift_apply, mulShift_apply, mul_assoc]
|
import Mathlib.NumberTheory.Cyclotomic.PrimitiveRoots
import Mathlib.FieldTheory.Finite.Trace
import Mathlib.Algebra.Group.AddChar
import Mathlib.Data.ZMod.Units
import Mathlib.Analysis.Complex.Polynomial.Basic
import Mathlib.NumberTheory.LegendreSymbol.AddCharacter
open AddChar
variable {R : Type u} [CommRing R] {R' : Type v} [CommMonoid R']
variable {N : ℕ} [NeZero N] {R : Type*} [CommRing R] (e : AddChar (ZMod N) R)
theorem theorem_3937 (he : ¬e.IsPrimitive) :
∃ d : ℕ, d ∣ N ∧ d < N ∧ e.mulShift d = 1 := by
simp_rw [IsPrimitive, not_forall, not_ne_iff] at he
rcases he with ⟨b, hb_ne, hb⟩
-- We have `AddChar.mulShift e b = 1`, but `b ≠ 0`.
use (b : ℕ), by contrapose! hb_ne; exact ZMod.natCast_zmod_eq_zero_iff_dvd.mpr hb_ne
refine ⟨d, hd, lt_of_le_of_ne (Nat.le_of_dvd (NeZero.pos _) hd) ?_, ?_⟩
· exact fun h ↦ by simp only [h, ZMod.natCast_self, mul_zero, ne_eq, not_true_eq_false] at hb_ne
· rw [← mulShift_unit_eq_one_iff _ hu, ← hb, mul_comm]
ext1 y
rw [mulShift_apply, mulShift_apply, mulShift_apply, mul_assoc]
| null |
eb204a8c8b497b362ac834b29f555b0494d8e0f05e9ee026ba2457ceec0ede6c
| null | null | null | null | null | null | 11
| 6
|
type mismatch
b
has type
ZMod N : Type
but is expected to have type
ℕ : Type
|
use (b : ℕ), by contrapose! hb_ne; exact ZMod.natCast_zmod_eq_zero_iff_dvd.mpr hb_ne
|
N : ℕ inst✝¹ : NeZero N R : Type u_1 inst✝ : CommRing R e : AddChar (ZMod N) R he : ¬e.IsPrimitive ⊢ ∃ d, d ∣ N ∧ d < N ∧ e.mulShift ↑d = 1
|
The proof fails because it tries to use `b` as a natural number (ℕ) when it's actually of type `ZMod N`.
|
Convert the `ZMod N` value `b` to a natural number using `b.eq_unit_mul_divisor` before using it in the proof.
|
herald
|
lme
|
train
|
CategoryTheory.IsInitial.isVanKampenColimit.lean
|
import Mathlib.CategoryTheory.Adjunction.FullyFaithful
import Mathlib.CategoryTheory.Adjunction.Limits
import Mathlib.CategoryTheory.Limits.Shapes.Pullback.CommSq
import Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
import Mathlib.CategoryTheory.Limits.FunctorCategory.Basic
import Mathlib.CategoryTheory.Limits.Constructions.FiniteProductsOfBinaryProducts
import Mathlib.CategoryTheory.Limits.VanKampen
open CategoryTheory
open IsInitial
open CategoryTheory.Limits
variable {J : Type v'} [Category.{u'} J] {C : Type u} [Category.{v} C]
variable {K : Type*} [Category K] {D : Type*} [Category D]
variable {K : Type*} [Category K] {D : Type*} [Category D]
theorem theorem_28460 [HasStrictInitialObjects C] {X : C} (h : IsInitial X) :
IsVanKampenColimit (asEmptyCocone X) := by
intro F' c' α f hf hα
have : F' = Functor.empty C := by apply Functor.hext <;> rintro ⟨⟨⟩⟩
subst this
haveI := h.isIso_to f
refine ⟨by rintro _ ⟨⟨⟩⟩,
fun _ => ⟨IsColimit.ofIsoColimit h (Cocones.ext (asIso f).symm <| by rintro ⟨⟨⟩⟩)⟩⟩
|
import Mathlib.CategoryTheory.Adjunction.FullyFaithful
import Mathlib.CategoryTheory.Adjunction.Limits
import Mathlib.CategoryTheory.Limits.Shapes.Pullback.CommSq
import Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
import Mathlib.CategoryTheory.Limits.FunctorCategory.Basic
import Mathlib.CategoryTheory.Limits.Constructions.FiniteProductsOfBinaryProducts
import Mathlib.CategoryTheory.Limits.VanKampen
open CategoryTheory
open IsInitial
open CategoryTheory.Limits
variable {J : Type v'} [Category.{u'} J] {C : Type u} [Category.{v} C]
variable {K : Type*} [Category K] {D : Type*} [Category D]
variable {K : Type*} [Category K] {D : Type*} [Category D]
theorem theorem_28460 [HasStrictInitialObjects C] {X : C} (h : IsInitial X) :
IsVanKampenColimit (asEmptyCocone X) := by
intro F' c' α f hf hα
have : F' = Functor.empty C := by apply Functor.hext <;> rintro ⟨⟨⟩⟩
subst this
have hα_id : α = NatTrans.id _ := by ext ⟨⟩
refine ⟨by rintro _ ⟨⟨⟩⟩,
fun _ => ⟨IsColimit.ofIsoColimit h (Cocones.ext (asIso f).symm <| by rintro ⟨⟨⟩⟩)⟩⟩
| null |
386a928631b536ff35a6cd910e1837ac0fbc718add8707cd165e4e84862892c6
| null | null | null | null | null | null | 14
| 36
|
unsolved goals
case w.h.mk
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasStrictInitialObjects C
X : C
h : IsInitial X
c' : Cocone (Functor.empty C)
α : Functor.empty C ⟶ Functor.empty C
f : c'.pt ⟶ (asEmptyCocone X).pt
hf : α ≫ (asEmptyCocone X).ι = c'.ι ≫ (Functor.const (Discrete PEmpty.{1})).map f
hα : NatTrans.Equifibered α
as✝ : PEmpty.{1}
⊢ α.app { as := as✝ } = (NatTrans.id (Functor.empty C)).app { as := as✝ }
|
have hα_id : α = NatTrans.id _ := by ext ⟨⟩
|
C : Type u inst✝¹ : Category.{v, u} C inst✝ : HasStrictInitialObjects C X : C h : IsInitial X c' : Cocone (Functor.empty C) α : Functor.empty C ⟶ Functor.empty C f : c'.pt ⟶ (asEmptyCocone X).pt hf : α ≫ (asEmptyCocone X).ι = c'.ι ≫ (Functor.const (Discrete PEmpty.{1})).map f hα : NatTrans.Equifibered α ⊢ α = NatTrans.id (Functor.empty C)
|
The proof fails because it attempts to prove `α = NatTrans.id _` by extensionality but doesn't properly handle the isomorphism property of `f`, which is required for the `asIso` construction later.
|
Add an instance showing that `f` is an isomorphism before the final refinement.
|
herald
|
lme
|
train
|
logDeriv_mul.lean
|
import Mathlib.Analysis.Calculus.Deriv.ZPow
import Mathlib.Analysis.Calculus.LogDeriv
open Filter Function
open scoped Topology BigOperators Classical
variable {𝕜 𝕜': Type*} [NontriviallyNormedField 𝕜] [NontriviallyNormedField 𝕜']
[NormedAlgebra 𝕜 𝕜']
theorem theorem_10435 {f g : 𝕜 → 𝕜'} (x : 𝕜) (hf : f x ≠ 0) (hg : g x ≠ 0)
(hdf : DifferentiableAt 𝕜 f x) (hdg : DifferentiableAt 𝕜 g x) :
logDeriv (fun z => f z * g z) x = logDeriv f x + logDeriv g x := by
simp only [logDeriv_apply, deriv_mul hdf hdg]
field_simp [mul_comm]
|
import Mathlib.Analysis.Calculus.Deriv.ZPow
import Mathlib.Analysis.Calculus.LogDeriv
open Filter Function
open scoped Topology BigOperators Classical
variable {𝕜 𝕜': Type*} [NontriviallyNormedField 𝕜] [NontriviallyNormedField 𝕜']
[NormedAlgebra 𝕜 𝕜']
theorem theorem_10435 {f g : 𝕜 → 𝕜'} (x : 𝕜) (hf : f x ≠ 0) (hg : g x ≠ 0)
(hdf : DifferentiableAt 𝕜 f x) (hdg : DifferentiableAt 𝕜 g x) :
logDeriv (fun z => f z * g z) x = logDeriv f x + logDeriv g x := by
simp only [logDeriv_apply, deriv_mul hdf hdg]
field_simp [hf, hg]
| null |
77c91c2d0137c941c89966c6d0c8fbe3f1ed0f1658cc26ebbd6693f67e05b8e6
| null | null | null | null | null | null | 10
| 71
|
unsolved goals
𝕜 : Type u_1
𝕜' : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NontriviallyNormedField 𝕜'
inst✝ : NormedAlgebra 𝕜 𝕜'
f g : 𝕜 → 𝕜'
x : 𝕜
hf : f x ≠ 0
hg : g x ≠ 0
hdf : DifferentiableAt 𝕜 f x
hdg : DifferentiableAt 𝕜 g x
⊢ f x * deriv g x = deriv g x * f x
|
logDeriv (fun z => f z * g z) x = logDeriv f x + logDeriv g x := by
|
𝕜 : Type u_1 𝕜' : Type u_2 inst✝² : NontriviallyNormedField 𝕜 inst✝¹ : NontriviallyNormedField 𝕜' inst✝ : NormedAlgebra 𝕜 𝕜' f g : 𝕜 → 𝕜' x : 𝕜 hf : f x ≠ 0 hg : g x ≠ 0 hdf : DifferentiableAt 𝕜 f x hdg : DifferentiableAt 𝕜 g x ⊢ logDeriv (fun z => f z * g z) x = logDeriv f x + logDeriv g x
|
The proof fails because the field_simp tactic cannot simplify the commutativity of multiplication in the expression f x * deriv g x = deriv g x * f x. The original proof assumes field_simp with [hf, hg] would handle this, but it doesn't address the commutativity requirement.
|
Use field_simp with mul_comm to handle the multiplication commutativity in the expression.
|
herald
|
lme
|
train
|
Matrix.det_transvection_of_ne.lean
|
import Mathlib.Data.Matrix.Basis
import Mathlib.Data.Matrix.DMatrix
import Mathlib.LinearAlgebra.Matrix.Determinant.Basic
import Mathlib.LinearAlgebra.Matrix.Reindex
import Mathlib.Tactic.FieldSimp
import Mathlib.LinearAlgebra.Matrix.Transvection
open Matrix
open Matrix
variable (n p : Type*) (R : Type u₂) {𝕜 : Type*} [Field 𝕜]
variable [DecidableEq n] [DecidableEq p]
variable [CommRing R]
variable [DecidableEq n] [DecidableEq p]
variable [CommRing R]
variable [CommRing R]
variable {R n} (i j : n)
variable [Fintype n]
theorem theorem_1671 (h : i ≠ j) (c : R) : det (transvection i j c) = 1 := by
rw [← updateRow_eq_transvection i j, det_updateRow_add_smul_self _ h, det_one]
|
import Mathlib.Data.Matrix.Basis
import Mathlib.Data.Matrix.DMatrix
import Mathlib.LinearAlgebra.Matrix.Determinant.Basic
import Mathlib.LinearAlgebra.Matrix.Reindex
import Mathlib.Tactic.FieldSimp
import Mathlib.LinearAlgebra.Matrix.Transvection
open Matrix
open Matrix
variable (n p : Type*) (R : Type u₂) {𝕜 : Type*} [Field 𝕜]
variable [DecidableEq n] [DecidableEq p]
variable [CommRing R]
variable [DecidableEq n] [DecidableEq p]
variable [CommRing R]
variable [CommRing R]
variable {R n} (i j : n)
variable [Fintype n]
theorem theorem_1671 (h : i ≠ j) (c : R) : det (transvection i j c) = 1 := by
exact det_transvection i j h c
| null |
4d0ccc4c901a483260079872f1011cf38107c313ab8ba37922e884bac9f5706f
| null | null | null | null | null | null | 14
| 8
|
unknown identifier 'det_transvection'
|
exact det_transvection i j h c
|
n : Type u_1 R : Type u₂ inst✝⁵ : DecidableEq n inst✝⁴ : CommRing R inst✝³ : DecidableEq n inst✝² inst✝¹ : CommRing R i j : n inst✝ : Fintype n h : i ≠ j c : R ⊢ (transvection i j c).det = 1
|
The proof fails because it tries to use a theorem 'det_transvection' that doesn't exist in the current context or imported libraries.
|
Use the correct theorem `det_updateRow_add_smul_self` combined with rewriting via `updateRow_eq_transvection` to prove the determinant of a transvection matrix is 1.
|
herald
|
lme
|
train
|
ProbabilityTheory.Kernel.lintegral_restrict.lean
|
import Mathlib.MeasureTheory.Integral.Bochner
import Mathlib.MeasureTheory.Measure.GiryMonad
import Mathlib.Probability.Kernel.Basic
open ProbabilityTheory
open Kernel
open MeasureTheory
open scoped MeasureTheory ENNReal NNReal
variable {α β ι : Type*} {mα : MeasurableSpace α} {mβ : MeasurableSpace β}
variable {κ : Kernel α β}
variable {s t : Set β}
theorem theorem_25986 (κ : Kernel α β) (hs : MeasurableSet s) (a : α) (f : β → ℝ≥0∞) :
∫⁻ b, f b ∂κ.restrict hs a = ∫⁻ b in s, f b ∂κ a := by
rw [restrict_apply]
|
import Mathlib.MeasureTheory.Integral.Bochner
import Mathlib.MeasureTheory.Measure.GiryMonad
import Mathlib.Probability.Kernel.Basic
open ProbabilityTheory
open Kernel
open MeasureTheory
open scoped MeasureTheory ENNReal NNReal
variable {α β ι : Type*} {mα : MeasurableSpace α} {mβ : MeasurableSpace β}
variable {κ : Kernel α β}
variable {s t : Set β}
theorem theorem_25986 (κ : Kernel α β) (hs : MeasurableSet s) (a : α) (f : β → ℝ≥0∞) :
∫⁻ b, f b ∂κ.restrict hs a = ∫⁻ b in s, f b ∂κ a := by
rw [Kernel.restrict_apply, lintegral_restrict hs]
| null |
caf610a2a80799e1402d3ab43a8a31640af83e2bd7e6fe5ccab25a708ffd2b5f
| null | null | null | null | null | null | 12
| 29
|
tactic 'rewrite' failed, did not find instance of the pattern in the target expression
∫⁻ (b : ?m.471), ?f b ∂(Kernel.restrict ?m.928 ?hs) ?a
α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
s : Set β
κ : Kernel α β
hs : MeasurableSet s
a : α
f : β → ℝ≥0∞
⊢ ∫⁻ (b : β) in s, f b ∂κ a = ∫⁻ (b : β) in s, f b ∂κ a
|
rw [Kernel.restrict_apply, lintegral_restrict hs]
|
α : Type u_1 β : Type u_2 mα : MeasurableSpace α mβ : MeasurableSpace β s : Set β κ : Kernel α β hs : MeasurableSet s a : α f : β → ℝ≥0∞ ⊢ ∫⁻ (b : β) in s, f b ∂κ a = ∫⁻ (b : β) in s, f b ∂κ a
|
The proof fails because the rewrite tactic cannot find the pattern from Kernel.restrict_apply in the target expression, which is already in the desired form after the first rewrite.
|
Remove the second rewrite step since the first rewrite already simplifies the goal to a trivial equality.
|
herald
|
lme
|
train
|
Matrix.submatrix_succAbove_det_eq_negOnePow_submatrix_succAbove_det'.lean
|
import Mathlib.LinearAlgebra.Matrix.Determinant.Basic
import Mathlib.Algebra.Ring.NegOnePow
import Mathlib.LinearAlgebra.Matrix.Determinant.Misc
open Matrix
variable {R : Type*} [CommRing R]
theorem theorem_14822 {n : ℕ}
(M : Matrix (Fin n) (Fin (n + 1)) R) (hv : ∀ i, ∑ j, M i j = 0) (j₁ j₂ : Fin (n + 1)) :
(M.submatrix id (Fin.succAbove j₁)).det =
Int.negOnePow (j₁ - j₂) • (M.submatrix id (Fin.succAbove j₂)).det := by
rw [← det_transpose, transpose_submatrix,
submatrix_succAbove_det_eq_negOnePow_submatrix_succAbove_det M.transpose ?_ j₁ j₂,
← det_transpose, transpose_submatrix, transpose_transpose]
ext
simp_rw [Finset.sum_apply, transpose_apply, hv, Pi.zero_apply]
|
import Mathlib.LinearAlgebra.Matrix.Determinant.Basic
import Mathlib.Algebra.Ring.NegOnePow
import Mathlib.LinearAlgebra.Matrix.Determinant.Misc
open Matrix
variable {R : Type*} [CommRing R]
theorem theorem_14822 {n : ℕ}
(M : Matrix (Fin n) (Fin (n + 1)) R) (hv : ∀ i, ∑ j, M i j = 0) (j₁ j₂ : Fin (n + 1)) :
(M.submatrix id (Fin.succAbove j₁)).det =
Int.negOnePow (j₁ - j₂) • (M.submatrix id (Fin.succAbove j₂)).det := by
rw [submatrix_succAbove_det_eq_negOnePow_submatrix_succAbove_det M.transpose ?_ j₁ j₂, ← det_transpose, transpose_submatrix, transpose_transpose]
submatrix_succAbove_det_eq_negOnePow_submatrix_succAbove_det M.transpose ?_ j₁ j₂,
← det_transpose, transpose_submatrix, transpose_transpose]
ext
simp_rw [Finset.sum_apply, transpose_apply, hv, Pi.zero_apply]
| null |
7a3668965b8fedeb638834482242801080f5748396e6234d6b6b03791fee782e
| null | null | null | null | null | null | 9
| 6
|
tactic 'rewrite' failed, did not find instance of the pattern in the target expression
(Mᵀ.submatrix j₁.succAbove id).det
R : Type u_1
inst✝ : CommRing R
n : ℕ
M : Matrix (Fin n) (Fin (n + 1)) R
hv : ∀ (i : Fin n), ∑ j, M i j = 0
j₁ j₂ : Fin (n + 1)
⊢ (M.submatrix id j₁.succAbove).det = (↑↑j₁ - ↑↑j₂).negOnePow • (M.submatrix id j₂.succAbove).det
|
rw [submatrix_succAbove_det_eq_negOnePow_submatrix_succAbove_det M.transpose ?_ j₁ j₂, ← det_transpose, transpose_submatrix, transpose_transpose]
|
R : Type u_1 inst✝ : CommRing R n : ℕ M : Matrix (Fin n) (Fin (n + 1)) R hv : ∀ (i : Fin n), ∑ j, M i j = 0 j₁ j₂ : Fin (n + 1) ⊢ (M.submatrix id j₁.succAbove).det = (↑↑j₁ - ↑↑j₂).negOnePow • (M.submatrix id j₂.succAbove).det
|
The proof fails because the rewrite tactic cannot find the pattern `(Mᵀ.submatrix j₁.succAbove id).det` in the goal, which is needed to apply `submatrix_succAbove_det_eq_negOnePow_submatrix_succAbove_det`. The pattern doesn't match because the goal has transpositions in a different order.
|
Reorganize the proof to first apply `det_transpose` and `transpose_submatrix` lemmas before applying the main determinant equality lemma to match the expected pattern.
|
herald
|
lme
|
train
|
LinearPMap.IsClosable.closure_mono.lean
|
import Mathlib.LinearAlgebra.LinearPMap
import Mathlib.Topology.Algebra.Module.Basic
import Mathlib.Topology.Algebra.Module.LinearPMap
open LinearPMap
open IsClosable
open Topology
variable {R E F : Type*}
variable [CommRing R] [AddCommGroup E] [AddCommGroup F]
variable [Module R E] [Module R F]
variable [TopologicalSpace E] [TopologicalSpace F]
variable [CommRing R] [AddCommGroup E] [AddCommGroup F]
variable [Module R E] [Module R F]
variable [TopologicalSpace E] [TopologicalSpace F]
variable [Module R E] [Module R F]
variable [TopologicalSpace E] [TopologicalSpace F]
variable [TopologicalSpace E] [TopologicalSpace F]
variable [ContinuousAdd E] [ContinuousAdd F]
variable [TopologicalSpace R] [ContinuousSMul R E] [ContinuousSMul R F]
variable [TopologicalSpace R] [ContinuousSMul R E] [ContinuousSMul R F]
open Classical in
theorem theorem_3157 {f g : E →ₗ.[R] F} (hg : g.IsClosable) (h : f ≤ g) :
f.closure ≤ g.closure := by
refine le_of_le_graph ?_
rw [← (hg.leIsClosable h).graph_closure_eq_closure_graph]
rw [← hg.graph_closure_eq_closure_graph]
exact Submodule.topologicalClosure_mono (le_graph_of_le h)
|
import Mathlib.LinearAlgebra.LinearPMap
import Mathlib.Topology.Algebra.Module.Basic
import Mathlib.Topology.Algebra.Module.LinearPMap
open LinearPMap
open IsClosable
open Topology
variable {R E F : Type*}
variable [CommRing R] [AddCommGroup E] [AddCommGroup F]
variable [Module R E] [Module R F]
variable [TopologicalSpace E] [TopologicalSpace F]
variable [CommRing R] [AddCommGroup E] [AddCommGroup F]
variable [Module R E] [Module R F]
variable [TopologicalSpace E] [TopologicalSpace F]
variable [Module R E] [Module R F]
variable [TopologicalSpace E] [TopologicalSpace F]
variable [TopologicalSpace E] [TopologicalSpace F]
variable [ContinuousAdd E] [ContinuousAdd F]
variable [TopologicalSpace R] [ContinuousSMul R E] [ContinuousSMul R F]
variable [TopologicalSpace R] [ContinuousSMul R E] [ContinuousSMul R F]
open Classical in
theorem theorem_3157 {f g : E →ₗ.[R] F} (hg : g.IsClosable) (h : f ≤ g) :
f.closure ≤ g.closure := by
refine le_of_le_graph ?_
rw [← (hg.leIsClosable h).graph_closure_eq_closure_graph]
rw [closure_graph]
exact Submodule.topologicalClosure_mono (le_graph_of_le h)
| null |
2262e0f492985823b8c8fc2fa9d8d6dbf8ffbd27ee0b8a4724934a7d170f2682
| null | null | null | null | null | null | 21
| 29
|
unsolved goals
R : Type u_1
E : Type u_2
F : Type u_3
inst✝²⁷ : CommRing R
inst✝²⁶ : AddCommGroup E
inst✝²⁵ : AddCommGroup F
inst✝²⁴ : Module R E
inst✝²³ : Module R F
inst✝²² : TopologicalSpace E
inst✝²¹ : TopologicalSpace F
inst✝²⁰ : CommRing R
inst✝¹⁹ : AddCommGroup E
inst✝¹⁸ : AddCommGroup F
inst✝¹⁷ : Module R E
inst✝¹⁶ : Module R F
inst✝¹⁵ : TopologicalSpace E
inst✝¹⁴ : TopologicalSpace F
inst✝¹³ : Module R E
inst✝¹² : Module R F
inst✝¹¹ : TopologicalSpace E
inst✝¹⁰ : TopologicalSpace F
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalSpace F
inst✝⁷ : ContinuousAdd E
inst✝⁶ : ContinuousAdd F
inst✝⁵ : TopologicalSpace R
inst✝⁴ : ContinuousSMul R E
inst✝³ : ContinuousSMul R F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f g : E →ₗ.[R] F
hg : g.IsClosable
h : f ≤ g
⊢ f.graph.topologicalClosure ≤ g.closure.graph
|
f.closure ≤ g.closure := by
|
R : Type u_1 E : Type u_2 F : Type u_3 inst✝²⁷ : CommRing R inst✝²⁶ : AddCommGroup E inst✝²⁵ : AddCommGroup F inst✝²⁴ : Module R E inst✝²³ : Module R F inst✝²² : TopologicalSpace E inst✝²¹ : TopologicalSpace F inst✝²⁰ : CommRing R inst✝¹⁹ : AddCommGroup E inst✝¹⁸ : AddCommGroup F inst✝¹⁷ : Module R E inst✝¹⁶ : Module R F inst✝¹⁵ : TopologicalSpace E inst✝¹⁴ : TopologicalSpace F inst✝¹³ : Module R E inst✝¹² : Module R F inst✝¹¹ : TopologicalSpace E inst✝¹⁰ : TopologicalSpace F inst✝⁹ : TopologicalSpace E inst✝⁸ : TopologicalSpace F inst✝⁷ : ContinuousAdd E inst✝⁶ : ContinuousAdd F inst✝⁵ : TopologicalSpace R inst✝⁴ : ContinuousSMul R E inst✝³ : ContinuousSMul R F inst✝² : TopologicalSpace R inst✝¹ : ContinuousSMul R E inst✝ : ContinuousSMul R F f g : E →ₗ.[R] F hg : g.IsClosable h : f ≤ g ⊢ f.closure ≤ g.closure
|
The proof fails because after rewriting with (hg.leIsClosable h).graph_closure_eq_closure_graph, the goal still contains g.closure.graph rather than g.graph.topologicalClosure which is needed to apply topologicalClosure_mono.
|
Use hg.graph_closure_eq_closure_graph to rewrite g.closure.graph to g.graph.topologicalClosure before applying topologicalClosure_mono.
|
herald
|
lme
|
train
|
InnerProductGeometry.angle_sub_le_pi_div_two_of_inner_eq_zero.lean
|
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Arctan
import Mathlib.Geometry.Euclidean.Angle.Unoriented.Affine
import Mathlib.Geometry.Euclidean.Angle.Unoriented.RightAngle
open InnerProductGeometry
open scoped EuclideanGeometry
open scoped Real
open scoped RealInnerProductSpace
variable {V : Type*} [NormedAddCommGroup V] [InnerProductSpace ℝ V]
theorem theorem_26790 {x y : V} (h : ⟪x, y⟫ = 0) :
angle x (x - y) ≤ π / 2 := by
rw [← neg_eq_zero, ← inner_neg_right] at h
rw [sub_eq_add_neg]
exact angle_add_le_pi_div_two_of_inner_eq_zero h
|
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Arctan
import Mathlib.Geometry.Euclidean.Angle.Unoriented.Affine
import Mathlib.Geometry.Euclidean.Angle.Unoriented.RightAngle
open InnerProductGeometry
open scoped EuclideanGeometry
open scoped Real
open scoped RealInnerProductSpace
variable {V : Type*} [NormedAddCommGroup V] [InnerProductSpace ℝ V]
theorem theorem_26790 {x y : V} (h : ⟪x, y⟫ = 0) :
angle x (x - y) ≤ π / 2 := by
rw [← neg_eq_zero, ← inner_neg_right] at h
rw [sub_eq_add_neg]
refine (angle_le_pi_div_two_iff_inner_nonneg _ _).mpr (by rw [inner_add_right, h, add_zero]; exact inner_self_nonneg _)
| null |
030c7c6be2c859da6a57388f7feb863a6660f298a5dd0bf37e9b8c4f09d66c45
| null | null | null | null | null | null | 12
| 10
|
unknown identifier 'angle_le_pi_div_two_iff_inner_nonneg'
|
refine (angle_le_pi_div_two_iff_inner_nonneg _ _).mpr (by rw [inner_add_right, h, add_zero]; exact inner_self_nonneg _)
|
V : Type u_1 inst✝¹ : NormedAddCommGroup V inst✝ : InnerProductSpace ℝ V x y : V h : ⟪x, -y⟫ = 0 ⊢ angle x (x + -y) ≤ π / 2
|
The proof fails because it uses an undefined lemma 'angle_le_pi_div_two_iff_inner_nonneg' that doesn't exist in the current context.
|
Replace the undefined lemma with a correct existing lemma 'angle_add_le_pi_div_two_of_inner_eq_zero' that directly proves the statement.
|
herald
|
lme
|
train
|
cexp_neg_quadratic_isLittleO_abs_rpow_cocompact.lean
|
import Mathlib.Analysis.SpecialFunctions.Gaussian.FourierTransform
import Mathlib.Analysis.Fourier.PoissonSummation
import Mathlib.Analysis.SpecialFunctions.Gaussian.PoissonSummation
open Real Set MeasureTheory Filter Asymptotics intervalIntegral
open scoped Real Topology FourierTransform RealInnerProductSpace
open Complex hiding exp continuous_exp abs_of_nonneg sq_abs
variable {E : Type*} [NormedAddCommGroup E]
theorem theorem_29252 {a : ℂ} (ha : a.re < 0) (b : ℂ) (s : ℝ) :
(fun x : ℝ ↦ cexp (a * x ^ 2 + b * x)) =o[cocompact ℝ] (|·| ^ s) := by
rw [cocompact_eq_atBot_atTop, isLittleO_sup]
constructor
· refine ((cexp_neg_quadratic_isLittleO_rpow_atTop ha (-b) s).comp_tendsto
Filter.tendsto_neg_atBot_atTop).congr' (Eventually.of_forall fun x ↦ ?_) ?_
· simp only [neg_mul, Function.comp_apply, ofReal_neg, neg_sq, mul_neg, neg_neg]
· refine (eventually_lt_atBot 0).mp (Eventually.of_forall fun x hx ↦ ?_)
simp only [Function.comp_apply, abs_of_neg hx]
· refine (cexp_neg_quadratic_isLittleO_rpow_atTop ha b s).congr' EventuallyEq.rfl ?_
refine (eventually_gt_atTop 0).mp (Eventually.of_forall fun x hx ↦ ?_)
simp_rw [abs_of_pos hx]
|
import Mathlib.Analysis.SpecialFunctions.Gaussian.FourierTransform
import Mathlib.Analysis.Fourier.PoissonSummation
import Mathlib.Analysis.SpecialFunctions.Gaussian.PoissonSummation
open Real Set MeasureTheory Filter Asymptotics intervalIntegral
open scoped Real Topology FourierTransform RealInnerProductSpace
open Complex hiding exp continuous_exp abs_of_nonneg sq_abs
variable {E : Type*} [NormedAddCommGroup E]
theorem theorem_29252 {a : ℂ} (ha : a.re < 0) (b : ℂ) (s : ℝ) :
(fun x : ℝ ↦ cexp (a * x ^ 2 + b * x)) =o[cocompact ℝ] (|·| ^ s) := by
rw [cocompact_eq_atBot_atTop, isLittleO_sup]
constructor
· refine ((cexp_neg_quadratic_isLittleO_rpow_atTop ha (-b) s).comp_tendsto
Filter.tendsto_neg_atBot_atTop).congr' (Eventually.of_forall fun x ↦ ?_) ?_
simp [sq_neg, neg_mul_neg]
· refine (eventually_lt_atBot 0).mp (Eventually.of_forall fun x hx ↦ ?_)
simp only [Function.comp_apply, abs_of_neg hx]
· refine (cexp_neg_quadratic_isLittleO_rpow_atTop ha b s).congr' EventuallyEq.rfl ?_
refine (eventually_gt_atTop 0).mp (Eventually.of_forall fun x hx ↦ ?_)
simp_rw [abs_of_pos hx]
| null |
77f9d951421aa47eea0dc2ddc7290d61d25dd6ce3567636c6ae5496eef517390
| null | null | null | null | null | null | 14
| 10
|
unknown identifier 'sq_neg'
|
simp [sq_neg, neg_mul_neg]
|
a : ℂ ha : a.re < 0 b : ℂ s : ℝ ⊢ (fun x => cexp (a * ↑x ^ 2 + b * ↑x)) =o[cocompact ℝ] fun x => |x| ^ s
|
The proof fails because it uses an undefined identifier 'sq_neg' which isn't available in the current context or imported modules.
|
Replace the undefined 'sq_neg' with the correct lemma 'neg_sq' which properly handles squaring negative numbers.
|
herald
|
lme
|
train
|
List.insertP_loop.lean
|
import Batteries.Control.ForInStep.Lemmas
import Batteries.Data.List.Basic
import Batteries.Tactic.Init
import Batteries.Tactic.Alias
import Batteries.Data.List.Lemmas
open List
open Nat
variable [BEq α]
variable [BEq α]
variable [LawfulBEq α]
theorem theorem_20772 (a : α) (l r : List α) :
insertP.loop p a l r = reverseAux r (insertP p a l) := by
induction l generalizing r with simp [insertP, insertP.loop, cond]
| cons b l ih => rw [ih (b :: r), ih [b]]; split <;> simp
|
import Batteries.Control.ForInStep.Lemmas
import Batteries.Data.List.Basic
import Batteries.Tactic.Init
import Batteries.Tactic.Alias
import Batteries.Data.List.Lemmas
open List
open Nat
variable [BEq α]
variable [BEq α]
variable [LawfulBEq α]
theorem theorem_20772 (a : α) (l r : List α) :
insertP.loop p a l r = reverseAux r (insertP p a l) := by
induction l generalizing r with simp [insertP, insertP.loop, cond]
| nil => rfl | cons h t ih => simp [ih]
| null |
30851a0a1685bdb97bc96501347f17bed8b94b50b1ebaad31c474bba8e4fb5d5
| null | null | null | null | null | null | 11
| 2
|
Alternative 'nil' is not needed
|
| nil => rfl | cons h t ih => simp [ih]
|
α : Type u_1 inst✝² inst✝¹ : BEq α inst✝ : LawfulBEq α p : α → Bool a : α l r : List α ⊢ insertP.loop p a l r = r.reverseAux (insertP p a l)
|
The proof fails because it includes an unnecessary `nil` case in the pattern match when using `induction`, which Lean detects as redundant. The theorem can be proved without explicitly handling the `nil` case.
|
Remove the `nil` case and focus the proof on the `cons` case with proper rewriting and simplification steps.
|
herald
|
lme
|
train
|
Real.logb_div_base.lean
|
import Mathlib.Analysis.SpecialFunctions.Pow.Real
import Mathlib.Data.Int.Log
import Mathlib.Analysis.SpecialFunctions.Log.Base
open Real
open Set Filter Function
open Topology
variable {b x y : ℝ}
theorem theorem_15287 {a b : ℝ} (h₁ : a ≠ 0) (h₂ : b ≠ 0) (c : ℝ) :
logb (a / b) c = ((logb a c)⁻¹ - (logb b c)⁻¹)⁻¹ := by
rw [← inv_logb_div_base h₁ h₂ c, inv_inv]
|
import Mathlib.Analysis.SpecialFunctions.Pow.Real
import Mathlib.Data.Int.Log
import Mathlib.Analysis.SpecialFunctions.Log.Base
open Real
open Set Filter Function
open Topology
variable {b x y : ℝ}
theorem theorem_15287 {a b : ℝ} (h₁ : a ≠ 0) (h₂ : b ≠ 0) (c : ℝ) :
logb (a / b) c = ((logb a c)⁻¹ - (logb b c)⁻¹)⁻¹ := by
rw [Real.logb, Real.logb, Real.logb, Real.log_div h₁ h₂, one_div_sub_one_div]
| null |
a9ec370ff1740feba8ff8c3b3858e5a861931bdbd8480b37e69772a1cf749a91
| null | null | null | null | null | null | 8
| 56
|
unsolved goals
a b : ℝ
h₁ : a ≠ 0
h₂ : b ≠ 0
c : ℝ
⊢ log c / (log a - log b) = ((log c / log a)⁻¹ - (log c / log b)⁻¹)⁻¹
|
logb (a / b) c = ((logb a c)⁻¹ - (logb b c)⁻¹)⁻¹ := by
|
a b : ℝ h₁ : a ≠ 0 h₂ : b ≠ 0 c : ℝ ⊢ logb (a / b) c = ((logb a c)⁻¹ - (logb b c)⁻¹)⁻¹
|
The proof fails because the rewrite rules used don't properly transform the left-hand side into the right-hand side - logb is expanded but the subsequent division of logs isn't properly simplified to match the goal's structure.
|
Use a lemma that directly relates division inside logb to subtraction of reciprocals instead of trying to expand logb.
|
herald
|
lme
|
train
|
Stream'.tails_eq.lean
|
import Mathlib.Data.Stream.Defs
import Mathlib.Logic.Function.Basic
import Mathlib.Data.List.Basic
import Mathlib.Data.Stream.Init
open Stream'
open Nat Function Option
variable {α : Type u} {β : Type v} {δ : Type w}
variable (f : α → β)
variable (f : α → β → δ)
variable (R : Stream' α → Stream' α → Prop)
theorem theorem_30351 (s : Stream' α) : tails s = tail s::tails (tail s) := by
unfold tails; rw [corec_eq]; rfl
|
import Mathlib.Data.Stream.Defs
import Mathlib.Logic.Function.Basic
import Mathlib.Data.List.Basic
import Mathlib.Data.Stream.Init
open Stream'
open Nat Function Option
variable {α : Type u} {β : Type v} {δ : Type w}
variable (f : α → β)
variable (f : α → β → δ)
variable (R : Stream' α → Stream' α → Prop)
theorem theorem_30351 (s : Stream' α) : tails s = tail s::tails (tail s) := by
ext n; simp [tails]
| null |
48e70b19ea95deb304b8e4cc387dddf95cd73e3217b9e327f16d33091a64913e
| null | null | null | null | null | null | 9
| 76
|
unsolved goals
case a.a
α : Type u
s : Stream' α
n n✝ : ℕ
⊢ ((corec id tail s.tail).get n).get n✝ = ((s.tail :: corec id tail s.tail.tail).get n).get n✝
|
theorem theorem_30351 (s : Stream' α) : tails s = tail s::tails (tail s) := by
|
α : Type u s : Stream' α ⊢ s.tails = s.tail :: s.tail.tails
|
The incorrect proof fails because the `simp [tails]` tactic alone is insufficient to unfold and simplify the `tails` function definition completely. The goal remains unsolved as it requires more precise rewriting of the underlying stream corecursor.
|
Explicitly unfold the `tails` definition and use `corec_eq` to properly rewrite the stream corecursor.
|
herald
|
lme
|
train
|
Equiv.Perm.two_le_card_support_cycleOf_iff.lean
|
import Mathlib.Algebra.Module.BigOperators
import Mathlib.Data.Finset.NoncommProd
import Mathlib.Data.Fintype.Perm
import Mathlib.Data.Int.ModEq
import Mathlib.GroupTheory.Perm.List
import Mathlib.GroupTheory.Perm.Sign
import Mathlib.Logic.Equiv.Fintype
import Mathlib.GroupTheory.Perm.Cycle.Basic
import Mathlib.GroupTheory.Perm.Cycle.Factors
open Equiv
open Perm
open Equiv Function Finset
variable {ι α β : Type*}
variable {f g : Perm α} {x y : α}
theorem theorem_33921 [DecidableEq α] [Fintype α] :
2 ≤ card (cycleOf f x).support ↔ f x ≠ x := by
refine ⟨fun h => ?_, fun h => by simpa using (isCycle_cycleOf _ h).two_le_card_support⟩
contrapose! h
rw [← cycleOf_eq_one_iff] at h
simp [h]
|
import Mathlib.Algebra.Module.BigOperators
import Mathlib.Data.Finset.NoncommProd
import Mathlib.Data.Fintype.Perm
import Mathlib.Data.Int.ModEq
import Mathlib.GroupTheory.Perm.List
import Mathlib.GroupTheory.Perm.Sign
import Mathlib.Logic.Equiv.Fintype
import Mathlib.GroupTheory.Perm.Cycle.Basic
import Mathlib.GroupTheory.Perm.Cycle.Factors
open Equiv
open Perm
open Equiv Function Finset
variable {ι α β : Type*}
variable {f g : Perm α} {x y : α}
theorem theorem_33921 [DecidableEq α] [Fintype α] :
2 ≤ card (cycleOf f x).support ↔ f x ≠ x := by
refine ⟨fun h => ?_, fun h => by simpa using (isCycle_cycleOf _ h).two_le_card_support⟩
by_contra h'
rw [← cycleOf_eq_one_iff] at h
simp [h]
| null |
69b93befd185541b14aba6156003ede85514e9799ac889f8b87d279c1050c31b
| null | null | null | null | null | null | 12
| 6
|
tactic 'rewrite' failed, did not find instance of the pattern in the target expression
?f ?m.3890 = ?m.3890
α : Type u_2
f : Perm α
x : α
inst✝¹ : DecidableEq α
inst✝ : Fintype α
h : 2 ≤ #(f.cycleOf x).support
h' : f x = x
⊢ False
|
rw [← cycleOf_eq_one_iff] at h
|
α : Type u_2 f : Perm α x : α inst✝¹ : DecidableEq α inst✝ : Fintype α h : 2 ≤ #(f.cycleOf x).support h' : f x = x ⊢ False
|
The proof fails because `cycleOf_eq_one_iff` requires `f.cycleOf x = 1` as the rewrite pattern, but `h'` provides `f x = x` instead. The contrapositive approach is incorrect here.
|
Use `contrapose! h` instead of `by_contra h'` to properly negate the inequality and match the required pattern for rewriting.
|
herald
|
lme
|
train
|
LightProfinite.Extend.functorOp_final.lean
|
import Mathlib.Topology.Category.LightProfinite.AsLimit
import Mathlib.Topology.Category.Profinite.Extend
import Mathlib.Topology.Category.LightProfinite.Extend
open LightProfinite
open Extend
open CategoryTheory Limits FintypeCat Functor
variable {F : ℕᵒᵖ ⥤ FintypeCat.{u}} (c : Cone <| F ⋙ toLightProfinite)
theorem theorem_34619 (hc : IsLimit c) [∀ i, Epi (c.π.app i)] : Final (functorOp c) := by
have := functor_initial c hc
have : ((StructuredArrow.toCostructuredArrow toLightProfinite c.pt)).IsEquivalence :=
(inferInstance : (structuredArrowOpEquivalence _ _).functor.IsEquivalence )
have : (functor c).rightOp.Final :=
inferInstanceAs ((opOpEquivalence ℕ).inverse ⋙ (functor c).op).Final
exact Functor.final_comp (functor c).rightOp _
|
import Mathlib.Topology.Category.LightProfinite.AsLimit
import Mathlib.Topology.Category.Profinite.Extend
import Mathlib.Topology.Category.LightProfinite.Extend
open LightProfinite
open Extend
open CategoryTheory Limits FintypeCat Functor
variable {F : ℕᵒᵖ ⥤ FintypeCat.{u}} (c : Cone <| F ⋙ toLightProfinite)
theorem theorem_34619 (hc : IsLimit c) [∀ i, Epi (c.π.app i)] : Final (functorOp c) := by
have := functor_initial c hc
have : ((StructuredArrow.toCostructuredArrow toLightProfinite c.pt)).IsEquivalence :=
(inferInstance : (structuredArrowOpEquivalence _ _).functor.IsEquivalence )
have : ((opOpEquivalence ℕ).inverse ⋙ (functor c).op).Final :=
inferInstanceAs ((opOpEquivalence ℕ).inverse ⋙ (functor c).op).Final
exact Functor.final_comp (functor c).rightOp _
| null |
b58d1bb810a79ed804b1eb8a4811adddf0e35356ba78462cbfdd6bda8369475b
| null | null | null | null | null | null | 13
| 8
|
failed to synthesize
(functor c).rightOp.Final
Hint: Additional diagnostic information may be available using the `set_option diagnostics true` command.
|
exact Functor.final_comp (functor c).rightOp _
|
F : ℕᵒᵖ ⥤ FintypeCat c : Cone (F ⋙ toLightProfinite) hc : IsLimit c inst✝ : ∀ (i : ℕᵒᵖ), Epi (c.π.app i) this✝¹ : (functor c).Initial this✝ : (StructuredArrow.toCostructuredArrow toLightProfinite c.pt).IsEquivalence this : ((opOpEquivalence ℕ).inverse ⋙ (functor c).op).Final ⊢ (functorOp c).Final
|
The proof fails because the instance `(functor c).rightOp.Final` cannot be directly inferred; the code attempts to use `inferInstanceAs` with a different type than what's needed.
|
Change the type annotation to match exactly what needs to be inferred for `(functor c).rightOp.Final`.
|
herald
|
lme
|
train
|
MeasureTheory.hitting_mono.lean
|
import Mathlib.Probability.Process.Stopping
import Mathlib.Tactic.AdaptationNote
import Mathlib.Probability.Process.HittingTime
open MeasureTheory
open Filter Order TopologicalSpace
open scoped Classical MeasureTheory NNReal ENNReal Topology
variable {Ω β ι : Type*} {m : MeasurableSpace Ω}
variable [ConditionallyCompleteLinearOrder ι] {u : ι → Ω → β} {s : Set β} {n i : ι} {ω : Ω}
theorem theorem_7271 {m₁ m₂ : ι} (hm : m₁ ≤ m₂) : hitting u s n m₁ ω ≤ hitting u s n m₂ ω := by
by_cases h : ∃ j ∈ Set.Icc n m₁, u j ω ∈ s
· exact (hitting_eq_hitting_of_exists hm h).le
· simp_rw [hitting, if_neg h]
split_ifs with h'
· obtain ⟨j, hj₁, hj₂⟩ := h'
refine le_csInf ⟨j, hj₁, hj₂⟩ ?_
by_contra hneg; push_neg at hneg
obtain ⟨i, hi₁, hi₂⟩ := hneg
exact h ⟨i, ⟨hi₁.1.1, hi₂.le⟩, hi₁.2⟩
· exact hm
|
import Mathlib.Probability.Process.Stopping
import Mathlib.Tactic.AdaptationNote
import Mathlib.Probability.Process.HittingTime
open MeasureTheory
open Filter Order TopologicalSpace
open scoped Classical MeasureTheory NNReal ENNReal Topology
variable {Ω β ι : Type*} {m : MeasurableSpace Ω}
variable [ConditionallyCompleteLinearOrder ι] {u : ι → Ω → β} {s : Set β} {n i : ι} {ω : Ω}
theorem theorem_7271 {m₁ m₂ : ι} (hm : m₁ ≤ m₂) : hitting u s n m₁ ω ≤ hitting u s n m₂ ω := by
by_cases h : ∃ j ∈ Set.Icc n m₁, u j ω ∈ s
· exact le_csInf (by simp [h]) (by intro b hb; exact csInf_le hb)
· simp_rw [hitting, if_neg h]
split_ifs with h'
· obtain ⟨j, hj₁, hj₂⟩ := h'
refine le_csInf ⟨j, hj₁, hj₂⟩ ?_
by_contra hneg; push_neg at hneg
obtain ⟨i, hi₁, hi₂⟩ := hneg
exact h ⟨i, ⟨hi₁.1.1, hi₂.le⟩, hi₁.2⟩
· exact hm
| null |
b2d1f3e6b9b2a0f354f312edfbf5565041b239417726cb5b7988d960274296c3
| null | null | null | null | null | null | 10
| 23
|
simp made no progress
|
· exact le_csInf (by simp [h]) (by intro b hb; exact csInf_le hb)
|
Ω : Type u_1 β : Type u_2 ι : Type u_3 inst✝ : ConditionallyCompleteLinearOrder ι u : ι → Ω → β s : Set β n : ι ω : Ω m₁ m₂ : ι hm : m₁ ≤ m₂ h : ∃ j ∈ Set.Icc n m₁, u j ω ∈ s ⊢ Set.Nonempty ?m.1364
|
The proof fails because during the first case where h is true, the proof attempts to use simp for a non-trivial statement about nonempty sets, which simp cannot solve automatically.
|
Replace the manual proof attempt with the specialized lemma hitting_eq_hitting_of_exists which directly handles this case.
|
herald
|
lme
|
train
|
String.prev_lt_of_pos.lean
|
import Init.Data.List.Basic
import Init.Data.Char.Basic
import Init.Data.Option.Basic
import Init.Data.String.Basic
open String
theorem theorem_38179 (s : String) (i : Pos) (h : i ≠ 0) : (s.prev i).1 < i.1 := by
simp [prev, h]
exact utf8PrevAux_lt_of_pos _ _ _ h
|
import Init.Data.List.Basic
import Init.Data.Char.Basic
import Init.Data.Option.Basic
import Init.Data.String.Basic
open String
theorem theorem_38179 (s : String) (i : Pos) (h : i ≠ 0) : (s.prev i).1 < i.1 := by
dsimp [String.prev]
exact utf8PrevAux_lt_of_pos _ _ _ h
| null |
2fe643ef23a94dc74f62ce1bb8af72553582016e9ef8a904abf7429ed14b42d7
| null | null | null | null | null | null | 6
| 2
|
type mismatch
utf8PrevAux_lt_of_pos ?m.84 ?m.85 i h
has type
(utf8PrevAux ?m.84 ?m.85 i).byteIdx < i.byteIdx : Prop
but is expected to have type
(if i = 0 then 0 else utf8PrevAux s.data 0 i).byteIdx < i.byteIdx : Prop
|
exact utf8PrevAux_lt_of_pos _ _ _ h
|
s : String i : Pos h : i ≠ 0 ⊢ (if i = 0 then 0 else utf8PrevAux s.data 0 i).byteIdx < i.byteIdx
|
The proof fails because the `dsimp` tactic only partially simplifies the expression, leaving the `if` condition unresolved, while `utf8PrevAux_lt_of_pos` expects the fully simplified form without the conditional.
|
Use `simp` with the `prev` lemma and the hypothesis `h` to fully simplify the expression before applying `utf8PrevAux_lt_of_pos`.
|
herald
|
lme
|
train
|
Tuple.sort_eq_refl_iff_monotone.lean
|
import Mathlib.Data.Finset.Sort
import Mathlib.Data.List.FinRange
import Mathlib.Data.Prod.Lex
import Mathlib.GroupTheory.Perm.Basic
import Mathlib.Order.Interval.Finset.Fin
import Mathlib.Data.Fin.Tuple.Sort
open Tuple
variable {n : ℕ}
variable {α : Type*} [LinearOrder α]
variable {α : Type*} [LinearOrder α]
open List
variable {n : ℕ} {α : Type*}
variable [LinearOrder α] {f : Fin n → α} {σ : Equiv.Perm (Fin n)}
theorem theorem_30399 : sort f = Equiv.refl _ ↔ Monotone f := by
rw [eq_comm, eq_sort_iff, Equiv.coe_refl, Function.comp_id]
simp only [id, and_iff_left_iff_imp]
exact fun _ _ _ hij _ => hij
|
import Mathlib.Data.Finset.Sort
import Mathlib.Data.List.FinRange
import Mathlib.Data.Prod.Lex
import Mathlib.GroupTheory.Perm.Basic
import Mathlib.Order.Interval.Finset.Fin
import Mathlib.Data.Fin.Tuple.Sort
open Tuple
variable {n : ℕ}
variable {α : Type*} [LinearOrder α]
variable {α : Type*} [LinearOrder α]
open List
variable {n : ℕ} {α : Type*}
variable [LinearOrder α] {f : Fin n → α} {σ : Equiv.Perm (Fin n)}
theorem theorem_30399 : sort f = Equiv.refl _ ↔ Monotone f := by
constructor
simp only [id, and_iff_left_iff_imp]
exact fun _ _ _ hij _ => hij
| null |
fac5869507d15fb1bfec49d20299cd117275b52a1af39893a9d862784d1dc0f6
| null | null | null | null | null | null | 12
| 2
|
simp made no progress
|
simp only [id, and_iff_left_iff_imp]
|
case mp n : ℕ α : Type u_3 inst✝ : LinearOrder α f : Fin n → α ⊢ sort f = Equiv.refl (Fin n) → Monotone f case mpr n : ℕ α : Type u_3 inst✝ : LinearOrder α f : Fin n → α ⊢ Monotone f → sort f = Equiv.refl (Fin n)
|
The proof fails because the initial approach using `simp only` doesn't make progress on simplifying the goal, as indicated by Lean's error message.
|
Use more specific rewriting steps like `eq_comm` and `eq_sort_iff` before applying the simplifier, as shown in the corrected proof.
|
herald
|
lme
|
train
|
Filter.IsBoundedUnder.bddAbove_range_of_cofinite.lean
|
import Mathlib.Order.Filter.Cofinite
import Mathlib.Order.Hom.CompleteLattice
import Mathlib.Order.LiminfLimsup
open Filter
open IsBoundedUnder
open Filter Set Function
variable {α β γ ι ι' : Type*}
variable {r : α → α → Prop} {f g : Filter α}
variable [Preorder α] {f : Filter β} {u : β → α} {s : Set β}
theorem theorem_20359 [Preorder β] [IsDirected β (· ≤ ·)] {f : α → β}
(hf : IsBoundedUnder (· ≤ ·) cofinite f) : BddAbove (range f) := by
rcases hf with ⟨b, hb⟩
haveI : Nonempty β := ⟨b⟩
rw [← image_univ, ← union_compl_self { x | f x ≤ b }, image_union, bddAbove_union]
exact ⟨⟨b, forall_mem_image.2 fun x => id⟩, (hb.image f).bddAbove⟩
|
import Mathlib.Order.Filter.Cofinite
import Mathlib.Order.Hom.CompleteLattice
import Mathlib.Order.LiminfLimsup
open Filter
open IsBoundedUnder
open Filter Set Function
variable {α β γ ι ι' : Type*}
variable {r : α → α → Prop} {f g : Filter α}
variable [Preorder α] {f : Filter β} {u : β → α} {s : Set β}
theorem theorem_20359 [Preorder β] [IsDirected β (· ≤ ·)] {f : α → β}
(hf : IsBoundedUnder (· ≤ ·) cofinite f) : BddAbove (range f) := by
rcases hf with ⟨b, hb⟩
haveI : Nonempty β := ⟨b⟩
have h_fin : Set.Finite {x | ¬ f x ≤ b} := (Filter.eventually_cofinite.1 hb)
exact ⟨⟨b, forall_mem_image.2 fun x => id⟩, (hb.image f).bddAbove⟩
| null |
73ee00d4871572c24ac262a1d73fa4c6214b552a30a784a6e386b9f41d58202a
| null | null | null | null | null | null | 14
| 9
|
invalid constructor ⟨...⟩, expected type must be an inductive type
β
|
exact ⟨⟨b, forall_mem_image.2 fun x => id⟩, (hb.image f).bddAbove⟩
|
case intro α : Type u_1 β : Type u_2 inst✝² : Preorder α inst✝¹ : Preorder β inst✝ : IsDirected β fun x1 x2 => x1 ≤ x2 f : α → β b : β hb : ∀ᶠ (x : β) in map f cofinite, (fun x1 x2 => x1 ≤ x2) x b this : Nonempty β h_fin : {x | ¬f x ≤ b}.Finite ⊢ BddAbove (range f)
|
The proof fails because it tries to construct a term of type `BddAbove (range f)` using a pair `⟨...⟩` where `BddAbove` is a property, not an inductive type. The initial attempt incorrectly assumes `BddAbove` has a constructor.
|
Use `bddAbove_union` to combine boundedness results for the image of `f` under cofinite elements and its complement.
|
herald
|
lme
|
train
|
MvPolynomial.decomposition.decompose'_eq.lean
|
import Mathlib.Algebra.DirectSum.Internal
import Mathlib.Algebra.GradedMonoid
import Mathlib.Algebra.MvPolynomial.CommRing
import Mathlib.Algebra.MvPolynomial.Equiv
import Mathlib.Algebra.MvPolynomial.Variables
import Mathlib.RingTheory.MvPolynomial.WeightedHomogeneous
import Mathlib.Algebra.Polynomial.Roots
import Mathlib.RingTheory.MvPolynomial.Homogeneous
open MvPolynomial
open decomposition
variable {σ : Type*} {τ : Type*} {R : Type*} {S : Type*}
open Finsupp
variable [CommSemiring R]
variable (σ R)
variable {σ R}
variable (σ R)
variable {σ R}
variable (σ)
variable (R)
variable {σ}
variable [CommSemiring S] {φ ψ : MvPolynomial σ R} {m n : ℕ}
variable {R σ : Type*} [CommRing R] {φ ψ : MvPolynomial σ R} {n : ℕ}
open Polynomial in
variable {R σ : Type*} [CommRing R] [IsDomain R] {F G : MvPolynomial σ R} {n : ℕ}
open Cardinal Polynomial
open Finset
open Finset Finsupp
variable (n : ℕ) (φ ψ : MvPolynomial σ R)
theorem theorem_32839 :
decomposition.decompose' = fun φ : MvPolynomial σ R =>
DirectSum.mk (fun i : ℕ => ↥(homogeneousSubmodule σ R i)) (φ.support.image Finsupp.degree)
fun m => ⟨homogeneousComponent m φ, homogeneousComponent_mem m φ⟩ := by
rw [degree_eq_weight_one]
rfl
|
import Mathlib.Algebra.DirectSum.Internal
import Mathlib.Algebra.GradedMonoid
import Mathlib.Algebra.MvPolynomial.CommRing
import Mathlib.Algebra.MvPolynomial.Equiv
import Mathlib.Algebra.MvPolynomial.Variables
import Mathlib.RingTheory.MvPolynomial.WeightedHomogeneous
import Mathlib.Algebra.Polynomial.Roots
import Mathlib.RingTheory.MvPolynomial.Homogeneous
open MvPolynomial
open decomposition
variable {σ : Type*} {τ : Type*} {R : Type*} {S : Type*}
open Finsupp
variable [CommSemiring R]
variable (σ R)
variable {σ R}
variable (σ R)
variable {σ R}
variable (σ)
variable (R)
variable {σ}
variable [CommSemiring S] {φ ψ : MvPolynomial σ R} {m n : ℕ}
variable {R σ : Type*} [CommRing R] {φ ψ : MvPolynomial σ R} {n : ℕ}
open Polynomial in
variable {R σ : Type*} [CommRing R] [IsDomain R] {F G : MvPolynomial σ R} {n : ℕ}
open Cardinal Polynomial
open Finset
open Finset Finsupp
variable (n : ℕ) (φ ψ : MvPolynomial σ R)
theorem theorem_32839 :
decomposition.decompose' = fun φ : MvPolynomial σ R =>
DirectSum.mk (fun i : ℕ => ↥(homogeneousSubmodule σ R i)) (φ.support.image Finsupp.degree)
fun m => ⟨homogeneousComponent m φ, homogeneousComponent_mem m φ⟩ := by
ext φ
rfl
| null |
2a8116e7949d4fcbd209e77274132e46ad1eac8c97c91bbfe7a1fe92f8ee0cf3
| null | null | null | null | null | null | 28
| 2
|
tactic 'rfl' failed, the left-hand side
MvPolynomial.coeff m✝ ↑((DirectSum.Decomposition.decompose' φ) i✝)
is not definitionally equal to the right-hand side
MvPolynomial.coeff m✝
↑(((DirectSum.mk (fun i => ↥(homogeneousSubmodule σ R i)) (image Finsupp.degree φ.support)) fun m =>
⟨(homogeneousComponent ↑m) φ, ⋯⟩)
i✝)
case h.w.a.a
R : Type u_5
σ : Type u_6
inst✝ : CommRing R
φ : MvPolynomial σ R
i✝ : ℕ
m✝ : σ →₀ ℕ
⊢ MvPolynomial.coeff m✝ ↑((DirectSum.Decomposition.decompose' φ) i✝) =
MvPolynomial.coeff m✝
↑(((DirectSum.mk (fun i => ↥(homogeneousSubmodule σ R i)) (image Finsupp.degree φ.support)) fun m =>
⟨(homogeneousComponent ↑m) φ, ⋯⟩)
i✝)
|
rfl
|
case h.w.a.a R : Type u_5 σ : Type u_6 inst✝ : CommRing R φ : MvPolynomial σ R i✝ : ℕ m✝ : σ →₀ ℕ ⊢ MvPolynomial.coeff m✝ ↑((DirectSum.Decomposition.decompose' φ) i✝) = MvPolynomial.coeff m✝ ↑(((DirectSum.mk (fun i => ↥(homogeneousSubmodule σ R i)) (image Finsupp.degree φ.support)) fun m => ⟨(homogeneousComponent ↑m) φ, ⋯⟩) i✝)
|
The proof fails because `rfl` cannot show definitional equality between the two sides of the equation, which suggests they are equal only propositionally. The decomposition functions are implemented differently at the definition level.
|
Use functional extensionality and the properties of `decompose'` to show equality rather than relying on definitional equality.
|
herald
|
lme
|
train
|
Filter.mem_coclosed_compact'.lean
|
import Mathlib.Order.Filter.Basic
import Mathlib.Topology.Bases
import Mathlib.Data.Set.Accumulate
import Mathlib.Topology.Bornology.Basic
import Mathlib.Topology.LocallyFinite
import Mathlib.Topology.Compactness.Compact
open Filter
open Set Filter Topology TopologicalSpace Function
variable {X : Type u} {Y : Type v} {ι : Type*}
variable [TopologicalSpace X] [TopologicalSpace Y] {s t : Set X}
variable [TopologicalSpace X] [TopologicalSpace Y] {s t : Set X}
theorem theorem_2947 : s ∈ coclosedCompact X ↔ ∃ t, IsClosed t ∧ IsCompact t ∧ sᶜ ⊆ t := by
simp only [hasBasis_coclosedCompact.mem_iff, compl_subset_comm, and_assoc]
|
import Mathlib.Order.Filter.Basic
import Mathlib.Topology.Bases
import Mathlib.Data.Set.Accumulate
import Mathlib.Topology.Bornology.Basic
import Mathlib.Topology.LocallyFinite
import Mathlib.Topology.Compactness.Compact
open Filter
open Set Filter Topology TopologicalSpace Function
variable {X : Type u} {Y : Type v} {ι : Type*}
variable [TopologicalSpace X] [TopologicalSpace Y] {s t : Set X}
variable [TopologicalSpace X] [TopologicalSpace Y] {s t : Set X}
theorem theorem_2947 : s ∈ coclosedCompact X ↔ ∃ t, IsClosed t ∧ IsCompact t ∧ sᶜ ⊆ t := by
simp_rw [mem_coclosedCompact, compl_subset_comm]
| null |
02836a3670735fc6aeed6640de7a7c9bf2aa925aca9a02c9ceec8cffe3ca8ec2
| null | null | null | null | null | null | 9
| 11
|
unknown identifier 'mem_coclosedCompact'
|
simp_rw [mem_coclosedCompact, compl_subset_comm]
|
X : Type u inst✝¹ inst✝ : TopologicalSpace X s : Set X ⊢ s ∈ coclosedCompact X ↔ ∃ t, IsClosed t ∧ IsCompact t ∧ sᶜ ⊆ t
|
The proof fails because it references an undefined identifier 'mem_coclosedCompact' which is not part of the available imports or context.
|
Use the correct lemma 'hasBasis_coclosedCompact.mem_iff' instead of the non-existent 'mem_coclosedCompact'.
|
herald
|
lme
|
train
|
APRIL Dataset
Dataset Description
The APRIL dataset contains 258,103 examples of Lean 4 proof errors and corrections, organized by error type and split. Each example includes a correct proof, an incorrect proof that produces a specific error, and detailed metadata about the error.
Data Splits
| Split | Total Examples |
|---|---|
| Train | 249,005 (96.5%) |
| Val | 9,263 (3.6%) |
| Test | 1,835 (0.7%) |
Error Types
The dataset categorizes errors into four types:
THME (Theorem Mutation Error) - 154,869 examples (60.0%)
- Errors produced by changing one theorem to a similar theorem
TME (Tactic Mutation Error) - 62,129 examples (24.1%)
- Errors produced by changing one to three tactics to similar tactics
LME (Line Mutation Error) - 18,319 examples (7.1%)
- Errors produced by having Deepseek rewrite a single line of the proof
MLME (Multi-Line Mutation Error) - 22,786 examples (8.8%)
- Errors Produced by having Deepseek rewrite the last chunk of the proof (less than half of the lines)
File Organization
train/
├── thme_train.jsonl (148,361 examples, 1.3 GB)
├── tme_train.jsonl (59,667 examples, 265 MB)
├── mlme_train.jsonl (23,879 examples, 81 MB)
└── lme_train.jsonl (17,098 examples, 57 MB)
val/
├── thme_val.jsonl (5,415 examples, 49 MB)
├── tme_val.jsonl (2,064 examples, 9.1 MB)
├── mlme_val.jsonl (763 examples, 2.7 MB)
└── lme_val.jsonl (1,021 examples, 3.5 MB)
test/
├── thme_test.jsonl (1,093 examples, 9.0 MB)
├── tme_test.jsonl (398 examples, 1.7 MB)
├── mlme_test.jsonl (144 examples, 482 KB)
└── lme_test.jsonl (200 examples, 697 KB)
Data Fields
Common fields (all error types):
correct_proof: The complete, working Lean 4 proof (includes imports and context)incorrect_proof: The modified proof that produces an errorsrc_hash: Hash of the source theoremline: Line number where the error occurscol: Column number where the error occurserror: The Lean compiler error messageline_at_error: The specific line of code that caused the errorstate_at_error: The proof state when the error occurredexplanation: Natural language explanation of why the proof failsfix_suggestion: Natural language suggestion for fixing the errorsource: Data source (e.g., "herald")error_type: One oflme,tme,mlme, orthmesplit: One oftrain,val, ortesttheorem: Theorem identifier (may be null) (used for theorem mutations only)correct_name: Name of the correct theorem/lemma (may be null) (used for theorem mutations only)incorrect_name: Name of the incorrect theorem/lemma used (may be null) (used for theorem mutations only)correct_formal: Formal statement of the correct theorem (may be null) (used for theorem mutations only)incorrect_formal: Formal statement of the incorrect theorem (may be null) (used for theorem mutations only)correct_informal: Informal description of the correct theorem (may be null) (used for theorem mutations only)incorrect_informal: Informal description of the incorrect theorem (may be null) (used for theorem mutations only)
Download Options
- Individual files by split and error type - Download only what you need
- Complete archive:
data_by_split.zip(273 MB compressed, ~1.8 GB uncompressed)
Example Entry (LME)
{
"path": "CategoryTheory.Bicategory.id_whiskerLeft_symm.lean",
"correct_proof": "import Mathlib.CategoryTheory.NatIso\nimport Mathlib.CategoryTheory.Bicategory.Basic\n\nopen CategoryTheory\nopen Bicategory\nopen Category Iso\nvariable {B : Type u} [Bicategory.{w, v} B] {a b c d e : B}\n\ntheorem theorem_28010 {f g : a ⟶ b} (η : f ⟶ g) : η = (λ_ f).inv ≫ 𝟙 a ◁ η ≫ (λ_ g).hom := by\n simp",
"incorrect_proof": "import Mathlib.CategoryTheory.NatIso\nimport Mathlib.CategoryTheory.Bicategory.Basic\n\nopen CategoryTheory\nopen Bicategory\nopen Category Iso\nvariable {B : Type u} [Bicategory.{w, v} B] {a b c d e : B}\n\ntheorem theorem_28010 {f g : a ⟶ b} (η : f ⟶ g) : η = (λ_ f).inv ≫ 𝟙 a ◁ η ≫ (λ_ g).hom := by\n rw [← Iso.inv_comp_eq, leftUnitor_naturality, Category.assoc]",
"theorem": null,
"src_hash": "25ba40f63317e3a83081a8d23cd8f635e281bac38cb2c2548dc0bcecd9660e64",
"correct_name": null,
"incorrect_name": null,
"correct_formal": null,
"incorrect_formal": null,
"correct_informal": null,
"incorrect_informal": null,
"line": 8,
"col": 6,
"error": "tactic 'rewrite' failed, did not find instance of the pattern in the target expression\n ?f = hom ?α ≫ ?g\nB : Type u\ninst✝ : Bicategory B\na b : B\nf g : a ⟶ b\nη : f ⟶ g\n⊢ η = (λ_ f).inv ≫ 𝟙 a ◁ η ≫ (λ_ g).hom",
"line_at_error": "rw [← Iso.inv_comp_eq, leftUnitor_naturality, Category.assoc]",
"state_at_error": "B : Type u inst✝ : Bicategory B a b : B f g : a ⟶ b η : f ⟶ g ⊢ η = (λ_ f).inv ≫ 𝟙 a ◁ η ≫ (λ_ g).hom",
"explanation": "The proof fails because the rewrite tactic cannot match the pattern `?f = hom ?α ≫ ?g` in the target expression, as the target is not in the expected form for `Iso.inv_comp_eq` to apply directly.",
"fix_suggestion": "Use the `simp` tactic which can automatically handle all necessary rewrites and simplifications for this bicategorical identity.",
"source": "herald",
"error_type": "lme",
"split": "train"
}
Citation
If you use this dataset in your research, please cite:
@article{april2026,
title = {Learning to Repair Lean Proofs from Compiler Feedback},
author = {Wang, Yiran and Chess, Simon and Lee, Daniel and Ge, Siyuan and Mallavarapu, Ajit and Ilin, Vasily},
journal = {arXiv preprint},
year = {2026},
}
License
This dataset is licensed under the Apache License 2.0.
Contact
For questions or issues, please contact Vasily Ilin (https://vilin97.github.io/).
- Downloads last month
- 9