83 lines
2.0 KiB
Markdown
83 lines
2.0 KiB
Markdown
# 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.
|