geolog-zeta-fork/notes/003-project-status.md

83 lines
2.0 KiB
Markdown
Raw Normal View History

2026-03-19 14:27:12 +01:00
# Project Status
**Version:** 0.1.0
---
## Metrics
| Metric | Count |
|--------|-------|
| Rust source code | 30,284 lines |
| Test code | 7,872 lines |
| Example `.geolog` files | 2,346 lines |
| Example files | 30 |
| Rust source files | 84 |
| Unit tests | 137 (all passing) |
| Integration tests | 31 (all passing) |
---
## What's Complete
- Parser, lexer, syntax support
- Type system and elaboration
- Chase algorithm with equality saturation
- Tensor algebra for axiom checking
- SMT-style model enumeration
- Persistence and version control
- Interactive REPL
- Comprehensive test suite
---
## Mostly Complete
- Parameterized theories
- Nested instances (parsing done, elaboration partial)
- Query optimization
- Relational algebra compilation
- Congruence closure integration
---
## Known Gaps
### TODOs in Code
| Location | Description |
|----------|-------------|
| `src/repl.rs:84` | Store full theory_type in GeologMeta |
| `src/overlay.rs:380` | Copy functions (deferred) |
| `src/store/query.rs:61` | Columnar batch loading |
| `src/store/instance.rs` | External references, product domains |
| `src/query/to_relalg.rs` | Column path navigation, ScanRelationOp |
### Incomplete Features
- Product types in conclusions don't fully work
- Existentials over product sorts unsupported
- Field projections in equations don't compile
- Disjunction fires both branches (correct but inefficient)
- Tensor compilation failures are silent
### In Progress
- Lean4 formalization of monotonic submodel proofs
- Homoiconic query plan representation
- Disjunction variable alignment for tensor builder
---
## Test Coverage
| File | Coverage Area |
|------|---------------|
| `tests/unit_elaborate.rs` | Type checking (14 tests) |
| `tests/unit_chase.rs` | Chase algorithm |
| `tests/unit_parsing.rs` | Parser (4 tests) |
| `tests/examples_integration.rs` | 31 integration tests |
| `tests/proptest_*.rs` | 11 property-based test suites |
Fuzzing targets exist in `fuzz/` directory.