Abstract
We lift real functions f: R -> R to symbolic numerals (m, a) by acting on the magnitude and carrying the alignment. On domains where f is monotone (and where branch/guard rules are declared), the lift preserves classical order on the magnitude channel and composes cleanly. Continuity and Lipschitz properties pass to the lift under product metrics. Under collapse phi(m,a) = m, all statements reduce to the classical theory.
Function lift (definition and guards)
For a unary real function f and a symbolic input x = (m, a):
f*(m, a) = ( f(m) , a ) # alignment carry
Domain D. Use the classical domain of f (possibly restricted to a monotone sub-interval).
Guard policy (manifest):
domain_guard = "error" | "clamp" | "nan"
branch = <principal | named branch> # for multivalued f (e.g., roots, inverse trig)
Collapse check. phi( f*(m,a) ) = f(m).
Composition law
For functions f and g where g∘f is defined on D:
(g ∘ f)*(m, a) = ( g(f(m)) , a ) = g*( f*(m, a) )
Composition is associative and respects guards/branches inherited from the classical composition.
Monotonicity and order
Let <=_m denote magnitude order (compare magnitudes only).
Magnitude order (base rule).
If f is increasing on D:
(m1,a1) <=_m (m2,a2) and m1,m2 in D ⇒ f*(m1,a1) <=_m f*(m2,a2)
If f is decreasing on D, the inequality reverses.
Strength order (S_beta) — sufficient conditions.
Let <=_beta be the preorder induced by S_beta(m,a) = m*(1 - beta*(1 - a)), beta in [0,1]. Because the alignment factor depends on a, global preservation is not guaranteed without assumptions. Two useful sufficient conditions:
- Alignment-slice preservation. If you compare points with the same alignment (
a1 = a2) andfis increasing onD, thenf*preserves<=_beta; iffis decreasing, it reverses<=_beta. - Magnitude-only bounding. When using selectors like
clamp(2.37) withorder_metric="magnitude", monotone lifts preserve the chosen order by construction.
When monotonicity changes (e.g., even powers, cosh), make order claims branchwise (see 2.31, 2.34).
Continuity, limits, and Lipschitz
Work in rapidity for alignment: u = atanh( clamp(a, -1+eps, +1-eps) ), eps = 1e-6.
Continuity. If f is continuous at m, then for any sequence (m_n, a_n) with
m_n -> m and u_n = atanh(a_n) -> u = atanh(a),
we have
f*(m_n, a_n) -> ( f(m), a ) # alignment carried; see 2.16 for limits/continuity
Uniform continuity / interchange. On a compact D, if f is uniformly continuous, then the lift is uniformly continuous under any product metric such as
d( (m1,u1), (m2,u2) ) = |m1 - m2| + c * |u1 - u2| (c > 0)
Lipschitz transfer. If |f(m1) - f(m2)| <= L * |m1 - m2| on D, then under the product metric above,
d( f*(x1), f*(x2) ) <= max(L, 1) * d(x1, x2)
(the magnitude part contracts by L, the alignment part is 1-Lipschitz because it is carried).
Piecewise-monotone functions
If f is only piecewise monotone, decompose D into monotone components {D_k} and lift with piecewise selectors (2.35). Order and continuity statements apply within each D_k. Cross-branch comparisons should use your declared selector policy and symbolic preorder.
Worked examples
A) Increasing map with composition.f(m) = exp(m) on D = [-1, 1], g(m) = log(m) on g’s domain m > 0.
x1 = (-0.5, +0.2) → f*(x1) = ( exp(-0.5), +0.2 ) ≈ (0.6065, +0.2)
x2 = ( 0.4, -0.6) → f*(x2) = ( exp( 0.4), -0.6 ) ≈ (1.4918, -0.6)
Magnitude order: -0.5 < 0.4 ⇒ exp(-0.5) < exp(0.4) ⇒ preserved.
Composition:
(g ∘ f)*(x) = g*( f*(x) ) = ( log( exp(m) ), a ) = ( m , a ) for m in D
B) Decreasing map (reciprocal).f(m) = 1/m on D = (0, +inf) (guard out m <= 0).
x1 = ( 2.0, 0.3 ) → f*(x1) = ( 0.5 , 0.3 )
x2 = ( 0.5, -0.4 ) → f*(x2) = ( 2.0 ,-0.4 )
Since f is decreasing, the magnitude order is reversed: 2.0 > 0.5 but 0.5 < 2.0.
C) Piecewise-monotone (square).f(m) = m^2 is decreasing on (-inf,0] and increasing on [0,+inf).
xL = (-3, 0.1) → f*(xL) = ( 9, 0.1 )
xR = ( 2, 0.9) → f*(xR) = ( 4, 0.9 )
Order claims are branchwise; cross-branch comparisons should use selector/preorder rules (2.31, 2.37).
Implementation notes (manifest)
domain = D(list intervals);branch = <name>if multi-valued.domain_guard = "error"(default) |"clamp"|"nan".order_metric = "magnitude"(default for lift statements) or"S_beta"(declarebeta).continuity_metric = |Δm| + c|Δu|with chosenc; recordLif using Lipschitz bounds.- Use
u = atanh(a)internally where any algorithm needs linear alignment; reporta = tanh(u).
Takeaway
The lift f*(m,a) = (f(m), a) is the canonical way to apply real functions to symbolic numerals. It composes exactly, preserves or reverses magnitude order according to the monotonicity of f, and inherits continuity/Lipschitz properties under product metrics. Branchwise reasoning and clear guard policies keep the lift collapse-safe; under collapse, everything is classical.
Navigation
Previous → Min/Max/Clamp (formalized) (2.37)
Next → Series & analytic functions (2.39)
Disclaimer
Observation only. Results reproduce mathematically; domain claims require independent peer review. Defaults: mult_mode = M2, clamp_eps = 1e-6, |a| < 1. All formulas are presented in plain text. Collapse uses phi(m,a) = m.