Skip to content

docs: add a getting-started guide, and link the two open feature-request issues - #20

Open
kondylidou wants to merge 3 commits into
mainfrom
docs/onboarding
Open

kondylidou wants to merge 3 commits into
mainfrom
docs/onboarding

Conversation

@kondylidou

@kondylidou kondylidou commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

docs/onboarding.md is a getting-started guide for new contributors. It introduces Boole as the intermediate language of the CSLib code-reasoning platform, separates what exists today from what is expected to change (more front ends, a shallow embedding, more provers), and covers the practical side: build and test, a first program to write and then deliberately break, how tests pin verifier output, the files that matter, and the shape of adding a feature. The example was run on this branch; it verifies as written, and the suggested edit makes it fail with the model the text quotes.

Writing it turned up a gap. Four files under StrataBooleTest/FeatureRequests were never imported in StrataBooleTest.lean, so lake test never built them, and all four had rotted:

  • scalar_reduce: obligation labels embed byte offsets, which had drifted.
  • montgomery_loop_invariant: loop obligations have since been renamed.
  • sha256_compact_indexed: Set bv W32 parses as two arguments, and the file declared type Set, which is now a reserved builtin. Its abstract type is renamed to AbstractSet, since Boole's grammar exposes no Set type former.
  • seq_empty_literal: Procedure.body is now an Imperative.Body, so iterating it needs getStructured.

All four are now imported, taking the suite from 278 to 282 targets.

docs/BooleFeatureRequests.md points at #18 and #19 from the two entries they concern.

@kondylidou
kondylidou force-pushed the docs/onboarding branch 4 times, most recently from a7d82b5 to 673ca39 Compare September 24, 2026 10:51
@kondylidou
kondylidou requested a review from joscoh September 24, 2026 10:55
The guide introduces Boole as the intermediate language of the CSLib
code-reasoning platform, separates what exists today from what is expected to
change, and covers build and test, a first program to write and break, how
tests pin verifier output, and the shape of adding a feature.

Four files under StrataBooleTest/FeatureRequests were never imported in
StrataBooleTest.lean, so `lake test` never built them, and all four had rotted:

- scalar_reduce: obligation labels embed byte offsets, which had drifted.
- montgomery_loop_invariant: loop obligations have since been renamed.
- sha256_compact_indexed: `Set bv W32` parses as two arguments, and the file
  declared `type Set`, which is now a reserved builtin. Renamed its abstract
  type to AbstractSet, since Boole's grammar exposes no Set type former.
- seq_empty_literal: `Procedure.body` is now an `Imperative.Body`, so iterating
  it needs `getStructured`.

All four are now imported, taking the suite from 278 to 282 targets.

docs/BooleFeatureRequests.md points at #18 and #19 from
the two entries they concern.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.

1 participant