Skip to content

Line-anchor the remaining proof escape-hatch findings (oops, Admitted, postulate, believe_me, …) #280

Open

Description

@hyperpolymath

What

#278 makes Lean and Isabelle sorry findings one per occurrence with a line, so an inline panic-attack: accepted marker can suppress exactly one audited occurrence. Every other proof escape-hatch detector still emits a single finding per file with a count and line: None, for example:

  • Isabelle oops;
  • Coq/Rocq Admitted and admit;
  • Agda postulate;
  • Idris believe_me and assert_total;
  • Lean unsafeNativeIO.

Those findings can't take an inline marker. The only remaining route is the retired A2ML classification registry, which matches a whole file and category.

How

#278 added the pieces:

  • occurrence_lines(code, needle);
  • position-preserving strip_proof_comments and strip_isabelle_prose;
  • a proptest that stripping preserves every newline.

Each remaining detector needs its own check that the text it counts is still position-preserving. Some go through other strippers or the Rocq Section-aware counter, count_rocq_unverified_postulates.

Acceptance criteria

  • Each proof escape-hatch detector emits one line-anchored finding per occurrence.
  • Every stripper on those paths is covered by the newline-preservation property test.
  • One end-to-end test per language: a marked occurrence is suppressed and an unmarked one in the same file is not.

Activity

  1. added
    enhancementNew capability or improvement to existing behaviour
    scope:repoConfined to this repository
    status:readyFully specified and ready to be picked up
    testingTests, benchmarks, fuzzing, property checks, coverage
    on Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew capability or improvement to existing behaviourpriority:p2Normal - queue itscope:repoConfined to this repositorystatus:readyFully specified and ready to be picked uptestingTests, benchmarks, fuzzing, property checks, coverage

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions