alkahest
Trust and verification

Certificate coverage

DerivedResult.certificate returns Lean 4 source only where the emitter can prove the statement without sorry. This page is the map of that boundary. It is generated by running a corpus and recording what actually emitted — never hand-maintained — from tests/lean_corpus.py (the strict, CI-typechecked corpus) and tests/textbook_gate/ (first-course calculus and algebra). tests/lean_tendsto_corpus.py contributes the recognised Filter.Tendsto fragment (x → +∞, x → 0, finite). tests/lean_gosper_corpus.py contributes Gosper Finset.sum telescopes and the ∏ k = n! product identity.

Corpus: 334 observations over 212 shape classes — 121 certified, 2 conditional, 0 partial, 89 withheld.

Reading a row

A shape class is an operation plus a structural fingerprint of its arguments: which primitive functions occur (funcs), whether they are applied to the bare variable, to an integer power of it, or to something else (fn_arg), what kinds of exponents appear (pow, pow_base), how factors combine (mul), and the top-level form of the expression (form, plus the outermost function, head, for a variable-free operation on a function application).

Verdict Meaning certifiable()
✅ certified every corpus observation emitted a certificate True
🟡 conditional emits when the operation rewrites something; some observations had an empty derivation log False (class_conditional)
🟠 partial observations disagree — the class is too coarse to separate them False (class_partial)
⛔ withheld no observation ever certified False (class_withheld)

certifiable() answers True only for certified classes, and in its default verify mode confirms by running the operation before saying so. It under-claims by construction: a shape the corpus has never reached answers False with reason unknown_shape.

diff

78 shape classes — 51 certified, 27 withheld.

Verdict Shape Examples Blocked by
⛔ withheld form=apply, funcs=Ei, fn_arg=var, mul=none, pow=none, pow_base=none Ei(x) diff_primitive_registry
⛔ withheld form=apply, funcs=Si, fn_arg=var, mul=none, pow=none, pow_base=none Si(x) diff_primitive_registry
✅ certified form=apply, funcs=asin, fn_arg=var, mul=none, pow=none, pow_base=none asin(x) —
✅ certified form=apply, funcs=atan, fn_arg=var, mul=none, pow=none, pow_base=none atan(x) —
⛔ withheld form=apply, funcs=atan2, fn_arg=other, mul=none, pow=none, pow_base=none atan2(x, 1) diff_primitive_registry
✅ certified form=apply, funcs=cos,sin, fn_arg=other, mul=none, pow=none, pow_base=none sin(cos(x)) —
✅ certified form=apply, funcs=cos, fn_arg=other, mul=scalar, pow=none, pow_base=none cos((2 * x)) —
✅ certified form=apply, funcs=cos, fn_arg=pow, mul=none, pow=nat, pow_base=var cos(x^2) —
✅ certified form=apply, funcs=cos, fn_arg=var, mul=none, pow=none, pow_base=none cos(x) —
✅ certified form=apply, funcs=cosh, fn_arg=var, mul=none, pow=none, pow_base=none cosh(x) —
✅ certified form=apply, funcs=exp, fn_arg=other, mul=scalar, pow=nat, pow_base=var exp((-1 * x^2)) —
✅ certified form=apply, funcs=exp, fn_arg=other, mul=scalar, pow=none, pow_base=none exp((-1 * x)) —
✅ certified form=apply, funcs=exp, fn_arg=pow, mul=none, pow=nat, pow_base=var exp(x^2) —
✅ certified form=apply, funcs=exp, fn_arg=var, mul=none, pow=none, pow_base=none exp(x) —
⛔ withheld form=apply, funcs=log,sqrt, fn_arg=other, mul=none, pow=nat, pow_base=var log((sqrt((-1 + x^2)) + x)) diff_log, diff_sqrt, sum_rule
✅ certified form=apply, funcs=log, fn_arg=var, mul=none, pow=none, pow_base=none log(x) —
✅ certified form=apply, funcs=sin, fn_arg=pow, mul=none, pow=nat, pow_base=var sin(x^2), sin(x^3) —
✅ certified form=apply, funcs=sin, fn_arg=var, mul=none, pow=none, pow_base=none sin(x) —
✅ certified form=apply, funcs=sinh, fn_arg=var, mul=none, pow=none, pow_base=none sinh(x) —
⛔ withheld form=apply, funcs=sqrt, fn_arg=other, mul=none, pow=nat, pow_base=var sqrt((1 + x^2)) diff_sqrt
✅ certified form=apply, funcs=sqrt, fn_arg=var, mul=none, pow=none, pow_base=none sqrt(x) —
✅ certified form=apply, funcs=tan, fn_arg=var, mul=none, pow=none, pow_base=none tan(x) —
✅ certified form=apply, funcs=tanh, fn_arg=var, mul=none, pow=none, pow_base=none tanh(x) —
✅ certified form=atom, funcs=-, fn_arg=none, mul=none, pow=none, pow_base=none 7 —
✅ certified form=piecewise, funcs=-, fn_arg=none, mul=scalar, pow=nat, pow_base=var, cond=var_cmp <piecewise> —
✅ certified form=piecewise, funcs=sin, fn_arg=var, mul=none, pow=nat, pow_base=var, cond=var_cmp <piecewise> —
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=nat, pow_base=var x^10, x^2, x^3 —
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=neg, pow_base=var x^-2 —
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=neg_one, pow_base=var x^-1 —
✅ certified form=power, funcs=sin, fn_arg=var, mul=none, pow=nat, pow_base=expr (sin(x))^2 —
✅ certified form=power, funcs=sin, fn_arg=var, mul=none, pow=neg_one, pow_base=expr (sin(x))^-1 —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=general, pow=neg_one, pow_base=expr ((1 + x)^-1 * x) power_rule, product_rule
⛔ withheld form=product, funcs=-, fn_arg=none, mul=scalar, pow=frac, pow_base=expr ((x^(1/2))^3 * 2/3) power_rule, product_rule
✅ certified form=product, funcs=-, fn_arg=none, mul=scalar, pow=nat, pow_base=var (1/4 * x^4), (1/5 * x^5) —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg_one, pow_base=expr ((-1 + x)^-1 * -1) power_rule, product_rule
✅ certified form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg_one, pow_base=var (-1 * x^-1) —
⛔ withheld form=product, funcs=atan, fn_arg=other, mul=scalar, pow=none, pow_base=none (1/2 * atan((1/2 * x))) diff_primitive_registry, product_rule
✅ certified form=product, funcs=cos,exp, fn_arg=var, mul=general, pow=neg_one, pow_base=expr ((cos(x))^-1 * exp(x)) —
⛔ withheld form=product, funcs=cos,log, fn_arg=other, mul=scalar, pow=none, pow_base=none (-1 * log(cos(x))) diff_log, product_rule
✅ certified form=product, funcs=cos,sin, fn_arg=var, mul=general, pow=neg_one, pow_base=expr ((cos(x))^-1 * sin(x)) —
✅ certified form=product, funcs=cos,sin, fn_arg=var, mul=general, pow=none, pow_base=none (cos(x) * sin(x)) —
✅ certified form=product, funcs=cos, fn_arg=other, mul=scalar, pow=none, pow_base=none (-1/4 * cos((2 * x))) —
✅ certified form=product, funcs=cos, fn_arg=var, mul=scalar, pow=none, pow_base=none (-1 * cos(x)) —
⛔ withheld form=product, funcs=erf,sqrt, fn_arg=other, mul=general, pow=none, pow_base=none (1/2 * erf(x) * sqrt(pi)) collect_mul_factors, diff_primitive_registry, diff_sqrt, mul_zero, product_rule
⛔ withheld form=product, funcs=exp,log, fn_arg=other, mul=general, pow=none, pow_base=none (C1 * exp(log(x))) diff_exp, product_rule
✅ certified form=product, funcs=exp,log, fn_arg=var, mul=general, pow=none, pow_base=none (exp(x) * log(x)) —
✅ certified form=product, funcs=exp,sin, fn_arg=var, mul=general, pow=none, pow_base=none (exp(x) * sin(x)) —
✅ certified form=product, funcs=exp,sinh, fn_arg=var, mul=general, pow=none, pow_base=none (exp(x) * sinh(x)) —
⛔ withheld form=product, funcs=exp, fn_arg=other, mul=general, pow=nat, pow_base=var (C1 * exp((1/2 * x^2))) product_rule
⛔ withheld form=product, funcs=exp, fn_arg=other, mul=general, pow=none, pow_base=none (C1 * exp((-1 * x))), (C1 * exp((3 * x))) product_rule
⛔ withheld form=product, funcs=exp, fn_arg=pow, mul=scalar, pow=nat, pow_base=var (1/2 * exp(x^2)) product_rule
✅ certified form=product, funcs=exp, fn_arg=var, mul=general, pow=nat, pow_base=var (exp(x) * x^2) —
✅ certified form=product, funcs=exp, fn_arg=var, mul=general, pow=none, pow_base=none ((-1 + x) * exp(x)), (C1 * exp(x)) —
⛔ withheld form=product, funcs=log, fn_arg=other, mul=scalar, pow=nat, pow_base=var (1/2 * log((-1 + x^2))), (1/2 * log((1 + x^2))) diff_log, product_rule
✅ certified form=product, funcs=log, fn_arg=var, mul=general, pow=nat, pow_base=var (log(x) * x^2), (log(x) * x^3) —
✅ certified form=product, funcs=log, fn_arg=var, mul=general, pow=none, pow_base=none (log(x) * x) —
⛔ withheld form=product, funcs=sin, fn_arg=var, mul=general, pow=neg_one, pow_base=var (sin(x) * x^-1) product_rule
✅ certified form=product, funcs=sqrt, fn_arg=var, mul=general, pow=nat, pow_base=var (sqrt(x) * x^2) —
✅ certified form=product, funcs=sqrt, fn_arg=var, mul=general, pow=none, pow_base=none (sqrt(x) * x) —
⛔ withheld form=sum, funcs=-, fn_arg=none, mul=none, pow=nat, pow_base=expr (3 + y^2) power_rule, sum_rule
✅ certified form=sum, funcs=-, fn_arg=none, mul=none, pow=nat, pow_base=var (C1 + x^2) —
✅ certified form=sum, funcs=-, fn_arg=none, mul=scalar, pow=nat, pow_base=var ((-1 * 2 * x^2) + (-1 * 7) + (3 * x^3) + (5 * x)), ((2 * x) + x^3) —
⛔ withheld form=sum, funcs=asin,sqrt, fn_arg=other, mul=general, pow=nat, pow_base=var ((1/2 * sqrt(((-1 * x^2) + 4)) * x) + (2 * asin((1/2 * x)))) diff_primitive_registry, diff_sqrt, product_rule, sum_rule
⛔ withheld form=sum, funcs=cos,sin, fn_arg=other, mul=general, pow=none, pow_base=none ((-2 * C1 * sin((2 * x))) + (2 * C2 * cos((2 * x)))), ((C1 * cos((2 * x))) + (C2 * sin((2 * x)))) product_rule, sum_rule
✅ certified form=sum, funcs=cos,sin, fn_arg=var, mul=general, pow=nat, pow_base=var ((-2 * sin(x)) + (2 * cos(x) * x) + (sin(x) * x^2)) —
✅ certified form=sum, funcs=cos,sin, fn_arg=var, mul=general, pow=none, pow_base=none ((-1 * C1 * sin(x)) + (C2 * cos(x))), ((-1 * cos(x) * x) + sin(x)), ((C1 * cos(x)) + (C2 * sin(x))) —
✅ certified form=sum, funcs=cos,sin, fn_arg=var, mul=none, pow=none, pow_base=none (cos(x) + sin(x)) —
✅ certified form=sum, funcs=cosh,sinh, fn_arg=var, mul=none, pow=none, pow_base=none (cosh(x) + sinh(x)) —
⛔ withheld form=sum, funcs=exp, fn_arg=other, mul=general, pow=none, pow_base=none ((-1 * C1 * exp((-1 * x))) + (-1 * C2 * exp((-1 * x)) * x) + (C2 * exp((-1 * x)))), ((-1 * C1 * exp((-1 * x))) + (-2 * C2 * exp((-2 * x)))), ((-1 * C2 * exp((-1 * x))) + (C1 * exp(x))) product_rule, sum_rule
✅ certified form=sum, funcs=exp, fn_arg=var, mul=general, pow=none, pow_base=none ((C1 * exp(x)) + (C2 * exp(x) * x) + (C2 * exp(x))), ((C1 * exp(x)) + (C2 * exp(x) * x)), ((C1 * exp(x)) + C2) —
⛔ withheld form=sum, funcs=log, fn_arg=other, mul=scalar, pow=nat, pow_base=var ((-1 * log((-2 + x))) + (1/2 * log(((-4 * x) + 3 + x^2)))) diff_log, product_rule, sum_rule
⛔ withheld form=sum, funcs=log, fn_arg=other, mul=scalar, pow=neg_one, pow_base=expr (((-1 + x)^-1 * -1/2) + (-1/4 * log((-1 + x))) + (1/4 * log((1 + x)))) diff_log, power_rule, product_rule, sum_rule
⛔ withheld form=sum, funcs=log, fn_arg=other, mul=scalar, pow=none, pow_base=none ((-1 * log((-1 + x))) + log((-2 + x))), ((-1/2 * log((-3 + x))) + (-1/6 * log((-1 + x))) + (1/2 * log((-2 + x))) + (1/6 * log((-4 + x)))) diff_log, product_rule, sum_rule
⛔ withheld form=sum, funcs=log, fn_arg=var, mul=general, pow=nat, pow_base=expr (((log(x))^2 * x) + (-2 * log(x) * x) + (2 * x)) collect_mul_factors, power_rule, product_rule, sum_rule
⛔ withheld form=sum, funcs=log, fn_arg=var, mul=general, pow=nat, pow_base=var ((-1/4 * x^2) + (1/2 * log(x) * x^2)) collect_mul_factors
✅ certified form=sum, funcs=log, fn_arg=var, mul=general, pow=none, pow_base=none ((-1 * x) + (log(x) * x)) —
✅ certified form=sum, funcs=log, fn_arg=var, mul=none, pow=none, pow_base=none (log(x) + x) —
⛔ withheld form=sum, funcs=sqrt, fn_arg=other, mul=general, pow=neg_one, pow_base=var ((-1 * sqrt((1 + x^2)) * x^-1) + 1) collect_mul_factors, diff_sqrt, mul_zero, product_rule, sum_rule

