Skip to content

feat: Haec — trope-particularity language front-end (grammar, elaboration, examples)#1

Merged
hyperpolymath merged 4 commits into
mainfrom
feat/trope-build
Jun 22, 2026
Merged

feat: Haec — trope-particularity language front-end (grammar, elaboration, examples)#1
hyperpolymath merged 4 commits into
mainfrom
feat/trope-build

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Haec — a trope-particularity language front-end (design pass)

Builds Haec into this repo per the build brief: the first front-end that lowers
programs to the Trope IR consumed by trope-checker. Design pass — no compiler yet
(HC-5: pin meaning before implementation).

What's here

  • design/grammar.ebnf — small surface: term formers, fix, the five atomic
    effects (attenuate/predicate/drop/sever/fuse) + sugar
    (preserve/project/collapse/detach). The deceptive trio is unwritable (HC-3).
  • design/elaboration.adoc — each construct → a Trope IR edge + grade, and its
    lowering-correctness obligation (calculus O2)
    as Haec's burden (stated, not
    asserted-discharged).
  • examples/*.haec programs paired with the *.ir.json they lower to:
    faithful record → p-sufficient; survey collapse → p-insufficient (witness = the
    collapse edge); labelled aggregate fuse → p-sufficient. Each round-trips through
    the real trope-checker
    (schema-valid + expected verdict). just check validates
    standalone against the vendored IR schema.
  • compiler/ and lsp/ scaffolded with STATUS.adoc as named future work; docs
    (README/EXPLAINME/AUDIT/AFFIRMATION/ADR-0002) + a trope-check CI job.

Verified

just check → 3/3 examples lower to valid Trope IR. Round-trip verdicts confirmed
against trope-checker (just haec-roundtrip).

Boundaries

Haec is one IR producer among many; it defines neither the checker (HC-1) nor the
vocabulary. Lowering correctness is Haec's obligation, per construct (deferred,
named). Code = MPL-2.0, prose docs = CC-BY-SA-4.0. Inherited estate CI may be red on
infra unrelated to this change; the trope-check job is the relevant signal.

Draft for review — not for merge yet. Depends conceptually on
hyperpolymath/trope-checker#1 (the IR + checker).

design/grammar.ebnf (term formers, fix, 5 atomic effects + sugar); design/
elaboration.adoc (each construct → Trope IR edge + grade + its O2 lowering
obligation); vendored design/trope-ir.schema.json (the IR contract Haec targets).
…ecker

examples/*.haec with their *.ir.json; faithful record → p-sufficient, survey
collapse → p-insufficient (witness=collapse), labelled fuse → p-sufficient. Each
round-trips through trope-checker; tests/check-examples.py validates standalone.
Haec as one IR-producing front-end (not the checker, not the vocabulary); honest
design-pass snapshot; compiler/ and lsp/ scaffolded as named future work.
De-template; identity; root-allow (design/, compiler/, lsp/, LICENSES/); LICENSES
(MPL-2.0 + CC-BY-SA-4.0); Justfile import of build/just/trope.just (check).
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@hyperpolymath
hyperpolymath marked this pull request as ready for review June 22, 2026 08:54
@hyperpolymath
hyperpolymath merged commit 75cbc2c into main Jun 22, 2026
17 of 23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants