zombie proof processes
Manuel Eberl
manuel at pruvisto.org
Fri Nov 28 21:38:20 CET 2025
Just FYI, we have a lot of material on the harmonic numbers in the
distribution already. Including of course the fact that they're
unbounded. E.g. in HOL-Analysis.Summation_Tests:
> lemma not_summable_harmonic: "¬summable (λn. inverse (of_nat n) :: 'a
> :: real_normed_field)"
Or, expressed in a different way:
> definition✐‹tag important› harm :: "nat ⇒ 'a :: real_normed_field" where
> "harm n = (∑k=1..n. inverse (of_nat k))"
> theorem not_convergent_harm: "¬convergent (harm :: nat ⇒ 'a ::
> real_normed_field)"
Or a more precise lower bound:
> lemma harm_ge_ln: "harm n ≥ ln (real n + 1)"
And a lot more.
Cheers,
Manuel
On 11/28/25 20:57, Peter Lammich wrote:
> Another one. veriT. Somewhere in my proof exploration of the below.
>
> I'll try to re-sledgehammer all goals in there, maybe it provokes a
> rogue veriT again...
>
> --
>
> Peter
>
>
> imports Complex_Main
> begin
>
>
> lemma upt_fuse: "⟦l≤m; m<h ⟧ ⟹ [l..<m] @ [m..<h] = [l..<h]"
> by (metis less_imp_add_positive upt_add_eq_append)
>
>
> corollary harmonic_series_unbounded_aux: "n ≤ (∑i←[1..<2^(2*n)+1]. 1/i)"
> proof -
>
> have A: "(real n+1)/2 ≤ (∑i←[1..<2^n+1]. 1/i)" for n
> proof (induction n)
> case 0
> then show ?case by simp
> next
> case (Suc n)
>
> (* It feels like we're working against the simplifier for [_ ..<
> Suc _], so we disable that rule *)
> find_theorems "[_..<Suc _]"
> note [simp del] = upt_Suc
>
> have SPLIT: "[1..< 2^Suc n + 1] = [1..< 2^n + 1]@[2^n + 1 ..<
> 2^Suc n + 1]" (is "_ = ?l1@?l2")
> by (simp add: upt_fuse)
>
> from Suc.IH have "(real n+1)/2 ≤ (∑i←?l1. 1/i)" .
> moreover have "1/2 ≤ (∑i←?l2. 1/i)" proof -
> have 1: "(1/2 :: real) ≤ (∑i←?l2. 1/2^Suc n)" by (simp add:
> sum_list_triv)
> have 2: "(∑i←?l2. 1/2^Suc n) ≤ (∑i←?l2. 1/i)"
> apply (rule sum_list_mono)
> apply (clarsimp simp: less_Suc_eq_le)
> apply (drule of_nat_mono[where j="2*2^_"])
> by (auto simp: field_simps)
> from order_trans[OF 1 2] show ?thesis .
> qed
> ultimately show ?case
> apply (subst SPLIT)
> by simp
> qed
>
> show ?thesis
> apply (rule order_trans[OF _ A])
> by auto
> qed
>
>
>
> lemma harmonic_series_unbounded: "∃n. c ≤ (∑i←[1..<n]. 1/i)"
> proof -
> have "c ≤ (nat ¦⌈c⌉¦)" by linarith
> also note harmonic_series_unbounded_aux
> finally show ?thesis by blast
> qed
>
>
> On 28/11/2025 17:56, Makarius wrote:
>> On 28/11/2025 17:40, Peter Lammich wrote:
>>>
>>> On 28/11/2025 17:16, Lawrence Paulson wrote:
>>>> As it is intermittent, I was wondering whether certain
>>>> characteristics of the goal might cause this.
>>>>
>>>> Is your example reproducible?
>>>
>>> Unfortunately not. I only realized that this process was running 7
>>> minutes after it was started ... no idea what I was sledgehammering
>>> at this point :(
>>>
>>> I typically realize that only when I keep hearing my CPU fan, and my
>>> CPU temperature keeps being high, although no proof or sledgehammer
>>> is running.
>>
>> Peter,
>>
>> that is new information: the problem happens on Linux, and for
>> Isabelle2025 already. So it is not specific to macOS 26, nor to any
>> changes towards Isabelle2025-1.
>>
>> I am still interested to learn about the reasons, but it is now more
>> likely to get ticked-off as "non-regression" towards Isabelle2025.
>>
>>
>> Makarius
>>
More information about the isabelle-dev
mailing list