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)
}