Skip to content

icarus_lowerable: reassess asp_solver and ternary_logic witnesses after #10370 (Closes #10450) - #10462

Merged
gHashTag merged 1 commit into
masterfrom
fix/icarus-asp-ternary-witness
Oct 18, 2026
Merged

gHashTag merged 1 commit into
masterfrom
fix/icarus-asp-ternary-witness

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Closes #10450

Cause

lowerability_models_keep_real_source_signatures (bootstrap/tests/icarus_lowerable.rs) went red on master at d31bccd. The cause is #10370: it legitimately rewrote specs/ar/asp_solver.t27 and specs/ar/ternary_logic.t27 so they compile (#8980), and the pinned source signatures and their Lean witness models were not reassessed. The spec and gen-rust output are correct, so neither is touched, and the test is not added to the ratchet baseline.

  • asp_solver: Program is now {clauses: [Clause; 16], nclauses, constraints: [Clause; 16], nconstraints} instead of Vec<Clause>; Literal carries string fields; solve(prog: Program) -> SolveResult.
  • ternary_logic: a Trit is i8 (was an undeclared type); resolve/apply_restraint take and return slices, backward_chain takes a slice of Rule. This mismatch was hidden behind the asp panic.

What changed

  • bootstrap/tests/icarus_lowerable.rs: expected signatures and expected Lean model strings updated for Program, solve, k3_and, backward_chain, resolve, apply_restraint (6 lines in, 6 out).
  • proofs/lean4/Trinity/IcarusLowerable/Completeness.lean: ar_asp_solver_env now models the real struct graph (Literal, Clause, LitList, Program, AnswerSet, SolveResult) with real array sizes; ar_ternary_logic_env uses i8 Trits, a declared Rule, slice types and the real globals. ar_asp_solver_lowerable = false still holds, now because of the string fields. The two stale Trit theorems are replaced by ar_ternary_logic_slices_block, which pins the exact set of blocked functions (pool_take, backward_chain, resolve, apply_restraint).

Net hand-written foreign lines are negative (foreign-budget gate).

Verification (Railway lab, not the Mac)

  • cargo test --release -p t27c --test icarus_lowerable -- lowerability_models corpus_classifier passes.
  • The edited Lean compiles (Mathlib-free dependencies plus a trimmed copy of Completeness.lean; the lab disk was too full to fetch Mathlib).
  • Mutating the expected blocked list makes the new theorem fail, so it is not vacuous.

🤖 Generated with Claude Code

#10370 (Closes #10450)

#10370 rewrote specs/ar/asp_solver.t27 and specs/ar/ternary_logic.t27 so they
compile (#8980): Program is now fixed arrays with counts, Trit is i8, and the
list functions take slices. The pinned source signatures and the Lean
witness models were stale. The specs and gen-rust output are correct, so the
expected signatures and the Lean models are updated to the real interfaces;
ar_asp_solver stays unlowerable (string fields), and a new theorem pins the
exact set of slice/usize functions that block ar_ternary_logic.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-18 13:01:14 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 46
PRs with All Checks Green 4
READY 0
FAILING 46
PENDING 0
NO CHECKS YET 0

These columns do not partition: 0 + 46 + 0 + 0 = 46, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=fad12492937a != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

master red: icarus_lowerable asp_solver witness still models the pre-#8980 spec (Vec<Clause>)

1 participant