cas-internal-partial-fractions-mixed-general-case
- Kind
- witness-replay
- Status
- checked
Supports: the partial-fraction certificate (polynomial part, leading scalar, per-factor-power numerator terms covering a repeated linear factor and an irreducible quadratic factor in one denominator) is independently re-derived and accepted by a checker (verify_partial_fraction_certificate) that shares no code with the search that produced it (partial_fractions, which factors q and solves the coefficient-matching linear system)
cargo test -p axeyum-cas --lib partial_fractions::tests::mixed_general_case -- --exact 2>/dev/null | grep -cE '^test partial_fractions::tests::mixed_general_case \.\.\. ok$' Evidence notes
THIS EVIDENCE IS cas-internal, NOT kernel-reconstructed (ADR-0601 SS2): the checker_command only ever names the axeyum-cas package (never axeyum-lean-kernel), so scripts/validate-facts.py's classify_cas_certificate_checker classifies this fact's evidence as cas-internal. verify_partial_fraction_certificate is independently re-derived and is mutation-tested in the same module by a dedicated commit (e1a3cdfea, 'mutation-verify every partial-fraction checker guard'): that commit found three checks (deg q >= 1, leading != 0, terms nonempty) are structurally subsumed by the q-reconstruction check given the non-constant-factor guard (no fixture kills any of the three in isolation, recorded as such in the module doc rather than left as silent decoration), and added two adversarial fixtures for guards that had NO isolating fixture before it (spurious_constant_factor_with_zero_numerator_is_rejected, over_degree_numerator_compensated_by_whole_is_rejected) plus non_monic_denominator (closing a real coverage gap -- every prior producer test used a monic q). No Kernel::add_declaration term exists for this claim; no kernel-side partial-fraction route exists at all in this kernel, unlike the MVT/EVT/Taylor siblings in this batch which at least have a WEAKER kernel-side family member. Unlike crate::mvt/crate::extremum/crate::taylor, this module 'carries no analytic content at all -- no Rolle's theorem, no completeness, nothing Richardson's theorem could make undecidable' (partial_fractions.rs's own module doc): it is a single linear algebraic identity (match coefficients, solve one square exact-rational system), which makes a future kernel bridge for this specific module plausibly SHORTER than the others in this batch -- exact polynomial multiplication and an exact linear solve are both more elementary constructions than Sturm isolation -- but no such bridge exists today and none is claimed here. The test asserts p := x+1, q := (x-1)^2*(x^2+1) (built via poly::ratpoly_mul from its two factors, not hand-expanded), cert := partial_fractions(&p,&q).unwrap(), verify_partial_fraction_certificate(&cert) == Some(true), cert.terms.len() == 3 (one term per power of (x-1) plus one for the quadratic), and a direct evaluation cross-check at x=7 confirms p(7)/q(7) equals the decomposition's value there exactly (eval_ratio vs decomposition_value_at, both computed independently of the certificate's own internal bookkeeping).