Skip to content

refactor: introduce grind sets for Automata (see issue #308)#385

Draft
xvade wants to merge 8 commits intoleanprover:mainfrom
xvade:main
Draft

refactor: introduce grind sets for Automata (see issue #308)#385
xvade wants to merge 8 commits intoleanprover:mainfrom
xvade:main

Conversation

@xvade
Copy link

@xvade xvade commented Mar 2, 2026

Adds the automata grind attribute and replaces most instances of scoped grind in the Automata directory with it. Updates proofs to match.

@xvade xvade mentioned this pull request Mar 2, 2026
@chenson2018 chenson2018 marked this pull request as draft March 2, 2026 17:16
#grind_lint skip Cslib.Automata.DA.buchi_eq_finAcc_omegaLim
#grind_lint skip Cslib.LTS.MTr.stepL
#grind_lint skip Cslib.LTS.STr.trans_τ
#grind_lint skip Cslib.Automata.DA.FinAcc.toNAFinAcc_language_eq
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having to remove these is a pretty serious tradeoff I wasn't expecting. I have asked on Zulip about this, let's see what is said there before I review the rest of this closely.

"subDir": null,
"scope": "leanprover-community",
"rev": "9b1001cbdbfe51cbc92398637317609eb7bbf139",
"rev": "a237616fe5742014bd87366490691a7c1de9d1a7",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally PRs should not change the manifest (I assume this was via lake update).

public import Mathlib.Init
public import Mathlib.Tactic.Common

register_grind_attr automata
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This means that:

  1. We get to write grind [automata], which I like.
  2. We annotate theorems with @[automata], which I'm not sure I like. It doesn't communicate that we're making a grind annotation. Perhaps we should consider a prefix, like grind_ (or grind:, if it's supported)?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think for this tradeoff I'd be more annoyed by the verbosity of grind [grind_automata, .... In the attributes too, because there would eventually be theorems with multiple of these like @[grind_lts, grind_automata, ...].

@fmontesi
Copy link
Collaborator

fmontesi commented Mar 3, 2026 via email

WegmannDavid and others added 6 commits March 6, 2026 07:39
…ver#381)

Added helper lemmas to existing files that are necessary for additional
pull requests with the goal of proving strong normalization for Stlc.

---------

Co-authored-by: Chris Henson <chrishenson.net@gmail.com>
Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
I misunderstood a message on Zulip that Mathlib was already using this.
We should wait until Mathlib is actually using this and some issues with
unreliable output are resolved.
Closes leanprover#380. This makes `CslibTests` the target for `lake test`,
ensuring that the `--iofail --wfail` flags are propagated. The previous
test runner is removed, with `lake exe checkInitImports` being moved
into a check in CI. This seems to be the standard solution at the
moment, but we should revisit in the future if multiple test targets are
supported (as drafted in
leanprover/lean4#10531).
This PR updates the notation for filling contexts from c[t] to c<[t], as
discussed on Zulip.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants