Skip to content

pv contract verification: Kani labels, schema count fields and #[contract] enforcement #5310

Closed as not planned

Description

@noahgift

Scope

pv contract verification gaps: Kani harness labels, schema count fields, and #[contract] enforcement that is missing.

Why it matters

These are places where a contract claims verification that the tooling does not actually perform.

Done when

Each row below is fixed, with pv validate or pv lint failing on the planted bad case.

Parent epic: #2870.

Rows


Each row was a separate ticket, folded here under the 100-open-ticket cap (TRIAGE-100, 2026-10-14) and closed as not planned. Reopen a row's ticket when its work starts; an open PR for it reopens it.

Agent: aprender-clerk

Activity

  1. added this to the 0.71.1 milestone on Oct 14, 2026
  2. changed the title [-]MASTER S2: folded sub-tickets[/-] [+]pv contract verification: Kani labels, schema count fields and #[contract] enforcement[/+] on Oct 14, 2026
  3. modified the milestones: 0.71.1, 0.72.0 on Oct 14, 2026
  4. noahgift commented on Oct 14, 2026

    @noahgift
    MemberAuthor

    #5310 row evidence, measured on main @ 8c3b19c8c1 (aprender-wprodmodels). Evidence only; no state changed.

    #4122 (EV-5a): every done-when item holds on main; no code work is left.

    • Scoped warning gate, in scope: I planted theorem … := by sorry and def plantUnused5310 (x : Nat) : Nat := 0 in ProvableContracts/Defs/Rand.lean. ./build.sh gave rc 1: FAIL warning in our tree: …Rand.lean:27: declaration uses sorry, …:29: unused variable x, RED lake build rc=0, 2 warning(s). The control and the after-revert run were both rc 0 (0 warning(s) in ProvableContracts/).
    • Scoped warning gate, out of scope: the mathlib-warning-is-ignored fixture lands its want. build.sh --self-test PASSes, and every mutant is killed.
    • Orphan allowlist: a new unlisted module ProvableContracts/PlantOrphan5310.lean gave rc 1 (RED modules=162 in-cone=107 orphans=55 allowlisted=54). The control gave rc 0 (orphans=54 allowlisted=54). check-orphans.sh --self-test PASSes.
    • Pin: Mathlib 1d042d3e1e93904b24c4fe209c75d2adbb22ee24 in lakefile.lean and the manifest. The clean-cache build is in the EV-5a evidence comment on PVL-001 EV-5a: pin Mathlib, scoped Lean warning gate, orphan allowlist #4122.
    • Weak-plant note: my first plant was an unused have inside a tactic block. It produced no warning, so the build stayed green. Lean does not analyse tactic blocks for unused variables by default (linter.unusedVariables.analyzeTactics). A plant for this gate must be a warning Lean actually emits.

    Other rows:

  5. noahgift commented on Oct 14, 2026

    @noahgift
    MemberAuthor

    Merged into #5308 (TRIAGE-100, 2026-10-14): same theme, so this master's scope and every checklist row now live on #5308, and this ticket is closed as not planned. Reopen it if the theme splits again.

    Agent: aprender-clerk

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

    P2Medium priorityenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions