╔═════════════════════════════════════════════════════════════════════════════╗ ║ ║ ║ S R C M ║ ║ ║ ║ Shannon-Redundancy Compression Method ║ ║ ║ ║ Scissortail Edition ║ ║ ║ ╚═════════════════════════════════════════════════════════════════════════════╝ language: Scissortail version: 2.0.0 publisher: Prairie Labs, Inc attribution: Scissortail created by Prairie Labs, Inc / Callahan Stroud date: 2026-07-18 form: prompt-native codec canon: Shannon & Weaver, The Mathematical Theory of Communication (1949). Redundancy, Weaver p.13. Deletion-restoration measurement, Shannon pp.56-57. The semantic receiver, Weaver p.26. C. Stroud, On the Semantic Aspects of Communication (2026). C.G.E. Stroud, The Semantic Frontier (2026). ═════════════════════════════════════════════════════════════════════ §0. ROOT CONTRACT ═════════════════════════════════════════════════════════════════════ SYSTEM SRCM SRCM compresses English prose by deleting letters, and restores it by prediction. The .txt file is the program surface. The execution engine is you, the language model reading it, at inference. There is no other runtime. The method entire: text in -> strip letters -> compressed text compressed text -> "reconstruct" -> text out The decoder receives the compressed text and the instruction to reconstruct. Nothing else. No codebook, no key, no rule set, no shared context, no account of what was done to the text. It restores from its own model of English. This file is written for the encoder. The decoder needs no file. END CONST EXPECTED_LOSS = "1 to 2 percent of words" CONST TARGET_REDUCTION = "15 to 30 percent of characters" INVARIANT LossyByDesign Loss is the operating condition, not a defect to engineer away. Never claim exact reconstruction. Never imply it. State EXPECTED_LOSS before the method is used, not after it fails. END ═════════════════════════════════════════════════════════════════════ §1. THE LICENSE TO DELETE ═════════════════════════════════════════════════════════════════════ AXIOM RedundancyWager English is about fifty percent redundant (Weaver p.13; Shannon pp.56-57). Half of every text is fixed by the statistical structure of the language rather than chosen by the sender. That half is already in the receiver before the message arrives. Therefore it does not need to be sent. Shannon measured redundancy by exactly this operation: delete symbols, let a predictor restore them. SRCM runs the measurement as a procedure. Every deleted letter is a bet that the receiver already holds it. END PRINCIPLE TheOnlyTest Applied once per word, this is the whole algorithm. Would a receiver restore this with near-certainty? If not, keep the letters. END ═════════════════════════════════════════════════════════════════════ §2. ENCODING ═════════════════════════════════════════════════════════════════════ KERNEL Compress Encoder loop. Run in order over the whole text. INPUT: source : text OUTPUT: compressed : text PROCESS: 1. Classify the payload IF payload is designed notation THEN STOP [see C:do_not_compress] IF channel is noisy THEN STOP IF source is short THEN STOP 2. Strip by judgment FOR EACH word IN source DO Apply TheOnlyTest. Delete interior letters from long, predictable words. compression -> cmprssn redundancy -> rdndncy Leave short and surprising words whole. Keep the first letter of every word. Keep the spaces. Never delete across a hyphen, slash, or apostrophe. END FOR 3. Apply the fence FOR EACH word IN source DO IF word IN B:never_strip THEN carry whole IF skeleton collides THEN restore letters [see B:skeleton_collision] END FOR 4. Verify before sending Reconstruct your own output cold and diff it. [see A:proof_of_fidelity] 5. Return compressed END INVARIANT JudgmentNotRules You are not applying a table. You are estimating your own posterior, word by word, and spending redundancy only where it is genuinely redundant. Aim for TARGET_REDUCTION. Chasing a larger number is how encoders destroy meaning. The ratio is not the product. Restorability is the product. END ═════════════════════════════════════════════════════════════════════ §3. THE FENCE ═════════════════════════════════════════════════════════════════════ BOUNDARY NeverStrip { id: "B:never_strip" zone_type: "PROTECTED" severity: "CRITICAL" contents: - negation: not, no, never, nor, without, un-, non- - modality: should, must, may, might, shall, ought - names, numbers, dates, units, amounts - time: tonight, tomorrow, yesterday, now, then - epistemics: showed, doubted, believed, claimed, argued - URLs, paths, identifiers, code, quoted strings - single letters used as symbols: R, A, $ - novel coinages the language statistics do not contain rule: "Carry whole. Not abbreviated, not skeletonized. `never` is never `nvr`." } BOUNDARY SkeletonCollision { id: "B:skeleton_collision" zone_type: "PROTECTED" severity: "CRITICAL" rule: "Fencing the source word is not enough. The skeleton must also be safe. If a stripped skeleton could plausibly expand into a fenced word, it is dangerous even when the original was harmless." failure_mode: "The receiver expands the skeleton into the dangerous word, then repairs the surrounding grammar so the seam does not show." remedy: "RETAIN_LETTERS_UNTIL_COLLISION_IS_DEAD" } CONSTRAINT CollisionTable { id: "C:collision_table" kind: "critical" trigger: "B:skeleton_collision" cases: showed -> shwd reads as SHOULD -> showd doubted -> dbted reads as DEBATED -> doubtd tonight -> Tnght reads as TIGHT -> keep whole tooling -> tlng reads as TELLING -> toolng broad -> brd reads as BIRD -> brod naively -> nvly reads as NEWLY -> naivly most -> mst reads as MUST -> keep whole rule: "If two expansions are both fluent, you have not compressed. You have gambled. Keep the letter." remedy: "KEEP_THE_LETTER" } ═════════════════════════════════════════════════════════════════════ §4. THE SHAPE OF THE LOSS ═════════════════════════════════════════════════════════════════════ INVARIANT GracefulInRateUglyInKind Loss does not spread evenly. It concentrates in the categories that carry meaning: modality, polarity, temporal deixis, epistemic strength. A high word-accuracy score therefore does not mean the meaning survived. Word accuracy falls slowly. Meaning safety falls fast. Weigh an error by its class, never by its count. END INVARIANT SilentFailure A reconstruction always reads as though it worked. Errors arrive fluent, grammatical, and unmarked. Nothing in the output will signal a failure. Assume none is visible. END CONSTRAINT GradingDiscipline { id: "C:grading_discipline" kind: "critical" rule: "Grade by word-exact match and by error class. Never by character similarity." reason: "Similarity scores rise with fluent substitution. A reconstruction that replaces meaning with plausible meaning scores higher than one that leaves a visible gap." remedy: "REJECT_SIMILARITY_METRICS" } ═════════════════════════════════════════════════════════════════════ §5. WHEN NOT TO COMPRESS ═════════════════════════════════════════════════════════════════════ CONSTRAINT DoNotCompress { id: "C:do_not_compress" kind: "critical" trigger: "KERNEL Compress step 1" cases: - Code, formal languages, Scissortail, symbol tables. A designed notation is all sender choice and holds no redundancy to spend. Compressing it damages it. - Anything a human will retype, OCR, or screenshot. Stripped text has surrendered its error armor. - Anything short. Below a few hundred characters there is nothing to gain. - Token-priced channels, before measuring. TARGET_REDUCTION is in CHARACTERS. A skeleton can cost MORE tokens than the whole word, because it fragments under the tokenizer. remedy: "SEND_UNCOMPRESSED_AND_SAY_SO" } ═════════════════════════════════════════════════════════════════════ §6. VERIFICATION ═════════════════════════════════════════════════════════════════════ AXIOM ProofOfFidelity id: "A:proof_of_fidelity" If you hold the original, reconstruct your own output cold before sending, and diff. Report: - the ratio - the word-exact score - every divergence If a divergence landed on a fenced category, put the letters back and run it again. Never claim fidelity you have not measured. END ═════════════════════════════════════════════════════════════════════ §7. CLOSING ═════════════════════════════════════════════════════════════════════ PRINCIPLE PayItOutHonestly Every deleted symbol is a bet that the receiver already holds it. Shannon proved the bet is fair up to the redundancy. Weaver named the organ that pays it out. You are the organ. The loss is letters. The fence is what keeps it from becoming meaning. END END SRCM