Model card: restore full README from GitHub, add commercial license option
Browse files
README.md
CHANGED
|
@@ -16,3 +16,118 @@ tags:
|
|
| 16 |
|
| 17 |
> Mirrored from [https://github.com/SNAPKITTYWEST/unlambda-idris-spark](https://github.com/SNAPKITTYWEST/unlambda-idris-spark) at commit `a42eccc`. Part of the **SnapKitty October 2026 main drop**.
|
| 18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
> Mirrored from [https://github.com/SNAPKITTYWEST/unlambda-idris-spark](https://github.com/SNAPKITTYWEST/unlambda-idris-spark) at commit `a42eccc`. Part of the **SnapKitty October 2026 main drop**.
|
| 18 |
|
| 19 |
+
<!--
|
| 20 |
+
Copyright (c) 2026 Ahmad Ali Parr. All rights reserved.
|
| 21 |
+
SPDX-License-Identifier: LicenseRef-Proprietary
|
| 22 |
+
Public source visibility does not grant an open-source license. See LICENSE.
|
| 23 |
+
-->
|
| 24 |
+
|
| 25 |
+
# Unlambda + ATS + Idris 2 + SPARK
|
| 26 |
+
|
| 27 |
+
**Handwritten lambda-calculus derivations, checked proof terms, and explicit verification boundaries.**
|
| 28 |
+
|
| 29 |
+
[](https://github.com/AHMADALIPARR/unlambda-idris-spark/actions/workflows/idris-proofs.yml)
|
| 30 |
+
[](https://github.com/AHMADALIPARR/unlambda-idris-spark/actions/workflows/ats-spark.yml)
|
| 31 |
+
[](https://github.com/AHMADALIPARR/unlambda-idris-spark/releases/tag/v1.0.0)
|
| 32 |
+
[](docs/verification/ats-spark-af40c4e.md)
|
| 33 |
+
[](SECURITY.md)
|
| 34 |
+
[](COMMERCIAL-LICENSING.md)
|
| 35 |
+
[](LICENSE)
|
| 36 |
+
[](SUPPORT.md)
|
| 37 |
+
|
| 38 |
+

|
| 39 |
+
|
| 40 |
+
v1.0.0 packages a verification scaffold for a combined Unlambda/ATS/Idris/SPARK
|
| 41 |
+
architecture. It includes compiler-checked ATS interfaces, handwritten SKI
|
| 42 |
+
derivations formalized in Idris 2, and a SPARK-proved bounded allocation counter.
|
| 43 |
+
The full ATS interpreter, generational heap, and cross-language correspondence
|
| 44 |
+
are future work. This release makes the existing evidence easy to reproduce.
|
| 45 |
+
|
| 46 |
+
## What is checked
|
| 47 |
+
|
| 48 |
+
| Layer | Current result | Boundary |
|
| 49 |
+
| --- | --- | --- |
|
| 50 |
+
| ATS/Postiats 0.4.2 | Both `.sats` interfaces typecheck | Runtime implementations and adapter are pending |
|
| 51 |
+
| Idris 2 0.8.0 | SKI proof terms and fuel model typecheck | SKI witnesses cover symbolic free atoms; control model is a stub |
|
| 52 |
+
| GNAT/Ada | Heap compiles and passes capacity/exhaustion/reset tests | Heap counts allocations; it does not yet store nodes |
|
| 53 |
+
| SPARK/GNATprove | Six checks discharged, zero unproved | Current allocation-counter contracts only |
|
| 54 |
+
| Combined CI | `verify.sh` passes with all toolchains | Full runtime certification remains open |
|
| 55 |
+
|
| 56 |
+
The counter badge links a recorded source snapshot. CI badges show the current
|
| 57 |
+
branch. [Verification evidence](docs/verification/ats-spark-af40c4e.md) records
|
| 58 |
+
the source hashes, versions, proof results, and limitations.
|
| 59 |
+
|
| 60 |
+
## How the workflow fits together
|
| 61 |
+
|
| 62 |
+
```mermaid
|
| 63 |
+
flowchart TD
|
| 64 |
+
Spec["Unlambda semantics and invariants"] --> Hand["Handwritten SKI beta derivations"]
|
| 65 |
+
Hand --> Idris["Idris proof terms and control model"]
|
| 66 |
+
Spec --> ATS["Typed ATS interfaces"]
|
| 67 |
+
Spec --> Ada["Ada allocation-counter contracts"]
|
| 68 |
+
Idris --> IC["Idris typecheck, build, smoke test"]
|
| 69 |
+
ATS --> AC["ATS interface typecheck"]
|
| 70 |
+
Ada --> SC["Ada tests and SPARK proof checks"]
|
| 71 |
+
IC --> Evidence["Source-pinned verification evidence"]
|
| 72 |
+
AC --> Evidence
|
| 73 |
+
SC --> Evidence
|
| 74 |
+
Evidence --> Combined["Combined verify.sh validation"]
|
| 75 |
+
Combined --> Release["v1 verification-scaffold release"]
|
| 76 |
+
Evidence -. "future work" .-> Runtime["ATS runtime, slot-map heap, correspondence"]
|
| 77 |
+
```
|
| 78 |
+
|
| 79 |
+
SPARK verifies the Ada contracts; Idris checks its own proof terms. Agreement
|
| 80 |
+
between an ATS runtime, Ada implementation, and Idris semantics will require a
|
| 81 |
+
checked adapter and a separate simulation/correspondence argument. See the
|
| 82 |
+
[full workflow](docs/WORKFLOW.md) and [delivery backlog](docs/DELIVERY.md).
|
| 83 |
+
|
| 84 |
+
## Reproduce the checks
|
| 85 |
+
|
| 86 |
+
Use Linux x86-64 with Bash, GNU grep, ATS/Postiats, Idris 2, GNAT, GPRbuild, and
|
| 87 |
+
GNATprove installed. [Toolchain versions and setup](docs/WORKFLOW.md#toolchain-setup)
|
| 88 |
+
match the CI configuration.
|
| 89 |
+
|
| 90 |
+
```sh
|
| 91 |
+
gh repo clone AHMADALIPARR/unlambda-idris-spark
|
| 92 |
+
cd unlambda-idris-spark
|
| 93 |
+
bash verify.sh
|
| 94 |
+
```
|
| 95 |
+
|
| 96 |
+
The repository is public and source-visible; it is proprietary, not open source. A passing run checks the
|
| 97 |
+
ATS declarations, typechecks and compiles the Idris model, runs the Ada tests,
|
| 98 |
+
and requires GNATprove to discharge the heap checks. The success message names
|
| 99 |
+
that component scope explicitly.
|
| 100 |
+
|
| 101 |
+
## Repository map
|
| 102 |
+
|
| 103 |
+
| Path | Purpose |
|
| 104 |
+
| --- | --- |
|
| 105 |
+
| `ats/` | Typed heap and machine interfaces |
|
| 106 |
+
| `idris/LambdaProofs.idr` | Explicit beta-reduction witnesses and substitution cases |
|
| 107 |
+
| `idris/Main.idr` | Fuel/control model and resource-status proof terms |
|
| 108 |
+
| `ada/` | Bounded allocation counter, contracts, assertion-enabled test driver |
|
| 109 |
+
| `spec/` | Semantics, invariants, handwritten derivations |
|
| 110 |
+
| `docs/verification/` | Recorded compiler and prover evidence |
|
| 111 |
+
| `docs/source-sketches/` | Original supplied shorthand interfaces |
|
| 112 |
+
| `.github/workflows/` | Idris and ATS/SPARK/combined validation jobs |
|
| 113 |
+
|
| 114 |
+
## Contribute, report, and support
|
| 115 |
+
|
| 116 |
+
- [Contributing](CONTRIBUTING.md): meaningful changes, proof obligations, and review criteria.
|
| 117 |
+
- [Security](SECURITY.md): private reporting and supported scope.
|
| 118 |
+
- [Licensing](LICENSING.md): current licensing status and provenance boundaries.
|
| 119 |
+
- [Commercial licensing](COMMERCIAL-LICENSING.md): inquiries and required agreement details.
|
| 120 |
+
- [Support and donations](SUPPORT.md): ways to help; payment destination is awaiting confirmation.
|
| 121 |
+
- [v1.0.0 release notes](docs/releases/v1.0.0.md) and [changelog](CHANGELOG.md).
|
| 122 |
+
|
| 123 |
+
The cover and supporting photographs are AI-generated conceptual illustrations,
|
| 124 |
+
not proof evidence or screenshots of an implemented interpreter. Image provenance
|
| 125 |
+
and the exact generation prompts are in [the asset notes](docs/assets/README.md).
|
| 126 |
+
|
| 127 |
+
---
|
| 128 |
+
|
| 129 |
+
### 💼 Commercial License
|
| 130 |
+
|
| 131 |
+
This repository is published under **a proprietary source-visible license**. Building a commercial product or service? A **proprietary commercial license** from Snapkitty Collective LLC lets you ship this code on terms other than a proprietary source-visible license.
|
| 132 |
+
|
| 133 |
+
**[→ Get a commercial license](mailto:A.parr@belespritdaccord.uk?subject=Commercial%20license:%20unlambda-idris-spark)** · A.parr@belespritdaccord.uk
|