Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

ENC UI Kit

The ENC UI Kit is an algebraically-specified, manifest-driven UI layer. It renders an app from its declarative manifests into a working interface on any platform, and its state engine is a pure-functional algebra whose operations are proven in Lean to refine the spec.

How it works

The pipeline is Resolve → Apply → Render:

  1. Resolve manifests. A loader merges the app definition, pages, components, and workflow manifests into one canonical app model.
  2. Build the page tree. Routing and page gates pick the active page; data bindings ($state.field) and render_if conditionals resolve against current state.
  3. Apply actions. On a user action, a five-operation algebra — set / insert / update / delete / query — interprets the action expression and returns the next state purely, with no side effects. The same evaluator runs in Node tests and in the browser.
  4. Render. The result is a platform-agnostic tree of typed atoms (text, input, select, toggle, slider, …); each platform renderer (React, React Native, terminal, extension) maps the tree to native widgets without any logic branching.

What makes it sound

The algebra is formally specified in Lean, and every operation is proven to refine that spec — the refinement contracts verify at CI. Because the same pure algebra drives both tests and runtime, tests passing ⇒ runtime passing: there is no framework divergence to hide a bug. A lint gate forbids any unregistered component literal, freezing the component catalog so the rendered surface cannot drift from the specified one.

Figures

  • a five-operation algebra with 7 / 7 Lean refinement contracts verified
  • ~41 registered components; one evaluator shared across Node, happy-dom, and browser tiers
  • ~10 reference apps drive the matrix

See also