Skip to content

Commit bbcfb35

Browse files
committed
docs: add OpenSSF Best Practices registration badge
1 parent d9bc779 commit bbcfb35

1 file changed

Lines changed: 40 additions & 8 deletions

File tree

README.md

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
[![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-pink?logo=github)](https://github.com/sponsors/hyperpolymath)
2-
3-
<!-- SPDX-License-Identifier: MPL-2.0 -->
1+
<!--
2+
SPDX-License-Identifier: MPL-2.0
3+
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
-->
45
<!-- (MPL-2.0 is the automatic legal fallback until PMPL is formally recognised.) -->
56

67
# EchoTypes.jl
8+
[![OpenSSF Best Practices](https://img.shields.io/badge/OpenSSF-Best_Practices-green?logo=openssourcesecurity)](https://www.bestpractices.dev/en/projects/new?repo_url=https://github.com/hyperpolymath/EchoTypes.jl)
9+
710

811
An **executable companion** to the Agda library
912
[`hyperpolymath/echo-types`](https://github.com/hyperpolymath/echo-types).
@@ -31,6 +34,33 @@ concrete finite data and check their stated laws numerically.
3134
(`EchoR`, with its strict non-recoverability witness), and the
3235
**finite-domain** Landauer/Bennett *bound shapes*.
3336

37+
## Semantic fibre in finite domains
38+
39+
The Agda repository is the formal source of truth. This package is the
40+
executable finite-domain shadow: it lets you compute concrete
41+
preimage fibres and inspect what they would license in examples.
42+
43+
In this companion, a **semantic fibre** is usually the vector returned
44+
by `fiber(f, domain, y)`: the finite set of witnesses `x` in `domain`
45+
such that `f(x) == y`. A value is being used **avec fibre** when that
46+
declared map/domain/output triple accompanies it. A value is **sans
47+
fibre** when it is only known as a target-side value; no source-side
48+
origin constraint follows from the value alone.
49+
50+
```julia
51+
using EchoTypes
52+
53+
collapse = isodd
54+
avec = fiber(collapse, -2:2, true) # declared map + domain
55+
Set(w.x for w in avec) == Set([-1, 1]) # possible origins
56+
57+
target_only = true # just a Bool: sans fibre
58+
```
59+
60+
Finite examples can demonstrate nontrivial constraints on possible
61+
origins and can falsify over-specific claims by counterexample. They
62+
do not establish proof obligations; those belong upstream in Agda.
63+
3464
## Source of truth
3565

3666
The Agda. This release mirrors `hyperpolymath/echo-types` at
@@ -144,9 +174,10 @@ julia> fiber_erasure_bound(_ -> 0, 0:15, 0, 7) # full-collapse Landauer bound
144174
julia --project=. -e 'using Pkg; Pkg.test()'
145175
```
146176

147-
Every testset is the finite shadow of a named Agda lemma; the suite
148-
must stay green and is the only correctness claim this package makes
149-
about itself.
177+
The testsets are finite shadows of named Agda lemmas, plus the small
178+
semantic-fibre vocabulary exercise over the kernel. The suite must stay
179+
green and is the only correctness claim this package makes about
180+
itself.
150181

151182
## Status
152183

@@ -158,8 +189,9 @@ audience-facing spine that landed upstream on 2026-05-27/28
158189
(`EchoProvenance`, `EchoSecurity`, `EchoProbabilisticSupport`,
159190
`EchoDifferential`) plus the cementing-negative `EchoLLEncoding`
160191
(LL shallow-encoding gap with paired source-side no-section).
161-
Test suite: **253 passing assertions across 18 testsets**, each
162-
the finite shadow of a named Agda lemma. Registered as
192+
Test suite: **258 passing assertions across 19 testsets**, organised as
193+
finite shadows of named Agda lemmas plus the semantic-fibre
194+
vocabulary exercise over the kernel. Registered as
163195
`EchoTypes` in the hyperpolymath professional registry; **not**
164196
registered in the Julia General registry and intentionally **not**
165197
part of the AcceleratorGate→KnotTheory→Skein→KRLAdapter chain — it

0 commit comments

Comments
 (0)