让规则说明从docstring自动生成[#121]

curl-curl-identity

Replace the curl of a curl by the gradient of the divergence minus the vector Laplacian. The field must be C2; declaring it divergence-free is a separate premise and a separate rewrite.

(1)c2⁡(field) field:vector∇×(∇×field)→∇(∇·field)−Δfield [curl-curl-identity]

Group: vector-calculus. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: assumptions declare vector(E) and c2(E)

Exact scalar-algebra check: unsupported.

divergence-free

(2)∇·field=0 field:vector∇(∇·field)→0→ [divergence-free]

Group: vector-calculus. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: vector(E) and the matching fact div(E) = 0

Exact scalar-algebra check: unsupported.

div-curl-zero

(3)c2⁡(field) field:vector∇·(∇×field)→0 [div-curl-zero]

Group: vector-calculus. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: assumptions declare vector(E) and c2(E)

Exact scalar-algebra check: unsupported.

curl-grad-zero

(4)c2⁡(field) field:scalar∇×(∇field)→0→ [curl-grad-zero]

Group: vector-calculus. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: assumptions declare scalar(f) and c2(f)

Exact scalar-algebra check: unsupported.

div-grad-laplacian

(5)c2⁡(field) field:scalar∇·(∇field)→Δfield [div-grad-laplacian]

Group: vector-calculus. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: assumptions declare scalar(f) and c2(f)

Exact scalar-algebra check: unsupported.

grad-product

Differentiate the product of two scalar fields with the gradient product rule. C1 regularity suffices; no second derivatives or smoothness assumptions are required.

(6)differentiable⁡(f) differentiable⁡(g) f:scalar g:scalar∇(f×g)→g×∇f+f×∇g [grad-product]

Group: vector-calculus. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: scalar C1 fields in Cartesian space

Exact scalar-algebra check: unsupported.

div-product

(7)differentiable⁡(f) differentiable⁡(e) f:scalar e:vector∇·(f×e)→∇f·e+f×∇·e [div-product]

Group: vector-calculus. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: scalar and vector C1 fields in Cartesian space

Exact scalar-algebra check: unsupported.

curl-product

Expand the curl of a scalar times a vector field in oriented Cartesian space. The cross product is grad(f) cross E, in that order; reversing it changes the sign. Both factors need C1 regularity.

(8)differentiable⁡(f) differentiable⁡(e) f:scalar e:vector∇×(f×e)→∇f×e+f×∇×e [curl-product]

Group: vector-calculus. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: scalar and vector C1 fields in oriented Cartesian space

Exact scalar-algebra check: unsupported.

subtract-zero

(9)(math-typeo facts term type) ; executable guards applyzero−term→−term [subtract-zero]

Group: identity. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: matching scalar or vector types

Exact scalar-algebra check: semantically-checked.

Executable guards
((zeroo type zero))

add-zero

(10)(math-typeo facts term type) ; executable guards applyterm+zero→term [add-zero]

Group: identity. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: matching scalar or vector types

Exact scalar-algebra check: semantically-checked.

Executable guards
((zeroo type zero))

zero-add

(11)(math-typeo facts term type) ; executable guards applyzero+term→term [zero-add]

Group: identity. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: matching scalar or vector types

Exact scalar-algebra check: semantically-checked.

Executable guards
((zeroo type zero))

subtract-right-zero

(12)(math-typeo facts term type) ; executable guards applyterm−zero→term [subtract-right-zero]

Group: identity. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: matching scalar or vector types

Exact scalar-algebra check: semantically-checked.

Executable guards
((zeroo type zero))

double-negation

(13)(math-typeo facts term type) ; executable guards apply−(−term)→term [double-negation]

Group: identity. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: X is scalar or vector

Exact scalar-algebra check: semantically-checked.

Executable guards
((conde ((== type (quote scalar))) ((== type (quote vector)))))

multiply-one

(14)(math-typeo facts term type) ; executable guards applyterm×1→term [multiply-one]

Group: identity. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: X is scalar or vector

Exact scalar-algebra check: semantically-checked.

Executable guards
((conde ((== type (quote scalar))) ((== type (quote vector)))))

one-multiply

(15)(math-typeo facts term type) ; executable guards apply1term→term [one-multiply]

Group: identity. Modes: (forward backward check). Declarative RuleSpec; metavariables denote terms. Condition: X is scalar or vector

Exact scalar-algebra check: semantically-checked.

Executable guards
((conde ((== type (quote scalar))) ((== type (quote vector)))))

multiply-zero

(16)term:scalarterm×0→0 [multiply-zero]

Group: identity. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: X is scalar

Exact scalar-algebra check: semantically-checked.

zero-multiply

(17)term:scalar0term→0 [zero-multiply]

Group: identity. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: X is scalar

Exact scalar-algebra check: semantically-checked.

power-one

(18)term:scalarterm1→term [power-one]

Group: identity. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: X is scalar

Exact scalar-algebra check: semantically-checked.

power-zero

(19)term:scalarterm0→1 [power-zero]

Group: identity. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: polynomial power convention

Exact scalar-algebra check: semantically-checked.

add-commutative

(20)left:scalar right:scalarleft+right→right+left [add-commutative]

Group: polynomial-algebra. Modes: (check). Declarative RuleSpec; metavariables denote terms. Condition: scalar terms

Exact scalar-algebra check: semantically-checked.

multiply-associative

(21)left:scalar middle:scalar right:scalarleft×middle×right→left×middle×right [multiply-associative]

Group: polynomial-algebra. Modes: (check). Declarative RuleSpec; metavariables denote terms. Condition: scalar terms

Exact scalar-algebra check: semantically-checked.

add-associative

(22)left:scalar middle:scalar right:scalarleft+middle+right→left+middle+right [add-associative]

Group: polynomial-algebra. Modes: (check). Declarative RuleSpec; metavariables denote terms. Condition: scalar terms

Exact scalar-algebra check: semantically-checked.

multiply-commutative

(23)left:scalar right:scalarleft×right→right×left [multiply-commutative]

Group: polynomial-algebra. Modes: (check). Declarative RuleSpec; metavariables denote terms. Condition: scalar terms

Exact scalar-algebra check: semantically-checked.

differentiate-constant

(24)(unquote (quasiquote (unquote expression))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(expression)→0 [differentiate-constant]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts expression coordinate) (if (differentiable-term? (quasiquote (unquote expression)) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)) (project (expression) (if (math-number-value expression) succeed fail)))