integrate

50 shape classes — 25 certified, 25 withheld.

Verdict Shape Examples Blocked by
✅ certified form=apply, funcs=cos, fn_arg=other, mul=scalar, pow=none, pow_base=none, definite=no cos((2 * x)) —
✅ certified form=apply, funcs=cos, fn_arg=other, mul=scalar, pow=none, pow_base=none, definite=yes cos((2 * x)) —
✅ certified form=apply, funcs=cos, fn_arg=var, mul=none, pow=none, pow_base=none, definite=no cos(x) —
✅ certified form=apply, funcs=cos, fn_arg=var, mul=none, pow=none, pow_base=none, definite=yes cos(x) —
⛔ withheld form=apply, funcs=exp, fn_arg=other, mul=scalar, pow=nat, pow_base=var, definite=no exp((-1 * x^2)) —
✅ certified form=apply, funcs=exp, fn_arg=var, mul=none, pow=none, pow_base=none, definite=no exp(x) —
✅ certified form=apply, funcs=exp, fn_arg=var, mul=none, pow=none, pow_base=none, definite=yes exp(x) —
✅ certified form=apply, funcs=log, fn_arg=var, mul=none, pow=none, pow_base=none, definite=no log(x) —
✅ certified form=apply, funcs=log, fn_arg=var, mul=none, pow=none, pow_base=none, definite=yes log(x) —
✅ certified form=apply, funcs=sin, fn_arg=var, mul=none, pow=none, pow_base=none, definite=no sin(x) —
✅ certified form=apply, funcs=sin, fn_arg=var, mul=none, pow=none, pow_base=none, definite=yes sin(x) —
⛔ withheld form=apply, funcs=sqrt, fn_arg=other, mul=scalar, pow=nat, pow_base=var, definite=no sqrt(((-1 * x^2) + 4)) —
⛔ withheld form=apply, funcs=sqrt, fn_arg=var, mul=none, pow=none, pow_base=none, definite=yes sqrt(x) —
⛔ withheld form=apply, funcs=tan, fn_arg=var, mul=none, pow=none, pow_base=none, definite=no tan(x) —
⛔ withheld form=power, funcs=-, fn_arg=none, mul=none, pow=frac, pow_base=var, definite=no x^(1/2) —
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=nat, pow_base=var, definite=no x^2, x^3, x^4 —
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=nat, pow_base=var, definite=yes x^2, x^3, x^4 —
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=neg, pow_base=var, definite=no x^-2 —
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=neg_one, pow_base=var, definite=no x^-1 —
⛔ withheld form=power, funcs=log, fn_arg=var, mul=none, pow=nat, pow_base=expr, definite=no (log(x))^2 —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=general, pow=neg_one, pow_base=expr, definite=no ((((-1 * 1) + x) * ((-1 * 2) + x) * ((-1 * 3) + x) * ((-1 * 4) + x))^-1 * 1), ((((-1 * 1) + x) * ((-1 * 2) + x) * ((-1 * 3) + x))^-1 * 1), ((((-1 * 1) + x) * ((-1 * 2) + x))^-1 * 1) —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=general, pow=neg_one, pow_base=one_plus_sq, definite=no ((1 + x^2)^-1 * x) —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=general, pow=neg_one, pow_base=one_plus_sq, definite=yes ((1 + x^2)^-1 * x) —
✅ certified form=product, funcs=-, fn_arg=none, mul=scalar, pow=nat, pow_base=var, definite=yes (1/2 * x^2) —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg_one, pow_base=expr, definite=no ((((-1 * 1) + x)^2)^-1 * 1), ((4 + x^2)^-1 * 1) —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg_one, pow_base=expr, definite=yes ((1 + x)^-1 * 1), ((4 + x^2)^-1 * 1), ((x^2)^-1 * 1) —
✅ certified form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg_one, pow_base=one_plus_sq, definite=no ((1 + x^2)^-1 * 1) —
✅ certified form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg_one, pow_base=one_plus_sq, definite=yes ((1 + x^2)^-1 * 1) —
✅ certified form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg_one, pow_base=var, definite=no (1 * x^-1) —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg_one, pow_base=var, definite=yes (1 * x^-1) —
⛔ withheld form=product, funcs=cos,sin, fn_arg=var, mul=general, pow=none, pow_base=none, definite=no (cos(x) * sin(x)) —
✅ certified form=product, funcs=cos, fn_arg=var, mul=general, pow=nat, pow_base=var, definite=no (cos(x) * x^2) —
⛔ withheld form=product, funcs=cos, fn_arg=var, mul=scalar, pow=neg_one, pow_base=expr, definite=no (((cos(x))^2)^-1 * 1) —
✅ certified form=product, funcs=cos, fn_arg=var, mul=scalar, pow=none, pow_base=none, definite=yes (3 * cos(x)) —
⛔ withheld form=product, funcs=exp, fn_arg=pow, mul=general, pow=nat, pow_base=var, definite=no (exp(x^2) * x) —
⛔ withheld form=product, funcs=exp, fn_arg=var, mul=general, pow=nat, pow_base=var, definite=yes (exp(x) * x^2) —
⛔ withheld form=product, funcs=exp, fn_arg=var, mul=general, pow=neg_one, pow_base=var, definite=no (exp(x) * x^-1) —
⛔ withheld form=product, funcs=exp, fn_arg=var, mul=general, pow=none, pow_base=none, definite=no (exp(x) * x) —
⛔ withheld form=product, funcs=exp, fn_arg=var, mul=general, pow=none, pow_base=none, definite=yes (exp(x) * x) —
✅ certified form=product, funcs=exp, fn_arg=var, mul=scalar, pow=none, pow_base=none, definite=yes (-1 * exp(x)) —
⛔ withheld form=product, funcs=log, fn_arg=var, mul=general, pow=none, pow_base=none, definite=no (log(x) * x) —
⛔ withheld form=product, funcs=log, fn_arg=var, mul=general, pow=none, pow_base=none, definite=yes (log(x) * x) —
⛔ withheld form=product, funcs=sin, fn_arg=var, mul=general, pow=neg_one, pow_base=var, definite=no (sin(x) * x^-1) —
✅ certified form=product, funcs=sin, fn_arg=var, mul=general, pow=none, pow_base=none, definite=no (sin(x) * x) —
⛔ withheld form=product, funcs=sqrt, fn_arg=other, mul=general, pow=neg_one, pow_base=expr, definite=no ((sqrt((1 + x^2)) * x^2)^-1 * 1), ((sqrt((1 + x^2)))^-1 * x) —
⛔ withheld form=product, funcs=sqrt, fn_arg=other, mul=scalar, pow=neg_one, pow_base=expr, definite=no ((sqrt(((-1 * 1) + x^2)))^-1 * 1), ((sqrt(((-1 * x^2) + 1)))^-1 * 1) —
⛔ withheld form=product, funcs=sqrt, fn_arg=other, mul=scalar, pow=neg_one, pow_base=expr, definite=yes ((sqrt(((-1 * x^2) + 1)))^-1 * 1) —
✅ certified form=sum, funcs=cos,sin, fn_arg=var, mul=none, pow=none, pow_base=none, definite=yes (cos(x) + sin(x)) —
✅ certified form=sum, funcs=cos,sin, fn_arg=var, mul=scalar, pow=nat, pow_base=var, definite=yes ((3 * cos(x)) + sin(x) + x^2) —
✅ certified form=sum, funcs=exp,log, fn_arg=var, mul=general, pow=neg_one, pow_base=var, definite=no ((exp(x) * log(x)) + (exp(x) * x^-1)) —

