Zulip Chat Archive
Stream: lean4
Topic: How to interpret output of diagnostics?
aprilgrimoire (Dec 10 2024 at 18:47):
Hi! I don't know how to interpret the output of diagnostics. I'm getting (deterministic) timeout at
whnf, maximum number of heartbeats (500000) has been reached
, and I've already split out one big chunk of my proof using extract_goal
.
For example, here
[reduction] unfolded declarations (max: 130502, num: 69): ▶
[reduction] unfolded instances (max: 124573, num: 310): ▶
[reduction] unfolded reducible declarations (max: 23671, num: 81): ▶
[type_class] used instances (max: 1134, num: 55): ▶
[type_class] max synth pending failures (maxSynthPendingDepth: 1), use `set_option maxSynthPendingDepth <limit>` ▶
[def_eq] heuristic for solving `f a =?= f b` (max: 118814, num: 112): ▶
[kernel] unfolded declarations (max: 8976, num: 149): ▶
use `set_option diagnostics.threshold <num>` to control threshold for reporting counters
What does max
and num
mean respectively? And how do I know how much heartbeats are used in each line to optimize accordingly?
Daniel Weber (Dec 11 2024 at 06:32):
max
is maximum number of times a specific declaration/instance was unfolded/used, and num
is the number of different declarations/instances unfolded. These don't directly correspond to heartbeats
Last updated: May 02 2025 at 03:31 UTC