feat: forget-witness-encoding-has-section — universal LL-encoding gap#257
Merged
Conversation
Strengthens EchoLLEncoding's existence theorem (`ll-encoding-gap`, the trivial ⊤-shadow) to the UNIVERSAL form over the forget-witness class: every shallow LL encoding whose `X linear` is a proposition (no inhabitant-level witness at the linear mode) admits an encoded section of `wX`. The section is the constant map at a fixed linear inhabitant `enc echo-true`, correct by forget-witness propositionality — uniform over the class, no cherry-picked carrier. - `ForgetsWitness E = (x y : X linear) → x ≡ y` — the invariant. - `forget-witness-encoding-has-section` — the universal headline. - `trivial-forgets-witness` — the ⊤-shadow is in the class. - `trivial-via-universal` — the existence form recovered from the universal one (the generalisation is checked, not asserted). Sharpens the dichotomy: forget the witness ⇒ a section always exists; keep it (`X linear` not a proposition) ⇒ no-section may be preserved, but the encoding is then no longer the standard `!A := 1` shadow. Header headline list, scope guardrail, and companion remark updated to match. `--safe --without-K`, zero postulates. 4 Smoke pins; `EchoLLEncoding` already classified (no new module). EchoLLEncoding + Smoke.agda + All.agda exit 0; kernel-guard PASS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018CaSgNjNURC7ocsyjYh9We
🔍 Hypatia Security ScanFindings: 6 issues detected
View findings[
{
"reason": "No test directory or test files found",
"type": "no_tests",
"file": "/home/runner/work/echo-types/echo-types",
"action": "flag",
"rule_module": "honest_completion",
"severity": "high",
"deduction": 20
},
{
"reason": "Nominal-only SAST in echo-types: codeql.yml language matrix contains no language present in the repo and lacks `actions`, so CodeQL records zero results on every commit. Remediation: set the CodeQL matrix to `language: actions`.",
"type": "StaticAnalysis",
"file": "/home/runner/work/echo-types/echo-types",
"action": "auto_fix",
"rule_module": "scorecard",
"severity": "medium",
"remediation": "Add CodeQL or equivalent SAST workflow.",
"scorecard_check": "SAST"
},
{
"reason": "Repository has 8 non-main remote branch(es). Policy: single main branch only.",
"type": "GS007",
"file": ".",
"action": "delete_remote_branches",
"rule_module": "git_state",
"severity": "medium"
},
{
"reason": "Code scanning (Scorecard): TokenPermissionsID -- Token-Permissions -- 18 day(s) old [STALE]",
"type": "CSA001",
"file": ".github/workflows/scorecard.yml",
"action": "escalate",
"rule_module": "code_scanning_alerts",
"severity": "high"
},
{
"reason": "Code-scanning alert TokenPermissionsID (high) at .github/workflows/scorecard.yml is 18 days old (threshold: 7 days) -- overdue for remediation",
"type": "CSA003",
"file": ".github/workflows/scorecard.yml",
"action": "escalate",
"rule_module": "code_scanning_alerts",
"severity": "high"
},
{
"reason": "Code-scanning alert hypatia/code_safety/agda_postulate dismissed as 'false positive' -- ensure dismissal is documented and justified",
"type": "CSA004",
"file": "proofs/agda/EchoImageFactorizationPropPostulated.agda",
"action": "review",
"rule_module": "code_scanning_alerts",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
hyperpolymath
pushed a commit
that referenced
this pull request
Jun 21, 2026
…rdinal-contradiction flag Catches the machine ledger up to the gap-closing proofs that landed without an arc (#249 EchoReversibilityBridge, #250 EchoResidueCell, #251/#254 EchoSearch decidable+product, #252 EchoApprox Lipschitz, #257 EchoLLEncoding universal gap, #258 proof-debt variance refresh), records the cross-repo (echo-types + 007) docs-completeness audit, and flags one unresolved owner decision: main carries ordinal BH climb rungs 7 & 8 (f89a3aa, a096764) dated 2026-06-21 — the same day as the D-2026-06-21 retirement — contradicting the retirement banner. The two ordinal wiki files are deliberately left un-fixed pending that reconciliation. Disposition: both repos clean/verified, push-nothing-else. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018CaSgNjNURC7ocsyjYh9We
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Closes the universal LL-encoding gap that
EchoLLEncodingflagged in its companion remark — strengthening the existence theoremll-encoding-gap(the trivial⊤-shadow) to a universal statement over the forget-witness class.How
The encoded analogue of
no-section-weakenwas shown to fail for one encoding. It actually fails for the whole class of witness-forgetting shadows:The section is the constant map at a fixed linear inhabitant
enc echo-true, correct because forget-witness propositionality makes everyX linearelement equal to it — uniform over the class, no cherry-picked carrier. Two companions:trivial-forgets-witness— the⊤-shadow is a member (⊤is a proposition);trivial-via-universal— the original existence form is recovered as the universal one instantiated at the trivial encoding (the generalisation is checked, not asserted).The sharpened dichotomy
X lineara proposition) ⇒ an encoded section always exists — universal.X linear, so it isn't a proposition) ⇒ no-section may be preserved, but the encoding is then no longer the standard!A := 1LL shadow.So the only way a shallow LL encoding can carry Echo's no-section discipline is to stop being a witness-forgetting shadow. Header headline list, scope guardrail, and companion remark updated to state both strengths honestly.
Discipline
--safe --without-K, zero postulates.EchoLLEncodingalready classified (lemmas added, no new module) ⇒kernel-guardPASS.main:EchoLLEncoding.agda,Smoke.agda,All.agdaall exit 0 (captured locally).🤖 Generated with Claude Code
https://claude.ai/code/session_018CaSgNjNURC7ocsyjYh9We
Generated by Claude Code