limit

26 shape classes — 9 certified, 17 withheld.

Verdict Shape Examples Blocked by
✅ certified form=apply, funcs=exp, fn_arg=other, mul=scalar, pow=none, pow_base=none, point=atTop exp((-1 * x)) —
✅ certified form=apply, funcs=exp, fn_arg=var, mul=none, pow=none, pow_base=none, point=atTop exp(x) —
✅ certified form=atom, funcs=-, fn_arg=none, mul=none, pow=none, pow_base=none, point=atTop x —
⛔ withheld form=atom, funcs=-, fn_arg=none, mul=none, pow=none, pow_base=none, point=zero 5 —
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=nat, pow_base=var, point=atTop x^2 —
⛔ withheld form=power, funcs=-, fn_arg=none, mul=none, pow=sym, pow_base=var, point=zero x^x —
✅ certified form=power, funcs=-, fn_arg=none, mul=scalar, pow=sym, pow_base=expr, point=atTop ((1 * x^-1) + 1)^x, ((2 * x^-1) + 1)^x —
⛔ withheld form=power, funcs=-, fn_arg=none, mul=scalar, pow=sym, pow_base=expr, point=zero (1 + x)^(1 * x^-1) —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=general, pow=neg_one, pow_base=expr, point=atTop (((2 * x) + 1) * (3 + x^2)^-1) —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=general, pow=neg_one, pow_base=expr, point=finite (((-1 * 1) + x)^-1 * ((-1 * 1) + x^2)), (((-1 * 2) + x)^-1 * ((-1 * 4) + x^2)), (((3 * x) + 2 + x^2) * (1 + x)^-1) —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=general, pow=neg_one, pow_base=one_plus_sq, point=atTop (((2 * x) + (3 * x^2)) * (1 + x^2)^-1), ((1 + x^2)^-1 * x^3) —
✅ certified form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg_one, pow_base=var, point=atTop (1 * x^-1) —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg_one, pow_base=var, point=zero (1 * x^-1) —
⛔ withheld form=product, funcs=cos, fn_arg=var, mul=general, pow=neg_one, pow_base=expr, point=zero (((-1 * cos(x)) + 1) * (x^2)^-1) —
✅ certified form=product, funcs=exp, fn_arg=other, mul=general, pow=nat, pow_base=var, point=atTop (exp((-1 * x)) * x^2), (exp((-1 * x)) * x^3) —
⛔ withheld form=product, funcs=exp, fn_arg=other, mul=general, pow=neg_one, pow_base=var, point=zero (((-1 * 1) + exp((2 * x))) * x^-1) —
✅ certified form=product, funcs=exp, fn_arg=other, mul=general, pow=none, pow_base=none, point=atTop (exp((-1 * x)) * x) —
⛔ withheld form=product, funcs=exp, fn_arg=var, mul=general, pow=neg_one, pow_base=expr, point=zero (((-1 * 1) + (-1 * x) + exp(x)) * (x^2)^-1) —
⛔ withheld form=product, funcs=exp, fn_arg=var, mul=general, pow=neg_one, pow_base=var, point=atTop (exp(x) * x^-1) —
⛔ withheld form=product, funcs=exp, fn_arg=var, mul=general, pow=neg_one, pow_base=var, point=zero (((-1 * 1) + exp(x)) * x^-1) —
⛔ withheld form=product, funcs=log, fn_arg=other, mul=general, pow=neg_one, pow_base=var, point=zero (log((1 + x)) * x^-1) —
⛔ withheld form=product, funcs=log, fn_arg=var, mul=general, pow=neg_one, pow_base=expr, point=finite (((-1 * 1) + x)^-1 * log(x)) —
⛔ withheld form=product, funcs=log, fn_arg=var, mul=general, pow=neg_one, pow_base=var, point=atTop (log(x) * x^-1) —
⛔ withheld form=product, funcs=log, fn_arg=var, mul=general, pow=none, pow_base=none, point=zero (log(x) * x) —
✅ certified form=product, funcs=sin, fn_arg=var, mul=general, pow=neg_one, pow_base=var, point=zero (sin(x) * x^-1) —
⛔ withheld form=product, funcs=sqrt, fn_arg=other, mul=general, pow=neg_one, pow_base=var, point=zero (((-1 * 1) + sqrt((1 + x))) * x^-1) —

