Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

slow typeclass synthesis: takes 15000 heartbeats to fail in SMul ℚᵐᵒᵖ α #12231

Closed
kim-em opened this issue Apr 18, 2024 · 2 comments
Closed

Comments

@kim-em
Copy link
Contributor

kim-em commented Apr 18, 2024

import Mathlib

open Matrix in
/--
error: failed to synthesize
  SMul ℚᵐᵒᵖ α
(deterministic) timeout at 'typeclass', maximum number of heartbeats (15000) has been reached (use 'set_option synthInstance.maxHeartbeats <num>' to set the limit)
-/
#guard_msgs in
set_option synthInstance.maxHeartbeats 15000 in
example [AddCommGroup α] [StarAddMonoid α] [Module ℚ α] (c : ℚ)
    (M : Matrix m n α) : (c • M)ᴴ = c • Mᴴ := by simp

This then gets slightly worse after leanprover/lean4#3807, and thereafter causes the simpNF linter to fail on Matrix.conjTranspose_rat_smul.

@mattrobball
Copy link
Collaborator

This appears fixed by leanprover/lean4#4085

@jcommelin
Copy link
Member

I confirm that this now works

import Mathlib

variable {α m n : Type*}

open Matrix in
set_option synthInstance.maxHeartbeats 9000 in
example [AddCommGroup α] [StarAddMonoid α] [Module ℚ α] (c : ℚ)
    (M : Matrix m n α) : (c • M)ᴴ = c • Mᴴ := by simp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants