AngouriMath

Navigation

← Back to list of members

RulesUpTo​(AngouriMath.​Core.​Transformations.​RewriteRuleGrowth)

 Method (no overloads)

Summary

The rules of MatchedRules whose justification is at least
SoundUnderAssumptions and whose
Growth is no wider than widest.

Parameter "widest"

The widest growth admitted, as a ceiling in the order
Collects, Rearranges,
Expands, Unknown —
increasing risk, and the order the values are declared in.

Remarks

Unknown is the last stop rather than an excluded
one, and that is a measurement rather than a preference.
It reads like the value a
ceiling should refuse — it means the rule's growth was not judged, because its
replacement is code rather than a written pattern, so admitting it accepts a rewrite
nobody measured. But it is where the rules are: of the 324 rules in
MatchedRules, 124 collect, 49 rearrange, 32 expand and 123 are
unjudged
. A ceiling that refuses the fourth value still refuses 38% of the library,
and what is left could not do much when this was written — over six expression pairs
equal only through a larger intermediate form, the
Rearranges ceiling proved two, and
Expands proved the same two. The third was proved
only with the unjudged rules admitted.
Those figures moved and this paragraph did not. It read "26 collect, 17
rearrange, 9 expand and 270 are unjudged", and 84% — measured before the growth
declarations went in, which took the unjudged count from 261 to 152. The argument
survives the correction and the arithmetic in it did not, which is the reason to state
counts rather than a conclusion drawn from them. RuleAuthoringGuideTest holds all
four of these now, so the next time they move this remark fails with them.
So the dial that matters is not how far a rule may enlarge; it is whether rules nobody
classified may fire at all. Naming that as the widest setting makes it a request a
caller has to make on purpose, which is the most this can honestly do about it.
And the ceiling is the scheduling policy, not a stand-in for one. When both
directions of an inverse pair are declared, RulesUpTo(Rearranges) keeps the
collecting one and withholds the expanding one, mechanically, for every such pair.
sin(2x) and 2 sin x cos x run away at the widest ceiling and saturate at
the safe one because ExpandMultipleAngle declares
Expands. Growth is the direction marker. A pair whose
expanding direction is unjudged is the one case this cannot protect, and that is what
declaring a growth for a rule is for. RunawayBreadthTest holds this.

























Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 4378 pages online