Follow-up work to the Source Downgrading paper (Carboni 2026). This repository carries forward the source class lattice and the inscription rule — derived trust cannot exceed input trust, with inference as the upper bound — and extends them along the four directions the paper's Section Future Work sets out.
The paper's deterministic conformance fixture, embedding-noise sweep, and
139-session adversarial-reload benchmark are not redone here; they are the
load-bearing prior that this work assumes. The foundation lives in the
sibling repository
carboni123/source_downgrading
(linked in CITATION.cff).
Derived trust cannot exceed input trust. The act of derivation itself imposes infer as the upper bound.
Formally, for inscription of a derived record with contributors
r_1, ..., r_n:
src(Inscribe(derived)) <= min(src(r_1), ..., src(r_n), infer)
This is the integrity-meet rule of lattice-based IFC, adapted to the source
class lattice fabricated < simulation < infer < retrieved < tool < ext.
Every extension in this repository preserves the meet; only the valuation
the meet operates on is enriched.
| Module | Paper § | Direction |
|---|---|---|
fgm.extensions.per_record_valuation |
Future Work 1 | Lift trust from per-class rank to per-record valuation tau : R -> [0,1] under class-consistency intervals [tau-_c, tau+_c]. Named in the paper as the next step. |
fgm.extensions.time_varying_credibility |
Future Work 3 | Keep source labels monotone; let credibility vary independently. Discredited ext stays ext but loses credibility; confirmed infer stays infer with higher credibility. |
fgm.extensions.context_dependent_valuation |
Future Work 2 | Generalize the valuation to tau(r, ctx) so the active task/role/query supplies the order. Context transitions must be explicit; the meet is computed at fixed context. |
fgm.extensions.label_transport |
Future Work 4 | Specify signed provenance envelopes and verified import policies so labels survive crossing agent or service boundaries. |
The order matches the paper's stated order of work: per-record valuation first, then time-varying credibility, then context-dependent ordering, with cross-agent transport downstream of both.
src/fgm/ Foundation: lattice + inscription core
core.py, inscription.py, laundering.py, source_inference.py,
correction.py, coupling.py, residual.py, self_index.py, metrics.py
src/fgm/extensions/ The four future-work extensions
per_record_valuation.py
context_dependent_valuation.py
time_varying_credibility.py
label_transport.py
src/trace_memory/ Public memory API the rule is wired into
src/trace_probes/ Lightweight conformance probes
tests/architecture/ Tests of the foundation (core, laundering,
source inference, trace probes)
tests/trace_memory/ Tests of the public memory API
tests/extensions/ Tests of the four extensions (scaffold)
docs/ROADMAP.md Plan of attack, derived from paper §Future Work
docs/trace-memory-library.md Public API reference
examples/trace_memory/ Walkthrough demos against the public API
The paper sources, paper-tied benchmark harnesses, LLM-in-the-loop experiment runners, and committed result files were stripped on the initial reshape. They remain available in the foundation repository.
Each extension has a companion manuscript under papers/:
| Extension | Manuscript | Status |
|---|---|---|
| Per-record trust valuation | papers/Per_Record_Trust_Valuation_pre.tex |
Preprint-ready |
| Time-varying credibility | papers/Time_Varying_Credibility_pre.tex |
Preprint-ready |
| Context-dependent valuation | papers/Context_Dependent_Valuation_pre.tex |
Preprint-ready |
| Label transport | papers/Label_Transport_draft.tex |
Draft, final polishing pass pending |
Each preprint is self-contained: definitions, threat models, propositions,
and an executable conformance fixture under benchmarks/ whose generated
JSON summaries live in results/architecture/.
python -m pip install -e ".[dev]"Optional heavy dependencies (only required by specific extension work):
python -m pip install -e ".[llm,embeddings,source-classifier]"python -m pytest tests -m "not live"Foundation, extension, and public-API tests all run from the same suite (315 tests, all green at publication time).
Each extension ships a single orchestrator script that regenerates its JSON summaries and the SHA-256 manifest:
python benchmarks/per_record_valuation.py
python benchmarks/time_varying_credibility_all.py
python benchmarks/context_dependent_valuation_all.py
python benchmarks/label_transport_all.pyResults are written to results/architecture/*_summary.json,
*_multiseed_summary.json, *_properties_summary.json (where applicable),
*_mutation_summary.json (where applicable), and one
*_artifact_manifest.json per extension recording git commit, dirty-tree
flag, Python version, dependency-manifest hash, and per-file SHA-256.
pdflatex -interaction=nonstopmode -halt-on-error -output-directory=papers papers\Label_Transport_draft.tex
pdflatex -interaction=nonstopmode -halt-on-error -output-directory=papers papers\Label_Transport_draft.texTwo passes resolve cross-references and the internal thebibliography.
The other manuscripts compile the same way; substitute the _pre.tex
filename.
The four-paper chain and its companion code are stable at publication.
The integrity-meet rule of the foundation paper is the non-negotiable
invariant; every extension preserves it and only enriches the valuation
it operates on. Label_Transport_draft.tex is the one manuscript still
slated for a final polishing pass before reclassification to _pre.
MIT, inherited from the foundation repository.