leanprover / leanprover/cslib

Grind rules for Computability.Automata.NA.Run

Open
#174 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Lean
Stars
709
Forks
200
Avg merge
3d 6h
Merged PRs (30d)
45

Description

In #168 @ctchou and I worked on trying to write better grind rules for NA.Run. With a grind = annotation the definition is unfolded to the underlying propositions too eagerly, causing some proofs to fail. We added some API lemmas with annotations that work as a replacement in some cases, but there are a few places where you now have to intuit adding NA.Run to individual calls of grind. A particularly troubling example is this proof that requires an unintuitive manual split of a conjunction for grind to work.

Maybe there are some more specific rules that we can write using grind_pattern that can help here? We will probably need to wait for more usage to determine anything concrete.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the existing API lemmas and grind annotations discussed in #168, then inspect the proof at Cslib/Computability/Automata/NABuchiEquiv.lean:62. Investigate whether more specific grind_pattern rules can avoid unfolding NA.Run and the manual conjunction split. Done means a concrete rule set improves the affected proofs without causing the failures described.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.