Skip to content

Minutes September 06 2023

Pierre Roux edited this page Sep 6, 2023 · 5 revisions

Participants: Reynald, Pierre, Julien, Cyril, Enrico, Yves

Topics for 2023/09/06:

  • FYI: MathComp master (2) is back in Coq's CI: https://github.com/coq/coq/pull/17722

  • FYI: 8.18 now in MC and Analysis CI

  • follow up on MC2 performance:

    • math-comp#1059
      • a proof was cut in two with a Qed to reduce the memory consumption from almost 3GB to about 0.5GB
        • Enrico: Is it the HB.pack?
        • Cyril: try to inline to code generated by HB.pack to know
        • Pierre: this is really the final Qed that takes time
      • leave a comment to remember that a script was cut in two, merge the PR as such
      • communicate the probleme to Coq developers
    • hierarchy-builder#380
      • Enrico: would have merged but the CI is too broken
      • Enrico: are we still supporting 8.15?
      • Cyril: keep 8.16, 8.17. 8.18 so that we can enjoy reverse coercions
        • this will also improve performance (factor 2 observed with category theory)
        • Pierre: the infer parameter is then not needed anymore (?)
    • 30/40% more memory with MathComp, less than x3 in time
  • ring coercions: #1051

    • as discussed last time need to remove algebraic instances on nat, int and rat

      • put instead on aliases nat^r, int^r and rat^r
      • and also accessible through notations x +_int y
    • then coercion work pretty well: https://github.com/math-comp/math-comp/pull/1051/files#diff-3322ad2eded178077c93aa3889bb9ce26a9afd8eb42d3f3ebbd705f0b48a63f7

    • for display, idea from Cyril: alway display the coercions %:R except on variables

    • demo by Pierre:

      • %:R displayed for expression (e.g., (n + 1)%:R) but not when applied to variables (n rather than n%:R)
      • x = n but n%:R = x
      • requires 8.18
      • pending problem: n + x does not type-check as intended if there is a structure of n-module on nat
      • yet, we would like to keep the structures on nat and int
      • Cyril: Lean solved the problem (using type-classes and back-tracking (?))
      • Cyril: "unification modulo"?
      • Enrico: use a syntactic trick to call an auxiliary elaborator, but it should be about the whole expression but not locally
        • requires fall-back (Coq 8.18 or Coq 8.19)
      • Move coercions to contexts: https://inria.hal.science/hal-04177913/
  • deprecating the qualify mechanism? only used to display \is, \is a and \is an instead of \in, makes declaration of predicate instances more complicated and tricky (introduces a coercion from qualified to {pred _})

    • Cyril: this mechanism can be redone on top of \in because it is an instance of displays
    • Cyril: \is a, \is an have been added after \in, there is room for uniformization
    • Cyril: there is also a plan to replace \in so it might be worth waiting for this alternative
  • Overdue milestones: https://github.com/math-comp/math-comp/milestones

    • Yves: had problem to replace [eqType of _] with MathComp 2 because the message is mentioning a solution using clone
      • Pierre: ??? : eqType should suffice
      • Cyril: it should be possible to do a PR to Coq to tell the user that a structure canonique is lacking
      • Pierre: need a "canonical structure Debug" like for type classes
      • Cyril: need a difference trace if we are designing a hierarchy or if we are lacking an instance
      • Cyril: Shouldn't information be displayed with mouse hovering with a mode "show more" like in Lean?
      • Enrico: at least, we would like to display more information than HB.about
      • TODO: discuss the issue with Romain
      • Enrico: automatization of the release of coq-elpi
      • Cyril: we should check the documentation when PRing
    • discussion about regular releases (every 6 month ?): inconclusive
    • not much release-manager volunteers, Reynald and Pierre to release a 2.1.0 at some point in October
  • pending PRs

    • #990 Add subset lemmas

      • status?
      • author pinged
    • #1047 Adressing new warnings of Coq master

      • merged
    • #1059 Memory issue

      • merged
    • #1065 implicits of natr1/nat1r
      requires Analysis overlay

      • TODO: modify MathComp-Analysis so that it works with both version
Clone this wiki locally