differentiate-variable

(25)(unquote (quasiquote (var (unquote coordinate)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(coordinate)→1 [differentiate-variable]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts coordinate) (if (differentiable-term? (quasiquote (var (unquote coordinate))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

differentiate-independent

(26)(unquote (quasiquote (var (unquote other)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(other)→0 [differentiate-independent]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts other coordinate) (if (differentiable-term? (quasiquote (var (unquote other))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)) (=/= other coordinate))

differentiate-negation

(27)(unquote (quasiquote (- (unquote operand)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(−operand)→−(ddcoordinate(operand)) [differentiate-negation]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts operand coordinate) (if (differentiable-term? (quasiquote (- (unquote operand))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

differentiate-sum

(28)(unquote (quasiquote (+ (unquote left) (unquote right)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(left+right)→ddcoordinate(left)+ddcoordinate(right) [differentiate-sum]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts left right coordinate) (if (differentiable-term? (quasiquote (+ (unquote left) (unquote right))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

differentiate-difference

(29)(unquote (quasiquote (- (unquote left) (unquote right)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(left−right)→ddcoordinate(left)−ddcoordinate(right) [differentiate-difference]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts left right coordinate) (if (differentiable-term? (quasiquote (- (unquote left) (unquote right))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

differentiate-product

Generate the derivative of each factor separately and sum the two products. This rule constructs derivative terms; subsequent differentiation and simplification steps compute and reduce them.

(30)(unquote (quasiquote (* (unquote left) (unquote right)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(left×right)→ddcoordinate(left)×right+left×ddcoordinate(right) [differentiate-product]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts left right coordinate) (if (differentiable-term? (quasiquote (* (unquote left) (unquote right))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

differentiate-power

(31)(unquote (quasiquote (^ (unquote base) (num (unquote exponent))))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(baseexponent)→result [differentiate-power]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts base exponent result coordinate) (if (differentiable-term? (quasiquote (^ (unquote base) (num (unquote exponent)))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)) (project (exponent base coordinate) (let ((n (natural-value exponent))) (if (= n 0) (== result (quote (num "0"))) (== result (quasiquote (* (* (num (unquote exponent)) (^ (unquote base) (num (unquote (number->string (- n 1)))))) (differentiate (unquote base) (var (unquote coordinate))))))))))

differentiate-quotient

Apply the quotient rule on the domain where the denominator is nonzero. The derivative remains a symbolic term until later passes process its operands and simplify the result.

(32)(unquote (quasiquote (/ (unquote left) (unquote right)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(leftright)→ddcoordinate(left)×right−left×ddcoordinate(right)right2 [differentiate-quotient]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts left right coordinate) (if (differentiable-term? (quasiquote (/ (unquote left) (unquote right))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)) (math-factso facts (quasiquote ((nonzero (unquote right))))))

differentiate-sin

(33)(unquote (quasiquote (sin (unquote operand)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(sin⁡(operand))→ddcoordinate(operand)×cos⁡(operand) [differentiate-sin]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts operand coordinate) (if (differentiable-term? (quasiquote (sin (unquote operand))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

differentiate-cos

(34)(unquote (quasiquote (cos (unquote operand)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(cos⁡(operand))→−(ddcoordinate(operand)×sin⁡(operand)) [differentiate-cos]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts operand coordinate) (if (differentiable-term? (quasiquote (cos (unquote operand))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

differentiate-exp

(35)(unquote (quasiquote (exp (unquote operand)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(exp⁡(operand))→ddcoordinate(operand)×exp⁡(operand) [differentiate-exp]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts operand coordinate) (if (differentiable-term? (quasiquote (exp (unquote operand))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

differentiate-log

(36)(unquote (quasiquote (log (unquote operand)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards applyddcoordinate(log⁡(operand))→ddcoordinate(operand)operand [differentiate-log]

Group: differentiate. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar expression in independent scalar coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts operand coordinate) (if (differentiable-term? (quasiquote (log (unquote operand))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)) (math-factso facts (quasiquote ((positive (unquote operand))))))

differentiate-function

Apply the shared function chain rule using one-based argument positions. C1 permits one derivative, C2 permits two, and smooth permits higher derivatives.

(37)Declared scalar function and sufficient regularity for the next derivative ; algorithm applicability checkedDerivative of f(u_1,...,u_n) = sum_i partial_i f(u_1,...,u_n) derivative of u_i [differentiate-function]

Group: differentiate. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: Declared scalar function and sufficient regularity for the next derivative

Exact scalar-algebra check: unsupported.

evaluate-constant

(38)exact scalar arithmetic ; algorithm applicability checkedexact constant arithmetic [evaluate-constant]

Group: calculate. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: exact scalar arithmetic

Exact scalar-algebra check: unsupported.

collect-like-terms

(39)exact scalar arithmetic ; algorithm applicability checkeda*X + b*X = (a+b)*X [collect-like-terms]

Group: collect. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: exact scalar arithmetic

Exact scalar-algebra check: unsupported.

combine-coefficients

(40)exact scalar arithmetic ; algorithm applicability checkeda*(b*X) = (a*b)*X [combine-coefficients]

Group: collect. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: exact scalar arithmetic

Exact scalar-algebra check: unsupported.

normalize-scalar

(41)real scalar algebra ; algorithm applicability checkednormalize-scalar [normalize-scalar]

Group: normalize. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: real scalar algebra

Exact scalar-algebra check: unsupported.

cancel-scalar-factors

(42)real scalar algebra ; algorithm applicability checkedcancel-scalar-factors [cancel-scalar-factors]

Group: cancel. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: real scalar algebra

Exact scalar-algebra check: unsupported.

cancel-common-factor

A check-only cancellation theorem. Its denominator side condition is explicit in the premise and must remain in the surrounding domain requirements.

(43)nonzero⁡(factor) value:scalar factor:scalarvalue×factorfactor→value [cancel-common-factor]

Group: cancel. Modes: (check). Declarative RuleSpec; metavariables denote terms. Condition: real scalar terms; A is nonzero

Exact scalar-algebra check: semantically-checked.

expand-scalar-product

(44)real scalar algebra ; algorithm applicability checkedexpand-scalar-product [expand-scalar-product]

Group: expand. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: real scalar algebra

Exact scalar-algebra check: unsupported.

normalize-function-prime

(45)differentiable⁡(name) (unquote (quasiquote (prime (var (unquote name)) (unquote argument)))):scalarname′⁡(argument)→(darg ((unquote name) (unquote argument)) (num "1")) [normalize-function-prime]

Group: normalize. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: Declared unary scalar function with one derivative

Exact scalar-algebra check: unsupported.

partial-constant

(46)coordinate⁡(coordinate) differentiable⁡(expression) (unquote (quasiquote (unquote expression))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(expression)→0 [partial-constant]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts expression coordinate) (if (differentiable-term? (quasiquote (unquote expression)) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)) (project (expression) (if (math-number-value expression) succeed fail)))

partial-variable

(47)coordinate⁡(coordinate) differentiable⁡(coordinate) (unquote (quasiquote (var (unquote coordinate)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(coordinate)→1 [partial-variable]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts coordinate) (if (differentiable-term? (quasiquote (var (unquote coordinate))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

partial-independent

(48)coordinate⁡(coordinate) differentiable⁡(other) (unquote (quasiquote (var (unquote other)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(other)→0 [partial-independent]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts other coordinate) (if (differentiable-term? (quasiquote (var (unquote other))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)) (=/= other coordinate) (project (facts input) (if (independent-variable? facts input) succeed fail)))

partial-negation

(49)coordinate⁡(coordinate) differentiable⁡(−operand) (unquote (quasiquote (- (unquote operand)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(−operand)→−(∂∂coordinate(operand)) [partial-negation]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts operand coordinate) (if (differentiable-term? (quasiquote (- (unquote operand))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

partial-sum

(50)coordinate⁡(coordinate) differentiable⁡(left+right) (unquote (quasiquote (+ (unquote left) (unquote right)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(left+right)→∂∂coordinate(left)+∂∂coordinate(right) [partial-sum]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts left right coordinate) (if (differentiable-term? (quasiquote (+ (unquote left) (unquote right))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

partial-difference

(51)coordinate⁡(coordinate) differentiable⁡(left−right) (unquote (quasiquote (- (unquote left) (unquote right)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(left−right)→∂∂coordinate(left)−∂∂coordinate(right) [partial-difference]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts left right coordinate) (if (differentiable-term? (quasiquote (- (unquote left) (unquote right))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

partial-product

(52)coordinate⁡(coordinate) differentiable⁡(left×right) (unquote (quasiquote (* (unquote left) (unquote right)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(left×right)→∂∂coordinate(left)×right+left×∂∂coordinate(right) [partial-product]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts left right coordinate) (if (differentiable-term? (quasiquote (* (unquote left) (unquote right))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

partial-power

(53)coordinate⁡(coordinate) differentiable⁡(baseexponent) (unquote (quasiquote (^ (unquote base) (num (unquote exponent))))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(baseexponent)→result [partial-power]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts base exponent result coordinate) (if (differentiable-term? (quasiquote (^ (unquote base) (num (unquote exponent)))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)) (project (exponent base coordinate) (let ((n (natural-value exponent))) (if (= n 0) (== result (quote (num "0"))) (== result (quasiquote (* (* (num (unquote exponent)) (^ (unquote base) (num (unquote (number->string (- n 1)))))) (partial (unquote base) (var (unquote coordinate))))))))))

partial-quotient

(54)coordinate⁡(coordinate) differentiable⁡(leftright) (unquote (quasiquote (/ (unquote left) (unquote right)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(leftright)→∂∂coordinate(left)×right−left×∂∂coordinate(right)right2 [partial-quotient]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts left right coordinate) (if (differentiable-term? (quasiquote (/ (unquote left) (unquote right))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)) (math-factso facts (quasiquote ((nonzero (unquote right))))))

partial-sin

(55)coordinate⁡(coordinate) differentiable⁡(sin⁡(operand)) (unquote (quasiquote (sin (unquote operand)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(sin⁡(operand))→∂∂coordinate(operand)×cos⁡(operand) [partial-sin]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts operand coordinate) (if (differentiable-term? (quasiquote (sin (unquote operand))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

partial-cos

(56)coordinate⁡(coordinate) differentiable⁡(cos⁡(operand)) (unquote (quasiquote (cos (unquote operand)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(cos⁡(operand))→−(∂∂coordinate(operand)×sin⁡(operand)) [partial-cos]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts operand coordinate) (if (differentiable-term? (quasiquote (cos (unquote operand))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

partial-exp

(57)coordinate⁡(coordinate) differentiable⁡(exp⁡(operand)) (unquote (quasiquote (exp (unquote operand)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(exp⁡(operand))→∂∂coordinate(operand)×exp⁡(operand) [partial-exp]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts operand coordinate) (if (differentiable-term? (quasiquote (exp (unquote operand))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)))

partial-log

(58)coordinate⁡(coordinate) differentiable⁡(log⁡(operand)) (unquote (quasiquote (log (unquote operand)))):scalar (unquote (quasiquote (var (unquote coordinate)))):scalar ; executable guards apply∂∂coordinate(log⁡(operand))→∂∂coordinate(operand)operand [partial-log]

Group: partial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar expression in explicitly declared independent coordinates

Exact scalar-algebra check: unsupported.

Executable guards
((project (facts operand coordinate) (if (differentiable-term? (quasiquote (log (unquote operand))) facts) succeed fail)) (project (facts coordinate) (if (eq? (math-variable-role facts (quasiquote (var (unquote coordinate)))) (quote parameter)) fail succeed)) (math-factso facts (quasiquote ((positive (unquote operand))))))

partial-function-chain

Apply the shared function chain rule using one-based argument positions. C1 permits one derivative, C2 permits two, and smooth permits higher derivatives.

(59)Declared scalar function and sufficient regularity for the next derivative ; algorithm applicability checkedDerivative of f(u_1,...,u_n) = sum_i partial_i f(u_1,...,u_n) derivative of u_i [partial-function-chain]

Group: partial. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: Declared scalar function and sufficient regularity for the next derivative

Exact scalar-algebra check: unsupported.

partial-coordinate-symmetry

(60)C2 operand; coordinate names and argument positions have separate orders ; algorithm applicability checkedExchange mixed derivatives into ascending order [partial-coordinate-symmetry]

Group: normalize. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: C2 operand; coordinate names and argument positions have separate orders

Exact scalar-algebra check: unsupported.

partial-argument-symmetry

(61)C2 operand; coordinate names and argument positions have separate orders ; algorithm applicability checkedExchange mixed derivatives into ascending order [partial-argument-symmetry]

Group: normalize. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: C2 operand; coordinate names and argument positions have separate orders

Exact scalar-algebra check: unsupported.

components-sum

(62)Cartesian scalar entries(abc)+(def)→(a+db+ec+f) [components-sum]

Group: components. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: Cartesian scalar entries

Exact scalar-algebra check: unsupported.

components-difference

(63)Cartesian scalar entries(abc)−(def)→(a−db−ec−f) [components-difference]

Group: components. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: Cartesian scalar entries

Exact scalar-algebra check: unsupported.

components-negation

(64)Cartesian scalar entries−((abc))→(−a−b−c) [components-negation]

Group: components. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: Cartesian scalar entries

Exact scalar-algebra check: unsupported.

components-scale-left

(65)s:scalars×(abc)→(s×as×bs×c) [components-scale-left]

Group: components. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: Cartesian scalar entries

Exact scalar-algebra check: unsupported.

components-scale-right

(66)s:scalar(abc)×s→(s×as×bs×c) [components-scale-right]

Group: components. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: Cartesian scalar entries

Exact scalar-algebra check: unsupported.

components-quotient

(67)s:scalar(abc)s→(asbscs) [components-quotient]

Group: components. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: Cartesian scalar entries

Exact scalar-algebra check: unsupported.

components-dot

(68)Cartesian scalar entries(abc)·(def)→a×d+b×e+c×f [components-dot]

Group: components. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: Cartesian scalar entries

Exact scalar-algebra check: unsupported.

components-cross

(69)Cartesian scalar entries(abc)×(def)→(b×f−c×ec×d−a×fa×e−b×d) [components-cross]

Group: components. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: Cartesian scalar entries

Exact scalar-algebra check: unsupported.

components-zero

(70)Cartesian scalar entries0→→(000) [components-zero]

Group: components. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: Cartesian scalar entries

Exact scalar-algebra check: unsupported.

gradient-components

(71)differentiable⁡(f) f:scalar ; executable guards apply∇f→(∂∂x(f)∂∂y(f)∂∂z(f)) [gradient-components]

Group: spatial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 scalar field in an ordered Cartesian basis

Exact scalar-algebra check: unsupported.

Executable guards
((basiso facts x y z))

divergence-components

(72)differentiable⁡((abc)) ; executable guards apply∇·((abc))→∂∂x(a)+∂∂y(b)+∂∂z(c) [divergence-components]

Group: spatial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 components in an ordered Cartesian basis

Exact scalar-algebra check: unsupported.

Executable guards
((basiso facts x y z))

curl-components

(73)differentiable⁡((abc)) ; executable guards apply∇×((abc))→(∂∂y(c)−∂∂z(b)∂∂z(a)−∂∂x(c)∂∂x(b)−∂∂y(a)) [curl-components]

Group: spatial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C1 components in an oriented ordered Cartesian basis

Exact scalar-algebra check: unsupported.

Executable guards
((basiso facts x y z))

laplacian-scalar-components

(74)c2⁡(f) f:scalarΔf→∇·(∇f) [laplacian-scalar-components]

Group: spatial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C2 scalar field in Cartesian space

Exact scalar-algebra check: unsupported.

laplacian-vector-components

(75)c2⁡((abc))Δ((abc))→(ΔaΔbΔc) [laplacian-vector-components]

Group: spatial. Modes: (forward check). Declarative RuleSpec; metavariables denote terms. Condition: C2 Cartesian components

Exact scalar-algebra check: unsupported.

integrate-polynomial

(76)Exact polynomials in independent coordinates and constant parameters; bounded sparse expansion ; algorithm applicability checkedThe unique polynomial primitive with zero value at the integration coordinate's origin [integrate-polynomial]

Group: polynomial-calculus. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: Exact polynomials in independent coordinates and constant parameters; bounded sparse expansion

Exact scalar-algebra check: unsupported.

solve-polynomial-poisson

(77)Exact polynomials in independent coordinates and constant parameters; bounded sparse expansion ; algorithm applicability checkedA polynomial particular solution of Delta u = f, with zero initial value and first derivative in the selected axis [solve-polynomial-poisson]

Group: polynomial-calculus. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: Exact polynomials in independent coordinates and constant parameters; bounded sparse expansion

Exact scalar-algebra check: unsupported.

expand-polynomial

(78)Exact polynomials in explicit coordinates/parameters; bounded expansion ; algorithm applicability checkedExact sparse polynomial expansion [expand-polynomial]

Group: polynomial-calculus. Modes: (forward check). Algorithm rule; this description has no fixed RuleSpec. Condition: Exact polynomials in explicit coordinates/parameters; bounded expansion

Exact scalar-algebra check: unsupported.

math-rule->content把指定规则名转成文章内容:包括其结构化模式和可用说明。因此上面的规则卡片和运行时目录来自同一份定义,不会各自漂移。

若想只看写过说明的规则,可以约束documentation不等于#f:

((curl-curl-identity "Replace the curl of a curl by the gradient of the divergence minus the vector Laplacian. The field must be C2; declaring it divergence-free is a separate premise and a separate rewrite.") (grad-product "Differentiate the product of two scalar fields with the gradient product rule. C1 regularity suffices; no second derivatives or smoothness assumptions are required.") (curl-product "Expand the curl of a scalar times a vector field in oriented Cartesian space. The cross product is grad(f) cross E, in that order; reversing it changes the sign. Both factors need C1 regularity.") (differentiate-product "Generate the derivative of each factor separately and sum the two products. This rule constructs derivative terms; subsequent differentiation and simplification steps compute and reduce them.") (differentiate-quotient "Apply the quotient rule on the domain where the denominator is nonzero. The derivative remains a symbolic term until later passes process its operands and simplify the result.") (differentiate-function "Apply the shared function chain rule using one-based argument positions. C1 permits one derivative, C2 permits two, and smooth permits higher derivatives.") (cancel-common-factor "A check-only cancellation theorem. Its denominator side condition is explicit in the premise and must remain in the surrounding domain requirements.") (partial-function-chain "Apply the shared function chain rule using one-based argument positions. C1 permits one derivative, C2 permits two, and smooth permits higher derivatives."))

规则docstring解释其数学含义、适用条件或容易误解的细节,不会被当作新前提,也不会更改规则逻辑。这让说明可用于程序查询,同时保留普通Scheme函数的简单定义方式。