Skip to content
Open
12 changes: 12 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@ You are a functional programmer working in Lean 4.

**Main Goal**: Port numpy functionality to Lean 4 with AI, using bootstrapping from feedback like compiler error messages. Formal verification is used as a way to gain signal for bootstrapping.

## IMPORTANT: "Keep Going" Context

If you're told to "keep going" without context, you're likely working on:
1. **DafnyBenchmarks Porting** - See [NumpySpec/DafnyBenchmarks/CLAUDE.md](NumpySpec/DafnyBenchmarks/CLAUDE.md)
- Port Batch 6: Tasks 616, 470, 578, 240, 572, etc. (20 numeric-only tasks)
- Follow the complete workflow documented there
2. **NumPy Function Implementation** - Continue implementing NumPy functions with specs
3. **Test Writing** - Add more property-based tests using Plausible

## General Programming Philosophy

Programming is about onomastics (naming), composition (functoriality), and caching. Think conformally at every scale and across scales.
Expand All @@ -17,6 +26,9 @@ Favor statically typed functional programming but use mutability where it makes
## Project Structure

- `NumpySpec.lean` and `NumpySpec/` directory - core numpy functionality.
- `NumpySpec/DafnyBenchmarks/` - Porting Dafny specifications to Lean 4 (see [DafnyBenchmarks/CLAUDE.md](NumpySpec/DafnyBenchmarks/CLAUDE.md))
- **Current Status**: 90 specifications ported across 5 batches
- **Next**: Continue with Batch 6 (20 numeric-only tasks)
- `FuncTracker.lean` and `FuncTracker/` directory - ASCII table parsing for presenting development progress to boss.
- `lakefile.lean` - Lean 4 project configuration.

Expand Down
22 changes: 22 additions & 0 deletions NumpySpec.lean
Original file line number Diff line number Diff line change
@@ -1 +1,23 @@
-- Root of `NumpySpec` project

-- Import synthesis tasks
import NumpySpec.DafnyBenchmarks.SynthesisSquarePerimeter
import NumpySpec.DafnyBenchmarks.SynthesisIsDivisibleBy11
import NumpySpec.DafnyBenchmarks.SynthesisSphereSurfaceArea
import NumpySpec.DafnyBenchmarks.SynthesisSumOfNegatives
import NumpySpec.DafnyBenchmarks.SynthesisMaxDifference
import NumpySpec.DafnyBenchmarks.SynthesisKthElement
import NumpySpec.DafnyBenchmarks.SynthesisTriangularPrismVolume
import NumpySpec.DafnyBenchmarks.SynthesisRemoveChars
import NumpySpec.DafnyBenchmarks.SynthesisSharedElements
import NumpySpec.DafnyBenchmarks.SynthesisIsNonPrime
import NumpySpec.DafnyBenchmarks.SynthesisHasOppositeSign
import NumpySpec.DafnyBenchmarks.SynthesisCountTrue
import NumpySpec.DafnyBenchmarks.SynthesisAppendArrayToSeq
import NumpySpec.DafnyBenchmarks.SynthesisIsInteger
import NumpySpec.DafnyBenchmarks.SynthesisSumOfCommonDivisors
import NumpySpec.DafnyBenchmarks.SynthesisMultiply
import NumpySpec.DafnyBenchmarks.SynthesisNthHexagonalNumber
import NumpySpec.DafnyBenchmarks.SynthesisCircleCircumference
import NumpySpec.DafnyBenchmarks.SynthesisCountIdenticalPositions
import NumpySpec.DafnyBenchmarks.SynthesisCountArrays
Loading
Loading