product_definite

1 shape classes — 1 certified.

Verdict Shape Examples Blocked by
✅ certified form=atom, funcs=-, fn_arg=none, mul=none, pow=none, pow_base=none, definite=yes k —

simplify

19 shape classes — 8 certified, 2 conditional, 9 withheld.

Verdict Shape Examples Blocked by
⛔ withheld form=apply, head=exp, funcs=exp,log, fn_arg=other, mul=none, pow=none exp(log(x)) exp_of_log_nonzero
⛔ withheld form=apply, head=exp, funcs=exp, fn_arg=other, mul=none, pow=none exp((x + y)) —
✅ certified form=apply, head=log, funcs=exp,log, fn_arg=other, mul=none, pow=none log(exp(x)) —
⛔ withheld form=apply, head=log, funcs=log, fn_arg=other, mul=general, pow=none log((x * y)) —
⛔ withheld form=power, funcs=-, fn_arg=none, mul=none, pow=frac (x^(1/2))^2 —
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=nat (x^2)^3, x^0, x^1 —
🟡 conditional form=power, funcs=-, fn_arg=none, mul=none, pow=neg (x^3)^-2, k^-2, k^-3 —
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=neg_one (x^-1)^-1 —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=general, pow=frac (x^(1/3) * x^(2/3)) —
✅ certified form=product, funcs=-, fn_arg=none, mul=general, pow=nat (x^2 * x^3) —
✅ certified form=product, funcs=-, fn_arg=none, mul=general, pow=neg (x^-2 * x^2), (x^-2 * x^5) —
✅ certified form=product, funcs=-, fn_arg=none, mul=general, pow=neg_one (x^-1 * x^2) —
✅ certified form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg_one ((k^2)^-1 * 3), ((x^3)^-1 * 1) —
✅ certified form=product, funcs=-, fn_arg=none, mul=scalar, pow=none (0 * x), (1 * x), (3 * 4) —
⛔ withheld form=product, funcs=gamma, fn_arg=other, mul=general, pow=none (gamma((1 + k)) * k) —
⛔ withheld form=product, funcs=log, fn_arg=other, mul=scalar, pow=none (2 * log(x)) —
🟡 conditional form=sum, funcs=-, fn_arg=none, mul=none, pow=none (0 + x), (2 + 3), (2 + x) —
⛔ withheld form=sum, funcs=-, fn_arg=none, mul=scalar, pow=none ((2 * k) + 1) —
⛔ withheld form=sum, funcs=log, fn_arg=other, mul=scalar, pow=none ((-1 * log(y)) + log(x)) —

