Theorems / mh_cate_63c919
Mathlib held-out
Category theory · hard
theorem lg_target {X : Type u} {κ : Cardinal.{u}} (hX : HasCardinalLT X κ) [Fact κ.IsRegular] : CategoryTheory.IsCardinalPresentable X κ := by- Mathlib declaration
- HasCardinalLT.isCardinalPresentable
- Held-out module
- Mathlib.CategoryTheory.Presentable.Type
- Banned modules (itself + downstream)
- 1
- Reference proof premises (reachable / held-out)
- 12 / 0
Traces
Each configuration's full record: what was retrieved, what the model wrote, what Lean said back.
Not verified1 model calls · 1 Lean checks · $0.00097
Attempts
- sample 0 · round 0Lean 3 syntax47.6 s model time
Proof ```lean intro hX apply CategoryTheory.IsCardinalPresentable.ofLimitPreservingOfHasCardinalLT · exact hX · intro F obtain ⟨I, f, lim⟩ := CategoryTheory.Limits.hasLimit (CategoryTheory.Limits.limitFunctor _) have : ∀ (i : I), Cardinal.mk (f i) < κ := by intro i apply hX exact (CategoryTheory.Limits.isLimitLimitFunctor _ _).limitIsLimit let χ : ℕ → Cardinal := λ n, Cardinal.mk (f (I.natCast n)) let χ' : ℕ → Cardinal := λ n, χ n have : ∃ n : ℕ, χ' n ≥ κ := by rw [Cardinal.mk_injective] exact (κ.IsRegular.cardinal_regular_cardinal_lt_ω).lt_omega_iff_exists obtain ⟨n, h⟩ := this let χ'' : ℕ → Cardinal := λ m, if m < n then χ m else κ let χ''' : ℕ → Cardinal := λ m, χ'' m let χ'''' : ℕ → Cardinal := λ m, χ''' m let χ''''' : ℕ → Cardinal := λ m, χ'''' m let χ'''''' : ℕ → Cardinal := λ m, χ''''' m let χ''''''' : ℕ → Cardinal := λ m, χ'''''' m let χ'''''''' : ℕ → Cardinal := λ m, χ''''''' m let χ''''''''' : ℕ → Cardinal := λ m, χ'''''''' m let χ'''''''''' : ℕ → Cardinal := λ m, χ''''''''' m let χ''''''''''' : ℕ → Cardinal := λ m, χ'''''''''' m let χ'''''''''''' : ℕ → Cardinal := λ m, χ''''''''''' m let χ''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''' m let χ'''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''' m let χ''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''' m let χ'''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''' m let χ''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''' m let χ'''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''' m let χ''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''' m let χ'''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''' m let χ''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''' m let χ'''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''' m let χ''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''' m let χ'''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''' m let χ''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''' m let χ'''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''''' m let χ'''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''''''' m let χ'''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''''''''' m let χ'''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''''''''''' m let χ'''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''''''''''''' m let χ'''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''''''''''''''' m let χ'''''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''''''''''''''''' m let χ'''''''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''''''''''''''''''' m let χ'''''''''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''''''''''''''''''''' m let χ'''''''''''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''''''''''''''''''''''' m let χ'''''''''''''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ''''''''''''''''''''''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''''''''''''''''''''''' : ℕ → Cardinal := λ m, χ'''''''''''''''''''''''''''''''''''''''''''''' m let χ''''''''''''''''''''''''''What Lean printed (this is all the model sees on repair) 3:140: error: unsolved goals X : Type u κ : Cardinal.{u} hX : HasCardinalLT X κ inst✝ : Fact κ.IsRegular ⊢ CategoryTheory.IsCardinalPresentable X κ 4:2: error: unexpected token '`'; expected command
Reference proof
Mathlib's own source for this declaration, shown for comparison. It may use lemmas the prover is not allowed to use.
lemma isCardinalPresentable (hX : HasCardinalLT X κ) [Fact κ.IsRegular] :
IsCardinalPresentable X κ where
preservesColimitOfShape J _ _ :=
⟨fun {F} ↦ ⟨fun {c} hc ↦ ⟨by
have := isFiltered_of_isCardinalFiltered J κ
refine Types.FilteredColimit.isColimitOf' _ _ (fun f ↦ ?_) (fun j f g h ↦ ?_)
· dsimp at f
choose j g hg using fun x ↦ Types.jointly_surjective_of_isColimit hc (f x)
refine ⟨IsCardinalFiltered.max j hX,
↾fun x ↦ F.map (IsCardinalFiltered.toMax j hX x) (g x), ?_⟩
dsimp
ext x
dsimp at j g hg x ⊢
rw [← hg]
exact congr_hom (c.w (IsCardinalFiltered.toMax j hX x)).symm (g x)
· choose k a hk using fun x ↦
(Types.FilteredColimit.isColimit_eq_iff' hc _ _).1 (congr_hom h x)
dsimp at f g h k a hk ⊢
replace hk : ∀ x, F.map (a x) (f x) = F.map (a x) (g x) := by assumption
obtain ⟨l, b, c, hl⟩ : ∃ (l : J) (c : j ⟶ l) (b : ∀ x, k x ⟶ l),
∀ x, a x ≫ b x = c := by
let φ (x : X) : j ⟶ IsCardinalFiltered.max k hX :=
a x ≫ IsCardinalFiltered.toMax k hX x
exact ⟨IsCardinalFiltered.coeq φ hX,
IsCardinalFiltered.toCoeq φ hX,
fun x ↦ IsCardinalFiltered.toMax k hX x ≫ IsCardinalFiltered.coeqHom φ hX,
fun x ↦ by simpa [φ] using IsCardinalFiltered.coeq_condition φ hX x⟩
refine ⟨l, b, by ext x; simp [← hl x, hk]⟩⟩⟩⟩