|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
The escape signal of a Mandelbrot orbit, tagged as a sequence-shape witness: a monotone {Unknown,True}-valued Path<Ternary> that is structurally absorptive for every parameter c.
More...


Friends | |
|
template<IsComplexScalar R2, typename EscapeCriterion> requires IsEscapeCriterion<EscapeCriterion, Complex<R2>> | |
| constexpr auto | orbit_divergence_path (const OrbitPath< R2 > &orbit, EscapeCriterion criterion) -> DivergencePath< R2 > |
Additional Inherited Members | |
| Public Types inherited from dedekind::sequences::Path< Ternary > | |
| using | Domain |
| using | Codomain |
| using | cardinality_type |
| using | index_type |
| Public Member Functions inherited from dedekind::sequences::Path< Ternary > | |
| constexpr Codomain | operator() (std::size_t i) const |
| constexpr Ternary | at (std::size_t i) const |
| constexpr std::size_t | size () const noexcept |
| constexpr auto | begin () const noexcept |
| constexpr auto | end () const noexcept |
| constexpr auto | cardinality () const noexcept |
| The Path is generally viewed as a mapping from N. | |
| Public Attributes inherited from dedekind::sequences::Path< Ternary > | |
| std::function< Ternary(std::size_t)> | generator |
| The underlying mapping f(n). | |
| std::size_t | extent |
The escape signal of a Mandelbrot orbit, tagged as a sequence-shape witness: a monotone {Unknown,True}-valued Path<Ternary> that is structurally absorptive for every parameter c.
The divergence path of orbit_divergence_path is eventually constant regardless of c:
c (outside \(M\)): the path is Unknown until the escape index, then True forever (True is the absorbing element of Kleene OR — the IsAbsorptiveSequence tail factors through a singleton \(\{z\}\) with \(z\) = True).c (inside \(M\)): the path is the constant Unknown sequence — eventually-constant from index 0, the degenerate absorptive case ( \(z = @c Unknown\)).So the IsAbsorptiveSequence shape holds at the type level for the carrier as a whole, independently of the (value-level, undecidable) membership question for any individual c. This is the honest leverage the sequence API affords Mandelbrot: per-c boundedness (IsBoundedSequence ⟺ \(c \in M\)) is value-dependent and cannot be type-witnessed, but "the escape indicator is an absorptive sequence" is.
orbit_divergence_path (the only friend): the absorptive invariant is enforced by construction, not merely promised by the trait opt-in. No public constructor from an arbitrary Path<Ternary> exists, so a DivergencePath can only arise from the factory that guarantees eventual-constancy. (The .generator / .extent members inherited from Path remain writable — preserving eventual-constancy under in-place mutation is the residual honesty obligation, as for every tagged Path.)