simplify_log_exp

7 shape classes — 7 certified.

Verdict Shape Examples Blocked by
✅ certified form=apply, head=exp, funcs=exp,log, fn_arg=other, mul=none, pow=none exp(log(x)) —
✅ certified form=apply, head=log, funcs=exp,log, fn_arg=other, mul=none, pow=none log(exp(x)) —
✅ certified form=apply, head=log, funcs=log, fn_arg=other, mul=general, pow=neg_one log((x * y^-1)) —
✅ certified form=apply, head=log, funcs=log, fn_arg=other, mul=none, pow=nat log(x^2) —
✅ certified form=product, funcs=exp, fn_arg=other, mul=general, pow=none (exp(x) * exp(y)) —
✅ certified form=sum, funcs=exp,log, fn_arg=other, mul=none, pow=none (exp(log(y)) + log(exp(x))) —
✅ certified form=sum, funcs=log, fn_arg=other, mul=none, pow=none (log(x) + log(y)) —

simplify_trig

21 shape classes — 14 certified, 7 withheld.

Verdict Shape Examples Blocked by
✅ certified form=apply, head=cos, funcs=cos, fn_arg=other, mul=scalar, pow=none cos((-1 * x)) —
✅ certified form=apply, head=sin, funcs=sin, fn_arg=other, mul=scalar, pow=none sin((-1 * x)) —
⛔ withheld form=apply, head=sinh, funcs=sinh, fn_arg=other, mul=scalar, pow=none sinh((-1 * x)) —
✅ certified form=apply, head=tan, funcs=tan, fn_arg=other, mul=none, pow=none tan(x) —
✅ certified form=product, funcs=cos,sin, fn_arg=other, mul=general, pow=none (2 * cos(x) * sin(x)) —
⛔ withheld form=product, funcs=cos,tan, fn_arg=other, mul=general, pow=none (cos(x) * tan(x)) collect_mul_factors
✅ certified form=product, funcs=cos, fn_arg=other, mul=general, pow=neg_one (((-1 * cos((2 * x))) + 1) * 2^-1) —
⛔ withheld form=product, funcs=cosh,sinh, fn_arg=other, mul=general, pow=neg_one ((cosh(x))^-1 * sinh(x)) —
⛔ withheld form=product, funcs=cosh,sinh, fn_arg=other, mul=general, pow=none (2 * cosh(x) * sinh(x)) —
⛔ withheld form=product, funcs=sin,tan, fn_arg=other, mul=general, pow=neg_one ((tan(x))^-1 * sin(x)) collect_mul_factors, pow_of_product_cancel
✅ certified form=product, funcs=sin, fn_arg=other, mul=general, pow=neg_one ((sin(x))^-1 * 1 * sin(x)) —
✅ certified form=sum, funcs=cos,sin,tan, fn_arg=other, mul=general, pow=neg_one (((cos(x))^-1 * -1 * sin(x)) + tan(x)), (((cos(x))^-1 * sin(x)) + (-1 * tan(x))) —
✅ certified form=sum, funcs=cos,sin, fn_arg=other, mul=general, pow=none ((cos(x) * cos(x)) + (sin(x) * sin(x))) —
✅ certified form=sum, funcs=cos,sin, fn_arg=other, mul=none, pow=nat ((cos(x))^2 + (sin(x))^2) —
⛔ withheld form=sum, funcs=cos,sin, fn_arg=other, mul=scalar, pow=nat (((((sin(x))^2 * -1 * 2) + 1) * -1) + cos((2 * x))) zero_sum
✅ certified form=sum, funcs=cos, fn_arg=other, mul=scalar, pow=nat (((cos(x))^2 * 2) + (-1 * 1)) —
✅ certified form=sum, funcs=cosh,sinh, fn_arg=other, mul=scalar, pow=nat (((sinh(x))^2 * -1) + (cosh(x))^2) —
✅ certified form=sum, funcs=cosh, fn_arg=other, mul=scalar, pow=nat (((cosh(x))^2 * 2) + (-1 * 1)) —
✅ certified form=sum, funcs=sin, fn_arg=other, mul=scalar, pow=nat (((sin(x))^2 * -1 * 2) + 1) —
✅ certified form=sum, funcs=tan, fn_arg=other, mul=none, pow=nat ((tan(x))^2 + 1) —
⛔ withheld form=sum, funcs=tanh, fn_arg=other, mul=scalar, pow=nat (((tanh(x))^2 * -1) + 1) —

