Skip to content

HermitCrab: complete cross-engine correctness controls for final-template pruning #507

Open

Description

@johnml1135

Final-template pruning must skip only analysis paths that cannot lead to a valid parse. This issue tracks the controls needed to demonstrate that guarantee across Machine and PanGloss.

Who is affected: users with final/non-final templates, partial words or rules, and maintainers reviewing #491 or porting its optimization.

This is a coverage gap, not a newly established Machine regression. The ten-word final-template-partial-discriminators fixture is now on Machine's conformance branch, but its passing results do not demonstrate that analysis pruning executes.

Done when: exact positive/negative identities and multiplicities survive optimized/unoptimized runs; discriminators reach the pruning branch; and claimed fixes fail when removed. Cover actual invocation role for rules shared between a stratum and a template, partial roots, lower-stratum continuations, and memoization on/off. Keep safe defaults separate from forced experimental overrides.


Published controls and remaining evidence

Commit a20bce12, through #480, adds conformance/edge-cases/final-template-partial-discriminators. Its rationale is in conformance/docs/final-template-partial-discriminators.md.

The recorded check passes all ten rows with memoization on/off. Mutating the partial-rule flag, partial-word producer, and non-final-template flag produces the predicted 2/10, 1/10, and 2/10 disagreements.

These establish synthesis/grammar sensitivity, not prune hits or fix-removed engine evidence. A zero prune count is not optimization coverage. Finite agreement does not prove universal soundness or completeness.

Related: #491 and #456. No parser code changed in this fixture update. Sparse forests and memory containment are outside scope.

Activity

  1. johnml1135 commented on Sep 15, 2026

    @johnml1135
    CollaboratorAuthor

    Coverage update: commit a20bce1 on integrate-conformance-framework (PR #480) adds final-template-partial-discriminators. All ten rows pass with memoization on/off. Independent mutations of the partial-rule flag, partial-word producer, and non-final-template flag yield the predicted 2/10, 1/10, and 2/10 disagreements. Derivations and limitations are in conformance/docs/final-template-partial-discriminators.md. This verifies synthesis controls, not that the analysis-pruning optimization executes. Actual dual-role rules, partial roots, lower-stratum continuation and prune-hit/fix-removed evidence remain open. No parser code changed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions