|
4 | 4 | # STATE.a2ml — Tangle project state |
5 | 5 | [metadata] |
6 | 6 | project = "tangle" |
7 | | -version = "0.1.0" |
8 | | -last-updated = "2026-02-12" |
| 7 | +version = "0.2.0-dev" |
| 8 | +last-updated = "2026-06-05" |
9 | 9 | status = "active" |
10 | | -session = "converted from scheme — 2026-04-11" |
| 10 | +session = "echo-types realignment + decidability + CI bootstrap — 2026-06-05" |
11 | 11 |
|
12 | 12 | [project-context] |
13 | 13 | name = "Tangle" |
14 | | -purpose = """A Turing-complete topological programming language""" |
15 | | -completion-percentage = 35 |
| 14 | +purpose = """A Turing-complete topological programming language whose core type |
| 15 | +system is mechanised in Lean 4. `close` (braid closure) is the canonical lossy |
| 16 | +map; echo types make that loss recoverable at the type level.""" |
| 17 | +completion-percentage = 55 |
16 | 18 |
|
17 | 19 | [position] |
18 | | -phase = "specification-complete" # design | implementation | testing | maintenance | archived |
19 | | -maturity = "experimental" # experimental | alpha | beta | production | lts |
| 20 | +phase = "implementation" # design | implementation | testing | maintenance | archived |
| 21 | +maturity = "alpha" # experimental | alpha | beta | production | lts |
20 | 22 |
|
21 | 23 | [route-to-mvp] |
22 | 24 | milestones = [ |
23 | | - # No milestones recorded |
| 25 | + "DONE: OCaml compiler — lexer, parser, typecheck, eval, pretty, compositional (compiler/lib/*.ml)", |
| 26 | + "DONE: Rust tangle-wasm backend + tangle-lsp", |
| 27 | + "DONE (TG-0): proofs/Tangle.lean compiles clean; CI build oracle wired (lean-proofs.yml)", |
| 28 | + "DONE: Type safety (Progress/Preservation/Determinism/TypeSafety) for the let-free core", |
| 29 | + "DONE (TG-10): echo types integrated into the type system (Ty.echo, echoClose/lower/residue); all four theorems extended; residue-recovery + non-injectivity capstones", |
| 30 | + "DONE (TG-2): decidability — infer ≡ HasType, type uniqueness, Decidable instance", |
| 31 | + "DONE: reproducible Lean toolchain bootstrap (proofs/bootstrap-lean.sh) + SessionStart hook; CI consolidated onto it", |
| 32 | + "NEXT (TG-1): extend type safety to let-binding (full de Bruijn substitution)", |
| 33 | + "NEXT: generalise echo to add/eq (needs a product/residue type in Ty)", |
| 34 | + "NEXT: thread echo residue into TangleIR (coordinate with quandledb)", |
| 35 | + "NEXT: full OCaml echo pipeline (ast/typecheck/eval/parser/pretty)", |
| 36 | + "LATER (TG-3): OCaml typecheck.ml refines the Lean HasType spec", |
| 37 | + "LATER (TG-5/6/7): compositional rewriter preservation; WASM semantic preservation; braid-group eqBraids", |
24 | 38 | ] |
25 | 39 |
|
26 | 40 | [blockers-and-issues] |
27 | 41 | issues = [ |
28 | | - # No blockers recorded |
| 42 | + "DESIGN (open, user): echo value shape — uniform `echoVal (residue,result)` (faithful to Echo=Σ, reworks merged capstones to multi-step Step*) vs per-operation lower/residue rules. Blocks the echo generalisation to add/eq.", |
29 | 43 | ] |
30 | 44 |
|
31 | 45 | [critical-next-actions] |
32 | 46 | actions = [ |
33 | | - "Begin lexer implementation (Task 1 in SONNET-TASKS.md)", |
34 | | - "Set up Rust project structure with cargo", |
35 | | - "Complete lexer with mode switching", |
36 | | - "Begin TANGLE parser (recursive descent)", |
37 | | - "Complete parser + type checker", |
38 | | - "Begin evaluator", |
| 47 | + "Resolve the echo value-shape design fork (A vs B), then add the product type", |
| 48 | + "TG-1: let-binding type safety via de Bruijn substitution", |
| 49 | + "Generalise echo to add/eq; thread residue into TangleIR with the quandledb session", |
| 50 | + "Extend the OCaml typechecker (typecheck.ml/ast.ml) with echo types", |
39 | 51 | ] |
40 | 52 |
|
41 | 53 | [maintenance-status] |
42 | | -last-run-utc = "2026-02-12T00:00:00Z" |
43 | | -last-result = "unknown" # unknown | pass | warn | fail |
| 54 | +last-run-utc = "2026-06-05T00:00:00Z" |
| 55 | +last-result = "pass" # unknown | pass | warn | fail |
| 56 | +notes = "lean-proofs oracle GREEN (PR #34, #36 merged); Tangle.lean 0 errors, no sorry/axiom/admit" |
0 commit comments