sum_definite

9 shape classes — 5 certified, 4 withheld.

Verdict Shape Examples Blocked by
✅ certified form=atom, funcs=-, fn_arg=none, mul=none, pow=none, pow_base=none, definite=yes 5, k —
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=nat, pow_base=var, definite=yes k^2, k^3 —
⛔ withheld form=power, funcs=-, fn_arg=none, mul=none, pow=neg, pow_base=var, definite=yes k^-2, k^-3, k^-4 basel_zeta_even, rational_series_partial_fractions
✅ certified form=power, funcs=-, fn_arg=none, mul=none, pow=sym, pow_base=int, definite=yes 2^k —
⛔ withheld form=power, funcs=-, fn_arg=none, mul=none, pow=sym, pow_base=recip, definite=yes (1/2)^k —
✅ certified form=product, funcs=-, fn_arg=none, mul=general, pow=neg_one, pow_base=expr, definite=yes (((1 + k) * k)^-1 * 1) —
⛔ withheld form=product, funcs=-, fn_arg=none, mul=scalar, pow=neg, pow_base=var, definite=yes (3 * k^-2) basel_zeta_even
⛔ withheld form=product, funcs=gamma, fn_arg=other, mul=general, pow=none, pow_base=none, definite=yes (gamma((1 + k)) * k) —
✅ certified form=sum, funcs=-, fn_arg=none, mul=scalar, pow=none, pow_base=none, definite=yes ((2 * k) + 1) —

sum_indefinite

1 shape classes — 1 certified.

Verdict Shape Examples Blocked by
✅ certified form=atom, funcs=-, fn_arg=none, mul=none, pow=none, pow_base=none k —

Querying it

Python
import alkahest as ak

p = ak.ExprPool()
x = p.symbol("x")

# Will this route give me something a referee can check?
answer = ak.certifiable("diff", ak.log(ak.sin(x)), x)
bool(answer)      # False

# Plan across candidate routes without computing any of them.
ak.certifiable("diff", ak.sin(x), x, mode="ledger")

# Fail loudly instead of degrading silently.
with ak.context(require_certificate=True):
    try:
        ak.diff(ak.log(ak.sin(x)), x)
    except ak.CertificateUnavailableError as e:
        print(e.code)             # E-CERT-001