se-interpretive-kernel 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- se_interpretive_kernel-0.1.0/.gitignore +369 -0
- se_interpretive_kernel-0.1.0/CHANGELOG.md +137 -0
- se_interpretive_kernel-0.1.0/CITATION.cff +51 -0
- se_interpretive_kernel-0.1.0/LICENSE +21 -0
- se_interpretive_kernel-0.1.0/PKG-INFO +261 -0
- se_interpretive_kernel-0.1.0/README.md +227 -0
- se_interpretive_kernel-0.1.0/SE_MANIFEST.toml +103 -0
- se_interpretive_kernel-0.1.0/pyproject.toml +157 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/__init__.py +7 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/_version.py +24 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/artifact.py +76 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/cases.py +120 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/check.py +293 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/cli.py +5 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/demand.py +66 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/differences.py +69 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/explain.py +224 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/generated.py +100 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/kernel.py +52 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/lifting.py +374 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/literal.py +87 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/loader.py +238 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/partition.py +363 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/probes.py +124 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/sampling.py +36 -0
- se_interpretive_kernel-0.1.0/src/se_interpretive_kernel/witness.py +69 -0
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
# ============================================================
|
|
2
|
+
# .gitignore (ALL-REPOS)
|
|
3
|
+
# ============================================================
|
|
4
|
+
# Updated: 2026-10-11
|
|
5
|
+
#
|
|
6
|
+
# WHAT: A Git configuration file that identifies files and directories
|
|
7
|
+
# that should not be included in the repository's version history.
|
|
8
|
+
# Git uses this file to determine which untracked files to ignore.
|
|
9
|
+
#
|
|
10
|
+
# WHEN: Use in professional repositories managed with Git.
|
|
11
|
+
# Git automatically applies these rules when working with files.
|
|
12
|
+
#
|
|
13
|
+
# WHY: Version the files we create and maintain for this project.
|
|
14
|
+
# Avoid tracking downloaded dependencies, generated output,
|
|
15
|
+
# temporary files, local settings, and sensitive information.
|
|
16
|
+
# Other projects maintain the source code and version history
|
|
17
|
+
# of their own dependencies.
|
|
18
|
+
#
|
|
19
|
+
# HOW: List file and directory patterns below.
|
|
20
|
+
# Patterns work across different languages, tools, and project types.
|
|
21
|
+
# Sections are organized by purpose for easier maintenance.
|
|
22
|
+
#
|
|
23
|
+
# In VS Code, open the 'Outline view' in the Explorer sidebar to
|
|
24
|
+
# see and navigate the different sections of this file.
|
|
25
|
+
# Requires the recommended 'Comment Section Outline' extension
|
|
26
|
+
# (see .vscode/extensions.json).
|
|
27
|
+
#
|
|
28
|
+
# TOOLS: Git tracks changes to project files and maintains version history.
|
|
29
|
+
# .gitignore controls which untracked files Git ignores.
|
|
30
|
+
#
|
|
31
|
+
# SKILLS: Git, version control, repository management,
|
|
32
|
+
# file patterns, dependency management, and project maintenance.
|
|
33
|
+
#
|
|
34
|
+
# REQ: All professional GitHub project repositories MUST include .gitignore.
|
|
35
|
+
# REQ: Never commit secrets or private credentials.
|
|
36
|
+
#
|
|
37
|
+
# OBS: .gitignore does not remove files already tracked by Git.
|
|
38
|
+
# OBS: Dependency manifests and lockfiles should generally be committed
|
|
39
|
+
# even when downloaded dependencies are ignored.
|
|
40
|
+
# OBS: Patterns for unused tools or languages are generally harmless.
|
|
41
|
+
#
|
|
42
|
+
# ALT: Repositories may customize ignores while preserving safety rules.
|
|
43
|
+
# CUSTOM: Delete sections that are not needed for the project.
|
|
44
|
+
# CUSTOM: Add project-specific patterns when necessary.
|
|
45
|
+
#
|
|
46
|
+
# ============================================================
|
|
47
|
+
# === INTRO: How .gitignore patterns work ===
|
|
48
|
+
# ============================================================
|
|
49
|
+
# NOTE: .gitignore uses glob-style patterns, not regular expressions.
|
|
50
|
+
#
|
|
51
|
+
# /name
|
|
52
|
+
# WHY: A leading slash anchors the pattern to the directory containing this
|
|
53
|
+
# .gitignore file. In a repository-root .gitignore, /name matches only name
|
|
54
|
+
# at the repository root.
|
|
55
|
+
# EXAMPLE: /pyproject.toml.ruff ignores only the root-level temporary fragment.
|
|
56
|
+
#
|
|
57
|
+
# name/
|
|
58
|
+
# WHY: A trailing slash means the pattern matches directories, not files.
|
|
59
|
+
# EXAMPLE: bin/ ignores directories named bin and their contents.
|
|
60
|
+
#
|
|
61
|
+
# *.ext
|
|
62
|
+
# WHY: An asterisk (*) matches any number of characters within one path component.
|
|
63
|
+
# EXAMPLE: *.log ignores files ending in .log.
|
|
64
|
+
#
|
|
65
|
+
# **
|
|
66
|
+
# WHY: A double asterisk (**) can match across directory levels.
|
|
67
|
+
# EXAMPLE: **/src/**/_version.py matches generated _version.py files inside
|
|
68
|
+
# src trees regardless of repository depth or package name.
|
|
69
|
+
#
|
|
70
|
+
# ?
|
|
71
|
+
# WHY: A question mark (?) matches exactly one character within a path component.
|
|
72
|
+
# EXAMPLE: temp?.txt matches temp1.txt and tempa.txt, but not temp10.txt.
|
|
73
|
+
#
|
|
74
|
+
# [abc]
|
|
75
|
+
# WHY: Square brackets match one character from the listed set or range.
|
|
76
|
+
# EXAMPLE: file[0-9].txt matches file0.txt through file9.txt.
|
|
77
|
+
#
|
|
78
|
+
# !pattern
|
|
79
|
+
# WHY: An exclamation point (!) negates an earlier ignore rule and re-includes
|
|
80
|
+
# a matching file when its parent directory has not itself been excluded.
|
|
81
|
+
# EXAMPLE: !.env.example keeps the safe example file even though .env.* is ignored.
|
|
82
|
+
#
|
|
83
|
+
# # text
|
|
84
|
+
# WHY: A leading # makes the line a comment unless the # is escaped.
|
|
85
|
+
#
|
|
86
|
+
# NOTE: Prefer the narrowest pattern that expresses the intent.
|
|
87
|
+
# Anchored patterns such as /name are safer when
|
|
88
|
+
# only a repository-root file should be ignored.
|
|
89
|
+
# ============================================================
|
|
90
|
+
|
|
91
|
+
# ============================================================
|
|
92
|
+
# === SECTION: UNIVERSAL ===
|
|
93
|
+
# ============================================================
|
|
94
|
+
|
|
95
|
+
# === Environment variables and secrets ===
|
|
96
|
+
|
|
97
|
+
# WHY: Never commit credentials or environment-specific configuration.
|
|
98
|
+
*.env
|
|
99
|
+
.env
|
|
100
|
+
.env.*
|
|
101
|
+
|
|
102
|
+
# WHY: Commit .env.example as a safe template showing which variables to set.
|
|
103
|
+
# NOTE: Copy .env.example to .env locally and customize the local copy.
|
|
104
|
+
!.env.example
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
# === Private notes and local-only files ===
|
|
108
|
+
|
|
109
|
+
# WHY: Private working notes should remain local unless intentionally published.
|
|
110
|
+
PRIVATE-NOTES.md
|
|
111
|
+
PRIVATE_NOTES.md
|
|
112
|
+
|
|
113
|
+
# WHY: The root-level refs directory holds local reference papers and source
|
|
114
|
+
# materials that should be cited or linked to rather than committed.
|
|
115
|
+
# NOTE: The leading slash limits this rule to the repository-root refs directory.
|
|
116
|
+
# ALT: Commit only reference material that is intentionally redistributable and
|
|
117
|
+
# appropriate to include in the repository.
|
|
118
|
+
/refs/
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
# === Operating-system files ===
|
|
122
|
+
|
|
123
|
+
# WHY: OS-generated metadata files are machine-specific and should not be tracked.
|
|
124
|
+
.AppleDouble
|
|
125
|
+
.DS_Store
|
|
126
|
+
.LSOverride
|
|
127
|
+
.Spotlight-V100/
|
|
128
|
+
.Trashes
|
|
129
|
+
._*
|
|
130
|
+
Icon\r
|
|
131
|
+
Thumbs.db
|
|
132
|
+
desktop.ini
|
|
133
|
+
ehthumbs.db
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
# === Editors and IDEs ===
|
|
137
|
+
|
|
138
|
+
# WHY: IDE metadata is generally machine-local and should not be tracked.
|
|
139
|
+
*.code-workspace
|
|
140
|
+
.idea/
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
# === VS Code ===
|
|
144
|
+
|
|
145
|
+
# WHY: Ignore editor state by default while allowing shared project configuration.
|
|
146
|
+
# NOTE: Use .vscode/* (contents), not .vscode/ (directory). Git will not
|
|
147
|
+
# re-include a file whose parent directory is excluded.
|
|
148
|
+
.vscode/*
|
|
149
|
+
!.vscode/ABOUT_THIS_FOLDER.md
|
|
150
|
+
!.vscode/extensions.json
|
|
151
|
+
!.vscode/settings.json
|
|
152
|
+
!.vscode/launch.json
|
|
153
|
+
!.vscode/tasks.json
|
|
154
|
+
!.vscode/*.code-snippets
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
# === Temporary, lock, and swap files ===
|
|
158
|
+
|
|
159
|
+
# WHY: Temporary and swap files are machine-local noise and create meaningless diffs.
|
|
160
|
+
*.swo
|
|
161
|
+
*.swp
|
|
162
|
+
*.tmp
|
|
163
|
+
*~
|
|
164
|
+
|
|
165
|
+
# WHY: Microsoft Office creates temporary owner/lock files beside open documents.
|
|
166
|
+
# NOTE: These patterns cover Word, Excel, and PowerPoint temporary files without
|
|
167
|
+
# ignoring the actual Office documents.
|
|
168
|
+
~$*.doc*
|
|
169
|
+
~$*.xls*
|
|
170
|
+
~$*.ppt*
|
|
171
|
+
|
|
172
|
+
# WHY: LibreOffice and OpenOffice create temporary lock files beside open documents.
|
|
173
|
+
.~lock.*#
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
# === Logs and generated runtime output ===
|
|
177
|
+
|
|
178
|
+
# WHY: Ignore logs and runtime output by default.
|
|
179
|
+
# ALT: Explicitly re-include a specific log only when it is intentionally used
|
|
180
|
+
# as project evidence.
|
|
181
|
+
*.log
|
|
182
|
+
logs/
|
|
183
|
+
# !/project.log
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
# === Generic caches ===
|
|
187
|
+
|
|
188
|
+
# WHY: Generic caches are machine-local and should not be tracked.
|
|
189
|
+
.cache/
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
# === Generic bin (binary) folder ===
|
|
193
|
+
|
|
194
|
+
# WHY: The root-level bin directory contains generated executable or build output.
|
|
195
|
+
# NOTE: The leading slash limits this rule to the repository-root bin directory
|
|
196
|
+
# and avoids ignoring a nested source directory that happens to be named bin.
|
|
197
|
+
/bin/
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
# ============================================================
|
|
201
|
+
# === SECTION: PROJECT DOCS ===
|
|
202
|
+
# ============================================================
|
|
203
|
+
|
|
204
|
+
# WHY: Static site build output is generated from the documentation source.
|
|
205
|
+
# NOTE: Zensical uses site/ as the generated site output directory.
|
|
206
|
+
site/
|
|
207
|
+
|
|
208
|
+
# ============================================================
|
|
209
|
+
# === SECTION: PYTHON ===
|
|
210
|
+
# ============================================================
|
|
211
|
+
|
|
212
|
+
# === Python environments ===
|
|
213
|
+
|
|
214
|
+
# WHY: Virtual environments are machine-local and reproducible from project files.
|
|
215
|
+
.venv/
|
|
216
|
+
venv/
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
# === Python project state ===
|
|
220
|
+
|
|
221
|
+
# REQ: Do NOT git ignore .python-version.
|
|
222
|
+
# WHY: Commit .python-version to declare the Python version used by the project.
|
|
223
|
+
|
|
224
|
+
# REQ: Do NOT git ignore uv.lock.
|
|
225
|
+
# WHY: Commit uv.lock to preserve the resolved dependency environment and use it
|
|
226
|
+
# in CI/CD pipelines.
|
|
227
|
+
|
|
228
|
+
# WHY: Generated SCM version modules should not be tracked.
|
|
229
|
+
# NOTE: This recursive pattern works regardless of repository depth or package name.
|
|
230
|
+
**/src/**/_version.py
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
# === Python bytecode ===
|
|
234
|
+
|
|
235
|
+
# WHY: Python bytecode is generated automatically and is machine-specific.
|
|
236
|
+
*.pyc
|
|
237
|
+
*.pyd
|
|
238
|
+
*.pyo
|
|
239
|
+
__pycache__/
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
# === Python build and packaging artifacts ===
|
|
243
|
+
|
|
244
|
+
# WHY: Build and packaging artifacts are generated from project source.
|
|
245
|
+
*.egg
|
|
246
|
+
*.egg-info/
|
|
247
|
+
*.whl
|
|
248
|
+
.eggs/
|
|
249
|
+
build/
|
|
250
|
+
dist/
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
# === Python testing and coverage output ===
|
|
254
|
+
|
|
255
|
+
# WHY: Test and coverage reports are generated and can be reproduced.
|
|
256
|
+
.coverage
|
|
257
|
+
.coverage.*
|
|
258
|
+
.pytest_cache/
|
|
259
|
+
htmlcov/
|
|
260
|
+
coverage.xml
|
|
261
|
+
coverage.json
|
|
262
|
+
coverage.lcov
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
# === Python tooling caches ===
|
|
266
|
+
|
|
267
|
+
# WHY: Tooling caches improve local performance but should not be tracked.
|
|
268
|
+
.mypy_cache/
|
|
269
|
+
.pytype/
|
|
270
|
+
.ruff_cache/
|
|
271
|
+
.tox/
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
# === Python notebooks and marimo ===
|
|
275
|
+
|
|
276
|
+
# WHY: Jupyter notebook checkpoint state is generated.
|
|
277
|
+
.ipynb_checkpoints/
|
|
278
|
+
|
|
279
|
+
# REQ: Do NOT git ignore layouts/ when using marimo custom layouts.
|
|
280
|
+
# WHY: Marimo layout files are project source and should be version controlled.
|
|
281
|
+
|
|
282
|
+
# REQ: Do NOT git ignore public/ when it contains source assets or data
|
|
283
|
+
# used by marimo or WASM applications.
|
|
284
|
+
# WHY: These files may be required to reproduce or publish the application.
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
# ============================================================
|
|
288
|
+
# === SECTION: NODE ===
|
|
289
|
+
# ============================================================
|
|
290
|
+
# Some tooling and projects require Node.js and its dependencies.
|
|
291
|
+
|
|
292
|
+
# WHY: Node dependencies are restored from package-lock.json with npm ci.
|
|
293
|
+
node_modules/
|
|
294
|
+
|
|
295
|
+
# REQ: Do NOT git ignore package-lock.json.
|
|
296
|
+
# WHY: Commit package-lock.json to preserve reproducible Node dependency
|
|
297
|
+
# resolution and use it in CI/CD pipelines.
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
# === Node package-manager caches ===
|
|
301
|
+
|
|
302
|
+
# WHY: Package-manager caches are machine-local and should not be tracked.
|
|
303
|
+
.npm/
|
|
304
|
+
.pnpm-store/
|
|
305
|
+
.yarn/cache/
|
|
306
|
+
.yarn/unplugged/
|
|
307
|
+
.yarn/build-state.yml
|
|
308
|
+
.yarn/install-state.gz
|
|
309
|
+
|
|
310
|
+
# ============================================================
|
|
311
|
+
# === SECTION: TYPESCRIPT AND JAVASCRIPT ===
|
|
312
|
+
# ============================================================
|
|
313
|
+
|
|
314
|
+
# === TypeScript and JavaScript build output ===
|
|
315
|
+
|
|
316
|
+
# WHY: Compiled JavaScript output is generated from TypeScript source.
|
|
317
|
+
out/
|
|
318
|
+
|
|
319
|
+
# WHY: TypeScript incremental build metadata is generated.
|
|
320
|
+
*.tsbuildinfo
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
# === TypeScript and JavaScript tooling caches ===
|
|
324
|
+
|
|
325
|
+
# WHY: Tooling caches and generated coverage output should not be tracked.
|
|
326
|
+
.eslintcache
|
|
327
|
+
.nyc_output/
|
|
328
|
+
coverage/
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
# === VS Code extension test and package output ===
|
|
332
|
+
|
|
333
|
+
# WHY: VS Code extension test-host files are generated by @vscode/test-electron.
|
|
334
|
+
.vscode-test/
|
|
335
|
+
|
|
336
|
+
# WHY: VSIX packages are generated release artifacts.
|
|
337
|
+
*.vsix
|
|
338
|
+
|
|
339
|
+
# ============================================================
|
|
340
|
+
# === SECTION: COMPUTER-CHECKED MATHEMATICAL PROOFS (LEAN) ===
|
|
341
|
+
# ============================================================
|
|
342
|
+
|
|
343
|
+
# === Lean ===
|
|
344
|
+
|
|
345
|
+
# WHAT: Lean is a programming language and proof assistant used to
|
|
346
|
+
# express mathematical definitions, theorems, and proofs.
|
|
347
|
+
# It can also verify properties of software and logical systems.
|
|
348
|
+
# Lean checks whether formal proofs satisfy their stated rules.
|
|
349
|
+
#
|
|
350
|
+
# WHY: Lake, Lean's project and build tool, generates build files
|
|
351
|
+
# and downloads dependencies that do not need to be committed.
|
|
352
|
+
.lake/
|
|
353
|
+
lake-packages/
|
|
354
|
+
/docbuild/
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
# ============================================================
|
|
358
|
+
# === SECTION: CUSTOM GENERATED ARTIFACTS ===
|
|
359
|
+
# ============================================================
|
|
360
|
+
|
|
361
|
+
# === Generated files for supported repositories ===
|
|
362
|
+
|
|
363
|
+
# WHY: Generated analytics and guide-context artifacts should be rebuilt rather
|
|
364
|
+
# than committed.
|
|
365
|
+
# NOTE: These entries are harmless in repositories that do not generate them.
|
|
366
|
+
docs/assets/data/view-analytics.json
|
|
367
|
+
docs/assets/data/guide-context.json
|
|
368
|
+
# marimo WASM export; built at deploy time, not committed
|
|
369
|
+
docs/app/
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
<!-- markdownlint-disable MD024 -->
|
|
4
|
+
|
|
5
|
+
All notable changes to this project will be documented in this file.
|
|
6
|
+
|
|
7
|
+
The format is based on **[Keep a Changelog](https://keepachangelog.com/en/1.1.0/)**
|
|
8
|
+
and this project adheres to **[Semantic Versioning](https://semver.org/spec/v2.0.0.html)**.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## [Unreleased]
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## [0.1.0] - 2026-10-31
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- Added the initial Python package, the executable companion to the Lean
|
|
21
|
+
library `se-theory-interpretive-kernel`.
|
|
22
|
+
- Added the finite partition algebra and the comparison lifting protocol with
|
|
23
|
+
the three cost laws and their validators.
|
|
24
|
+
- Added the finite artifact: frames, outputs, probes, and a total
|
|
25
|
+
interpretation table.
|
|
26
|
+
- Added the interpretation-induced kernel, coherence, the generated occurrence
|
|
27
|
+
regime, and the interpretive threshold.
|
|
28
|
+
- Added finite incompatibility witnesses and pairwise interpretive demand with
|
|
29
|
+
the generalized ultrametric laws.
|
|
30
|
+
- Added an independent pair-set oracle for the partition-based
|
|
31
|
+
implementation.
|
|
32
|
+
- Added finite cases mirroring the Lean examples.
|
|
33
|
+
- Added exhaustive law checks over every probe family and every pair of
|
|
34
|
+
regimes, and seeded random artifacts, run by the command-line interface.
|
|
35
|
+
- Added documentation, CI, release automation, and the repository manifest.
|
|
36
|
+
- Added probe sensitivity: separating probes, load-bearing probes, minimal
|
|
37
|
+
probe sets, and the threshold each probe forces alone.
|
|
38
|
+
- Added derivations for forced identifications: the chain of probes and frame
|
|
39
|
+
pairs that connects two outputs in the threshold.
|
|
40
|
+
- Added a loader that builds an artifact and a frame regime from tabular data,
|
|
41
|
+
with declared handling of empty cells.
|
|
42
|
+
- Added a report of the differences between two frame regimes.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Notes on Versioning and Releases
|
|
47
|
+
|
|
48
|
+
- We use **SemVer**:
|
|
49
|
+
- **MAJOR** - breaking changes
|
|
50
|
+
- **MINOR** - backward-compatible features
|
|
51
|
+
- **PATCH** - fixes, documentation, tests, tooling
|
|
52
|
+
- Versions are driven by git tags. Tag `vX.Y.Z` to release.
|
|
53
|
+
- Docs are deployed per version tag and aliased to **latest**.
|
|
54
|
+
|
|
55
|
+
## Release Procedure (Required)
|
|
56
|
+
|
|
57
|
+
Follow these steps exactly when creating a new release.
|
|
58
|
+
|
|
59
|
+
### Task 1. Update release metadata (manual edits)
|
|
60
|
+
|
|
61
|
+
1.1. `CITATION.cff` - update `version` and `date-released`
|
|
62
|
+
1.2. `CHANGELOG.md` - add section, move unreleased entries, update links
|
|
63
|
+
1.3. `pyproject.toml` - update build system `fallback-version`
|
|
64
|
+
1.4. `codemeta.json` - update `version` and `datePublished`
|
|
65
|
+
|
|
66
|
+
### Task 2. Validate
|
|
67
|
+
|
|
68
|
+
```pwsh
|
|
69
|
+
.\sit.ps1
|
|
70
|
+
|
|
71
|
+
uv lock
|
|
72
|
+
foreach ($v in '3.12','3.13','3.14','3.15') {
|
|
73
|
+
Write-Host "=== Python $v"
|
|
74
|
+
uv run --isolated --frozen --python $v --no-default-groups --group dev python -m pytest -q
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
uvx gha-tools autoupdate --pin=all --write .github/workflows
|
|
78
|
+
|
|
79
|
+
uvx zizmor@latest .github/
|
|
80
|
+
# suppressed and informational are okay
|
|
81
|
+
|
|
82
|
+
uvx cffconvert --validate
|
|
83
|
+
uvx se-manifest-schema validate-manifest --strict
|
|
84
|
+
|
|
85
|
+
# This may take a little time
|
|
86
|
+
uv run se-interpretive-kernel --random 2000 --seed 0
|
|
87
|
+
|
|
88
|
+
uv run python -c "import shutil; from pathlib import Path; shutil.rmtree(Path('dist'), ignore_errors=True)"
|
|
89
|
+
|
|
90
|
+
uv build
|
|
91
|
+
uvx twine check --strict dist/*
|
|
92
|
+
|
|
93
|
+
uv run python -c "import pathlib, zipfile; wheels=list(pathlib.Path('dist').glob('*.whl')); assert wheels, 'No wheel found'; wheel=wheels[-1]; names=zipfile.ZipFile(wheel).namelist(); packaged=[n for n in names if n.startswith('se_interpretive_kernel/')]; print(packaged); assert packaged, 'Package files missing from wheel'"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Task 3. Commit, push, tag
|
|
97
|
+
|
|
98
|
+
```shell
|
|
99
|
+
git add -A
|
|
100
|
+
git commit -m "Prepare X.Y.Z"
|
|
101
|
+
git push -u origin main
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Verify actions run on GitHub. After success:
|
|
105
|
+
|
|
106
|
+
```shell
|
|
107
|
+
git tag vX.Y.Z -m "X.Y.Z"
|
|
108
|
+
git push origin vX.Y.Z
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Task 4. Verify the Release and Zenodo archive
|
|
112
|
+
|
|
113
|
+
The release workflow creates a GitHub Release automatically.
|
|
114
|
+
To verify:
|
|
115
|
+
|
|
116
|
+
```shell
|
|
117
|
+
gh release view vX.Y.Z # confirm Release exists with notes + artifacts
|
|
118
|
+
gh run list --workflow=release-pypi.yml # confirm the workflow succeeded
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Confirm Zenodo shows a new version-specific DOI for this release
|
|
122
|
+
and that it remains linked under the
|
|
123
|
+
repository's concept DOI recorded in `CITATION.cff`.
|
|
124
|
+
|
|
125
|
+
## Only As Needed (delete a tag)
|
|
126
|
+
|
|
127
|
+
```shell
|
|
128
|
+
git tag -d vX.Y.Z
|
|
129
|
+
git push origin :refs/tags/vX.Y.Z
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Links
|
|
133
|
+
|
|
134
|
+
[Unreleased]: https://github.com/structural-explainability/se-interpretive-kernel/compare/v0.1.0...HEAD
|
|
135
|
+
[0.1.0]: https://github.com/structural-explainability/se-interpretive-kernel/releases/tag/v0.1.0
|
|
136
|
+
|
|
137
|
+
<!-- markdownlint-enable MD024 -->
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# ============================================================
|
|
2
|
+
# CITATION.cff (How to cite this project)
|
|
3
|
+
# ============================================================
|
|
4
|
+
# REQ.UNIVERSAL: Professional open projects SHOULD include this file.
|
|
5
|
+
# May reference upstream dependencies, but must not refer to downstream.
|
|
6
|
+
# USAGE: See https://citation-file-format.github.io/ for details.
|
|
7
|
+
# check with:
|
|
8
|
+
# uvx cffconvert --validate
|
|
9
|
+
|
|
10
|
+
cff-version: "1.2.0"
|
|
11
|
+
type: software
|
|
12
|
+
message: "If you use this work, please cite it using the metadata in this file."
|
|
13
|
+
|
|
14
|
+
title: "Structural Explainability Verification: Interpretive Kernel"
|
|
15
|
+
version: "0.1.0"
|
|
16
|
+
date-released: "2026-10-31"
|
|
17
|
+
|
|
18
|
+
authors:
|
|
19
|
+
- family-names: Case
|
|
20
|
+
given-names: Denise M.
|
|
21
|
+
orcid: "https://orcid.org/0000-0001-6165-7389"
|
|
22
|
+
affiliation: "Northwest Missouri State University, School of Computer Science and Information Systems, Maryville, MO, USA"
|
|
23
|
+
|
|
24
|
+
repository-code: "https://github.com/structural-explainability/se-interpretive-kernel"
|
|
25
|
+
url: "https://github.com/structural-explainability/se-interpretive-kernel"
|
|
26
|
+
|
|
27
|
+
license: MIT
|
|
28
|
+
|
|
29
|
+
abstract: >
|
|
30
|
+
A Python implementation and verification harness for the finite
|
|
31
|
+
interpretive kernel of Structural Explainability.
|
|
32
|
+
Given finite frames, outputs, and probes with a total interpretation,
|
|
33
|
+
the software computes the interpretation-induced kernel of an output
|
|
34
|
+
regime, the generated occurrence regime and interpretive threshold of a
|
|
35
|
+
frame regime, finite incompatibility witnesses, and pairwise interpretive
|
|
36
|
+
demand.
|
|
37
|
+
It checks the adjunction between kernel and generated regime, their
|
|
38
|
+
preservation properties, and the laws a comparison lifting must satisfy,
|
|
39
|
+
exhaustively on small cases and on seeded random artifacts, against an
|
|
40
|
+
independent pair-set oracle.
|
|
41
|
+
|
|
42
|
+
keywords:
|
|
43
|
+
- structural-explainability
|
|
44
|
+
- interpretive-kernel
|
|
45
|
+
- interpretation
|
|
46
|
+
- equivalence-relations
|
|
47
|
+
- partitions
|
|
48
|
+
- refinement
|
|
49
|
+
- galois-connection
|
|
50
|
+
- verification
|
|
51
|
+
- differential-testing
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Denise Case
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|