lambdaclass / lambdaclass/lambda_compiler_kit

Enable --wfail axiom-guard gate once warnings are clean

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

Nobody has claimed this yet.

enhancement
Dominant language
Lean
Stars
2
Forks
1
PR merge metrics
No merged PRs in 30d

Description

The lean_extensions axiom-guard plugin is now wired into the build (see the feat/axiom-guard PR). It warns when a declaration depends on a non-standard axiom (anything beyond propext, Quot.sound, Classical.choice; sorry included).

CI currently runs a plain lake build (via leanprover/lean-action@v1), so these warnings are surfaced but do not fail the build. We cannot yet enforce the gate with lake build --wfail because the existing regex code uses sorry, which the guard reports as a dependency on the non-standard axiom sorryAx. Running lake build --wfail locally exits 1 on the following pre-existing declarations:

Lck/Regex/Parser.lean:77:0:  `Lck.Regex.parseCharClassContents` depends on non-standard axiom `sorryAx`
Lck/Regex/Parser.lean:107:0: `Lck.Regex.parseCharClass` depends on non-standard axiom `sorryAx`
Lck/Regex/Parser.lean:126:0: `Lck.Regex.parseAtom` depends on non-standard axiom `sorryAx`
Lck/Regex/Parser.lean:147:0: `Lck.Regex.parseRepetition` depends on non-standard axiom `sorryAx`
Lck/Regex/Parser.lean:160:0: `Lck.Regex.collectAtoms` depends on non-standard axiom `sorryAx`
Lck/Regex/Parser.lean:197:0: `Lck.Regex.parseConcat` depends on non-standard axiom `sorryAx`
Lck/Regex/Parser.lean:202:0: `Lck.Regex.collectAlternates` depends on non-standard axiom `sorryAx`
Lck/Regex/Parser.lean:232:0: `Lck.Regex.parseAlternation` depends on non-standard axiom `sorryAx`
Lck/Regex/Parser.lean:237:0: `Lck.Regex.parse` depends on non-standard axiom `sorryAx`
Lck/Regex/Matcher.lean:102:0: `Lck.Regex.epsilonClosure` depends on non-standard axiom `sorryAx`
Lck/Regex/Matcher.lean:138:0: `Lck.Regex.step` depends on non-standard axiom `sorryAx`
Lck/Regex/Matcher.lean:149:0: `Lck.Regex.matchesString` depends on non-standard axiom `sorryAx`
Lck/Regex/Matcher.lean:172:0: `Lck.Regex.matchesAt` depends on non-standard axiom `sorryAx`
Lck/Regex/Matcher.lean:195:0: `Lck.Regex.matchesLine` depends on non-standard axiom `sorryAx`
Lck/Regex/Regex.lean:18:0:   `Lck.Regex.compile` depends on non-standard axiom `sorryAx`
Lck/Regex/Regex.lean:24:0:   `Lck.Regex.matchFull` depends on non-standard axiom `sorryAx`
Lck/Regex/Regex.lean:29:0:   `Lck.Regex.matchCompiled` depends on non-standard axiom `sorryAx`
Lck/Regex/Regex.lean:33:0:   `Lck.Regex.search` depends on non-standard axiom `sorryAx`
Lck/Regex/Regex.lean:38:0:   `Lck.Regex.searchCompiled` depends on non-standard axiom `sorryAx`
test/Main.lean:6:0:          `main` depends on non-standard axiom `sorryAx` (transitive, via the regex lib under test)

These all stem from the sorry placeholders in Lck/Regex/Parser.lean and Lck/Regex/Matcher.lean; Regex.lean and test/Main.lean inherit them transitively.

Once these sorrys are discharged (or otherwise removed), switch CI from the plain lake build to lake build --wfail to turn the axiom guard into a hard gate. With leanprover/lean-action@v1 this is build-args: "--wfail".

Contributor guide

No contributing guide indexed for this repository

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 by running lake build --wfail and review the listed declarations in Lck/Regex/Parser.lean and Lck/Regex/Matcher.lean, where the sorry placeholders originate. Check the transitive reports in Lck/Regex/Regex.lean and test/Main.lean; done means those warnings are gone and CI uses build-args: "--wfail" with leanprover/lean-action@v1.

Written by the indexing model from the issue text.

Assessment

Domain
build-system, ci-cd, compilers
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.