File size: 829 Bytes
d7b24f0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | /*
* Copyright (C) 2026 HCALC / Foundry J contributors
* SPDX-License-Identifier: AGPL-3.0-only
*
* Module: Recursion — prime-indexed recursion (bounded, not unrestricted).
* Cite: FOUNDRY_J_CROSSLINKS.md §0; HCALC pipeline.
* GapId: Gap-Tp-from-P64 (COHERENCE.md)
* Core witnesses (intent): rec_step, P64.
*/
module modules/Recursion
open modules/State
open modules/PrimeIndex
open modules/Transform
pred recurse_via_Tp[t: Time, tp: TpMap, sNext: State] {
tp.index in P64Carrier.primes
sNext in (t.at).(tp.apply)
}
/* Assert id: INV_bounded_recursion_depth */
fact INV_bounded_recursion_depth {
all t: Time | lone t.next
}
assert INV_recursion_uses_prime_index {
/* INV_recursion_uses_prime_index */
all tp: TpMap | tp.index in P64Carrier.primes or
(some e: PrimeExtension | tp.index in e.extra)
}
|