| %% CARRY — Adversarial Twin Prolog Kernel | |
| %% Mirrors CARTO's carto.pl but routes through the C3 triad | |
| %% Layer: Curry (symbolic) → Crystal (CSP) → C3 (ABI-verified) | |
| :- module(carry_kernel, [ | |
| carry_layer/2, | |
| carry_trusted/2, | |
| carry_entropy_ok/2, | |
| carry_transition/4, | |
| carry_r1/2, | |
| carry_r2/2 | |
| ]). | |
| % --- Layer definitions ------------------------------------------------------- | |
| carry_layer(curry, symbolic_constraint_solving). | |
| carry_layer(crystal, fiber_csp_concurrency). | |
| carry_layer(c3, zero_cost_abi_explicit_allocator). | |
| % --- Trust predicates (C1/C2/C3 — active => trusted) ------------------------- | |
| % V1: for c3, active is always equal to trusted | |
| carry_trusted(curry, active). | |
| carry_trusted(crystal, active). | |
| carry_trusted(c3, active). % EQUAL(active(S3), trusted(S3)) | |
| % --- Entropy gate (C4, V2) --------------------------------------------------- | |
| carry_entropy_ok(Layer, E) :- | |
| carry_layer(Layer, _), | |
| E =< 0.20. | |
| % --- Transformation rules ---------------------------------------------------- | |
| carry_r1(curry, crystal) :- !. % R1: FFI_C_ABI | |
| carry_r2(crystal, c3) :- !. % R2: Native_Binding | |
| % --- FSM transition table (DAG edges) ---------------------------------------- | |
| % carry_transition(+FromState, +Event, +Layer, -ToState) | |
| carry_transition(input, load_input, curry, memory). | |
| carry_transition(memory, orchestrate_memory, crystal, retrieval). | |
| carry_transition(retrieval, bind_retrieval, c3, transform). | |
| carry_transition(transform, vector_transform, c3, constraint). | |
| carry_transition(constraint, verify_abi, c3, proof). | |
| carry_transition(proof, seal_proof, c3, output). | |
| carry_transition(output, execute_hardware, c3, output). % terminal | |
| % --- Guard: full step with entropy check ------------------------------------- | |
| carry_step(From, Event, Layer, E, To) :- | |
| carry_entropy_ok(Layer, E), | |
| carry_trusted(Layer, active), | |
| carry_transition(From, Event, Layer, To). | |