Effect4

R10: Library code inherits theorems: a composed module's law is Agrees profile module expansionreq:R10

Requirement R10: Composed libraries inherit theoremsabout:req:R10

This page explains requirement R10 in Effect4. It covers what the requirement asks for library forms, why behavioral inheritance matters for composite modules, and how the property is checked.

What the requirement asksabout:req:R10:what-it-asks

Requirement R10 demands that high-level library modules inherit formal theorems from their underlying primitive representations (docs/core/system-map.md §8, decisions row 79, DI-89):

  • Agreement laws: each composed module satisfies Agrees profile module expansion on a named profile.
  • Form obligations: every authoring form owes a typing lemma, a behavior law, lexical scoping, module reader admission, and a stable identity.
  • Expansion stability: composite modules like Queue, Pool and Semaphore state step agreement against their primitive expansions.

High-level library utilities must not introduce unvetted runtime primitives.

Why it mattersabout:req:R10:why-it-matters

Effect provides extensive library modules for concurrent data structures, synchronization primitives, and resource pools.

If composite modules were treated as black boxes with hand-written runtime implementations, their correctness could not be formally assured.

Behavioural agreement is what lets library code take the core language's typing and simulation theorems, where each is proved.

How it is checkedabout:req:R10:how-it-is-checked

The requirement is checked by proving form typing lemmas and step agreement laws for library structures:

  • Form typing lemmas for combinators like andThenEffect, ensuring, and forkScopedDefault are stated in src/Effect4/Laws/Codegen/Forms.lean.
  • Step agreement laws relating composite modules to primitive expansions are stated for Latch, Pool, PubSub, Queue, Ref, and Semaphore in their respective profile modules.
  • Stream array step agreement is stated by arrayStep_agrees (src/Effect4/Laws/Library/Stream/Array.lean).

The plan on this page gives each theorem's status and the goals it rests on.

retries_declaredgoalqueueWorkersmoduloroutingmoduloreleases_oncemoduloheld_within_fedmoduloqueue_settledmodulofed_accountedmodulounauthorized_calls_nothingmodulocleanup_stepmodulojobs_stepgoalbound_in_treemodulorest_stepgoallogs_historygoalrequest_leadsgoal
The open part of R10: its planned goals and the theorems proved modulo them. An arrow goes from a node to a node its proof reaches first.
The figure in words
R10 by concept: each concept its nodes are placed at, by tag or by module. An arrow goes where a node's proof reaches a node of another concept.
The figure in words
NodeStatusRests onNearest nodes
andThenEffect_typedproved—check_sound, check_complete
andThenContinuation_typedproved—check_sound, check_complete
andThenThunk_typedproved—andThenEffect_typed
as_typedproved—check_sound, check_complete
asVoid_typedproved—as_typed
tapContinuation_typedproved—normalize_idem, check_sound, check_complete
tapEffect_typedproved—normalize_idem, check_sound, check_complete
ensuring_typedproved—check_sound, check_complete
void_typedproved—check_complete, check_sound
die_typedproved—check_complete, check_sound
yieldKey_typedproved—check_complete, check_sound
matchCause_typedproved—check_sound, check_complete
matchCauseEffect_typedproved—check_sound, check_complete
yieldNow_typedproved—check_complete, check_sound
forkChildDefault_typedproved—check_sound, check_complete
forkDetachDefault_typedproved—check_sound, check_complete
forkInDefault_typedproved—check_sound, check_complete
forkScopedDefault_typedproved—check_sound, check_complete
releaseOne_typedproved—check_sound, check_complete
mask_printed_form_profileproved—saved_mask_restoration, read_print, check_sound, check_complete
build_retainsproved—finishBuild_retains, checkInput_eq_none_iff
elaborateModule_no_declarationsproved——
elaboration_eq_getDproved——
finishBuild_retainsproved—checkInput_eq_none_iff
mapDoneEffectOf_protocolproved—matchAnswer_meaning
mapEffectOf_protocolproved—matchAnswer_meaning
awaitStep_agreesproved—sound
Latch.Model.closeStep_agreesproved—sound
flushStep_agreesproved—sound
initialStep_agreesproved—sound
isOpenStep_agreesproved—sound
latch_registration_agreesproved—Latch.Model.withdrawStep_agrees, awaitStep_agrees, initialStep_agrees
latch_steps_agreeproved—Latch.Model.closeStep_agrees, flushStep_agrees, wakeStep_agrees, isOpenStep_agrees
wakeStep_agreesproved—sound
Latch.Model.withdrawStep_agreesproved—sound
frameproved——
soundproved—reads_ascribe
cell_readproved——
reads_ascribeproved——
step_updatesproved——
available_evalproved——
available_readsproved—available_eval, sound
bookkeeping_agreesproved—reserve_reads, tryTake_reads, available_reads, PartitionedSemaphore.Model.initial_reads
PartitionedSemaphore.Model.initial_evalproved——
PartitionedSemaphore.Model.initial_readsproved—PartitionedSemaphore.Model.initial_eval, sound
reserve_evalproved——
reserve_readsproved—reserve_eval, sound
tryTake_evalproved——
tryTake_readsproved—tryTake_eval, sound
Pool.Model.closeStep_agreesproved—sound
drainStep_agreesproved—sound
leaseStep_agreesproved—sound
pool_steps_agreeproved—drainStep_agrees, Pool.Model.closeStep_agrees, Pool.Model.withdrawStep_agrees, selectStep_agrees, returnStep_agrees, leaseStep_agrees
returnStep_agreesproved—sound
selectStep_agreesproved—sound
Pool.Model.withdrawStep_agreesproved—sound
close_attemptproved—step_keeps_cell, closeStep_types, step_updates, Pool.Model.closeStep_agrees
drain_attemptproved—step_keeps_cell, drainStep_types, step_updates, drainStep_agrees
drain_attempt_mintedproved—drain_attempt
lease_attemptproved—step_keeps_cell, leaseStep_types, step_updates, leaseStep_agrees
lease_attempt_mintedproved—lease_attempt
Pool.make_makesproved——
return_attemptproved—step_keeps_cell, returnStep_types, step_updates, returnStep_agrees
return_attempt_mintedproved—lift_member, normalize_idem, return_attempt
select_attemptproved—step_keeps_cell, selectStep_types, step_updates, selectStep_agrees
withdraw_attemptproved—step_keeps_cell, Pool.Model.withdrawStep_types, step_updates, Pool.Model.withdrawStep_agrees
withdraw_attempt_mintedproved—withdraw_attempt
tagHit_recordproved——
modify_loopproved—loop_sync_op
sub_instantiate_polarityproved——
semiring_lawsproved——
PubSub.Model.initial_evalproved——
PubSub.Model.initial_readsproved—PubSub.Model.initial_eval, sound
poll_evalproved——
poll_readsproved—poll_eval, sound
single_steps_agreeproved—slide_reads, unsubscribe_reads, poll_reads, tryPublish_reads, subscribe_reads, PubSub.Model.initial_reads
slide_evalproved——
slide_readsproved—slide_eval, sound
subscribe_evalproved——
subscribe_readsproved—subscribe_eval, sound
tryPublish_evalproved——
tryPublish_readsproved—tryPublish_eval, sound
unsubscribe_evalproved——
unsubscribe_readsproved—unsubscribe_eval, sound
catchDone_meaningproved——
matchAnswer_meaningproved——
matchEffect_meaningproved——
matchEffect_protocolproved—matchEffect_meaning, matchAnswer_meaning
offer_loopproved—offer_jobs, modify_loop, offer_attempt
take_loopproved—take_jobs, modify_loop, Queue.take_attempt
acceptLoop_length_leproved——
first_profile_closedproved——
flatMap_splitproved——
offerStep_agreesproved—sound
offer_jobsproved——
pollStep_agreesproved—sound
poll_jobsproved—stateJobs_afterAccept
positive_suspend_step_capacityproved—acceptLoop_length_le
queue_steps_agreeproved—withdrawOffer_agrees, withdrawTake_agrees, sizeStep_agrees, pollStep_agrees, offerStep_agrees, Queue.Model.takeStep_agrees
sizeStep_agreesproved—sound
stateJobs_afterAcceptproved——
Queue.Model.takeStep_agreesproved—sound
take_jobsproved—stateJobs_afterAccept
withdrawOffer_agreesproved—sound
withdrawOffer_jobsproved—flatMap_split
withdrawTake_agreesproved—sound
withdrawTake_jobsproved——
bounded_makesproved——
offer_attemptproved—step_keeps_cell, offerStep_types, step_updates, offerStep_agrees
offer_attempt_mintedproved—offer_attempt
offer_withdrawalproved—step_keeps_cell, withdrawOffer_types, step_updates, withdrawOffer_agrees
offer_withdrawal_mintedproved—offer_withdrawal
poll_attemptproved—step_keeps_cell, pollStep_types, step_updates, pollStep_agrees
size_readproved—sizeStep_agrees, cell_read
Queue.take_attemptproved—step_keeps_cell, Queue.Model.takeStep_types, step_updates, Queue.Model.takeStep_agrees
Queue.take_attempt_mintedproved—Queue.take_attempt
Queue.take_withdrawalproved—step_keeps_cell, withdrawTake_types, step_updates, withdrawTake_agrees
Queue.take_withdrawal_mintedproved—Queue.take_withdrawal
decode_modifySomeproved——
decode_optionproved——
encode_getDproved——
getAndSet_agreesproved—kernel_agrees
getAndUpdateSome_agreesproved—decode_option, kernel_agrees
getAndUpdate_agreesproved—kernel_agrees
get_agreesproved—kernel_agrees
kernel_agreesproved——
make_agreesproved——
modifySome_agreesproved—encode_getD, decode_modifySome, kernel_agrees
modify_agreesproved—kernel_agrees
modify_callback_agreesproved—modify_agrees, sound
ref_steps_agreeproved—modifySome_agrees, modify_agrees, updateSomeAndGet_agrees, getAndUpdateSome_agrees, updateSome_agrees, updateAndGet_agrees, getAndUpdate_agrees, update_agrees, setAndGet_agrees, getAndSet_agrees, set_agrees, get_agrees, make_agrees
setAndGet_agreesproved—kernel_agrees
set_agreesproved—kernel_agrees
updateAndGet_agreesproved—kernel_agrees
updateSomeAndGet_agreesproved—encode_getD, decode_option, kernel_agrees
updateSome_agreesproved—decode_option, kernel_agrees
update_agreesproved—kernel_agrees
releaseStep_agreesproved—sound
semaphore_steps_agreeproved—Semaphore.Model.withdrawStep_agrees, visitStep_agrees, releaseStep_agrees, takeIfAvailableStep_agrees, Semaphore.Model.takeStep_agrees
takeIfAvailableStep_agreesproved—sound
Semaphore.Model.takeStep_agreesproved—sound
visitStep_agreesproved—sound
Semaphore.Model.withdrawStep_agreesproved—sound
Semaphore.make_makesproved——
release_attemptproved—step_keeps_cell, releaseStep_types, step_updates, releaseStep_agrees
takeIfAvailable_attemptproved—step_keeps_cell, takeIfAvailableStep_types, step_updates, takeIfAvailableStep_agrees
Semaphore.take_attemptproved—step_keeps_cell, Semaphore.Model.takeStep_types, step_updates, Semaphore.Model.takeStep_agrees
Semaphore.take_attempt_mintedproved—Semaphore.take_attempt
Semaphore.take_withdrawalproved—step_keeps_cell, Semaphore.Model.withdrawStep_types, step_updates, Semaphore.Model.withdrawStep_agrees
Semaphore.take_withdrawal_mintedproved—Semaphore.take_withdrawal
visit_attemptproved—step_keeps_cell, visitStep_types, step_updates, visitStep_agrees
visit_attempt_mintedproved—visit_attempt
arrayStep_agreesproved—modify_callback_agrees
queue_built_programproved—queue_elaborates, build_retains, checkInput_eq_none_iff
queue_elaboratesproved—queue_refs_nil, queue_main_eq, elaborateModule_no_declarations
queue_main_eqproved—queue_main_some, elaboration_eq_getD
queue_main_someproved——
queue_refs_nilproved——
workers_built_programproved—workers_elaborates, build_retains, checkInput_eq_none_iff
workers_elaboratesproved—workers_refs_nil, workers_main_eq, elaborateModule_no_declarations
workers_main_eqproved—workers_main_some, elaboration_eq_getD
workers_main_someproved——
workers_refs_nilproved——
accounted_of_ledgerproved—held_of_shows
exit_eqproved——
fed_permproved——
filterMap_gaveproved——
flatMap_offersproved——
heldWithin_of_ledgerproved—fed_perm, held_of_shows
held_of_showsproved—flatMap_offers, filterMap_gave
ledger_openedproved—opened_exit
opened_exitproved—exit_eq
jobs_stepgoaljobs_stepcheckInput_eq_none_iff
held_within_fedmodulojobs_stepheldWithin_of_ledger, exit_eq, jobs_step, checkInput_eq_none_iff, reached_history, ledger_opened, queueCrew_acquire_once_placed, queue_acquisition_sites, queue_built_program
queueWorkersmodulojobs_step, logs_history, rest_stepreleases_once, queue_settled, fed_accounted, held_within_fed, control_retires, applied_selects, receipt_inert, checkInput_eq_none_iff
infrastructure_escapesproved—checkInput_eq_none_iff
routingmodulorequest_leadsunauthorized_calls_nothing, infrastructure_escapes, tagIs_pair, checkInput_eq_none_iff
tagIs_pairproved——
retries_declaredgoalretries_declaredcheckInput_eq_none_iff
check_soundproved——
check_completeproved——
normalize_idemproved——
saved_mask_restorationproved—at_append
read_printproved—readTerm_printTerm
checkInput_eq_none_iffproved——
step_keeps_cellproved—fold_typed_atomic_update
closeStep_typesproved—typed
drainStep_typesproved—typed
leaseStep_typesproved—typed
returnStep_typesproved—typed
lift_memberproved——
selectStep_typesproved—typed
Pool.Model.withdrawStep_typesproved—typed
loop_sync_opproved—native_sync_op, iteration_below_budget, loop_of_iteration
offerStep_typesproved—offer_nodes_for_steps, message_nodes_for_steps, ascribe_formed_for_steps, typed
withdrawOffer_typesproved—typed
pollStep_typesproved—offer_nodes_for_steps, message_nodes_for_steps, ascribe_formed_for_steps, typed
Queue.Model.takeStep_typesproved—offer_nodes_for_steps, message_nodes_for_steps, ascribe_formed_for_steps, typed
withdrawTake_typesproved—typed
releaseStep_typesproved—typed
takeIfAvailableStep_typesproved—typed
Semaphore.Model.takeStep_typesproved—typed
Semaphore.Model.withdrawStep_typesproved—typed
visitStep_typesproved—typed
reached_historyproved——
queueCrew_acquire_once_placedproved—queue_placement, queue_built_program, checkInput_eq_none_iff
queue_acquisition_sitesproved——
releases_oncemodulologs_historycleanup_step, checkInput_eq_none_iff, reached_history, ledger_opened, queueCrew_acquire_once_placed, queue_acquisition_sites, queue_built_program
queue_settledmodulojobs_step, rest_stepsettled_of_ledger, rest_step, exit_eq, jobs_step, checkInput_eq_none_iff, reached_history, ledger_opened, queueCrew_acquire_once_placed, queue_acquisition_sites, queue_built_program
fed_accountedmodulojobs_step, rest_stepaccounted_of_ledger, rest_step, exit_eq, jobs_step, checkInput_eq_none_iff, reached_history, ledger_opened, queueCrew_acquire_once_placed, queue_acquisition_sites, queue_built_program
control_retiresproved——
applied_selectsproved——
receipt_inertproved——
unauthorized_calls_nothingmodulorequest_leadstree_needs_token, bound_in_tree, checkInput_eq_none_iff
at_appendproved——
readTerm_printTermproved——
fold_typed_atomic_updateproved—readTerm_printTerm, order_refl, termMaps_of_typed, listOf_upper, fits_subN, fits_normalize, normalize_idem, lift_sound, subN_trans, causeInputError_upper, matchArgsB_sound, hom_eq_cata_ty
typedproved—candsList_nil, cands_var, candsList_cons, types_ascribe, normalize_idem, subN_refl, matchArgsB_list_var_nat, matchArgsB_append, matchArgsB_cons_nil, lift_member, matchArgsB_one_var, matchArgsB_two_vars, join_eq_right_of_subN, matchArgsB_ite
native_sync_opproved——
iteration_below_budgetproved——
loop_of_iterationproved——
offer_nodes_for_stepsproved—message_nodes_for_steps
message_nodes_for_stepsproved——
ascribe_formed_for_stepsproved——
queue_placementproved——
cleanup_stepmodulologs_historyreleases, registrations, logs_history, reached_history, checkInput_eq_none_iff
settled_of_ledgerproved—within_one, spent_one, quiet_nil, settled_of_view
rest_stepgoalrest_stepcheckInput_eq_none_iff
tree_needs_tokenproved——
bound_in_treemodulorequest_leadsdenoteRowsB_straight, localWaitC_to_rowsB, request_leads, driveState_lift, evaluatePrim_producer, reached
order_reflproved——
termMaps_of_typedproved—listOf_upper, fits_subN, fits_normalize, normalize_idem, lift_sound, subN_trans, causeInputError_upper, matchArgsB_sound, hom_eq_cata_ty, fits_mono
listOf_upperproved—list_eliminator, normalize_idem, subN_trans, subN_refl, extendAll_upper
fits_subNproved—subN_trans, fits_normalize
fits_normalizeproved—subN_trans, normalize_idem
lift_soundproved—lift_transfer
subN_transproved——
causeInputError_upperproved—cause_upper, cause_mono, normalize_idem, subN_trans, subN_refl, UnionRule.lift_upper, subN_causeOf_causeUpper, subN_exitOf_causeUpper, extendAll_eq_some_iff
matchArgsB_soundproved——
hom_eq_cata_typroved——
candsList_nilproved——
cands_varproved——
candsList_consproved——
types_ascribeproved—lift_member, normalize_idem
subN_reflproved——
matchArgsB_list_var_natproved—candsList_nil, cands_var, candsList_cons
matchArgsB_appendproved—candsList_nil, cands_var, candsList_cons
matchArgsB_cons_nilproved—candsList_nil, cands_var, candsList_cons
matchArgsB_one_varproved—cands_var, candsList_nil, candsList_cons
matchArgsB_two_varsproved—candsList_nil, cands_var, candsList_cons
join_eq_right_of_subNproved—normalize_idem, subN_refl, subN_join_least
matchArgsB_iteproved—normalize_idem, candsList_nil, cands_var, candsList_cons
releasesproved—queue_built_program, checkInput_eq_none_iff, history, read
registrationsproved—queue_built_program, checkInput_eq_none_iff, replace_sum, mem_addresses_iff, at_append, closeOrder_eq, evaluatePrim_producer, replace_sum_le_omitted, driveState_lift
logs_historygoallogs_historycheckInput_eq_none_iff
within_oneproved——
spent_oneproved——
quiet_nilproved——
settled_of_viewproved——
denoteRowsB_straightproved——
localWaitC_to_rowsBproved—localRunC_compileBO
request_leadsgoalrequest_leads—
driveState_liftproved——
evaluatePrim_producerproved——
reachedproved——
fits_monoproved——
list_eliminatorproved—subN_list_iff, normalize_idem, subN_trans, subN_refl
extendAll_upperproved—extendAll_adjoint
lift_transferproved—joinAll_keeps, mapM_answer
cause_upperproved—subN_causeOf_causeUpper, subN_exitOf_causeUpper
cause_monoproved—subN_exitOf_iff, subN_causeOf_causeUpper, subN_trans, subN_causeOf_iff
UnionRule.lift_upperproved—le_joinAll, subN_trans, mapM_answer
subN_causeOf_causeUpperproved——
subN_exitOf_causeUpperproved—subN_trans, subN_refl, subN_exitOf_iff
extendAll_eq_some_iffproved——
subN_join_leastproved—normalize_idem
historyproved—decision, at_append, mem_addresses_iff, RuntimeShape.load, Execution.load
readproved——
replace_sumproved——
mem_addresses_iffproved—yieldAt_addressYield, mem_foldList_iff, addresses_eq_foldList
closeOrder_eqproved——
replace_sum_le_omittedproved—replace_sum
localRunC_compileBOproved—compilesBO_onExit, compilesBO_matchCause, compilesBO_catchIf, compilesBO_catchCause, compilesBO_select, compilesBO_bind, compilesBO_iterate, compilesBO_exit, compilesBO_suspend, denoteRowsB_straight, denoteRows_straight
subN_list_iffproved——
extendAll_adjointproved—adjoint, extendAll_eq_some_iff
joinAll_keepsproved—foldl_keeps
mapM_answerproved—mapM_cons_eq_some
subN_exitOf_iffproved——
subN_causeOf_iffproved——
le_joinAllproved—joinAll_keeps
decisionproved—driveState_lift, interrupt, ready_update, ready_emit, failure_fiber_le, closeOrder_eq, at_append, mem_addresses_iff, evaluatePrim_producer, joined, AdministrativeKept.non_evaluator, update_credits, emit_credits, replace_sum, link, noAdd_full, exit_credits, resume_command, noAdd_empty, fold_lift
RuntimeShape.loadproved—noAdd_empty
Execution.loadproved—load_funded
yieldAt_addressYieldproved——
mem_foldList_iffproved—exists_at_of_mem_foldList
addresses_eq_foldListproved——
compilesBO_onExitproved—at_append
compilesBO_matchCauseproved—at_append
compilesBO_catchIfproved—at_append
compilesBO_catchCauseproved—at_append
compilesBO_selectproved—at_append
compilesBO_bindproved—at_append
compilesBO_iterateproved—at_append
compilesBO_exitproved—denoteRowsB_straight, at_append
compilesBO_suspendproved—at_append
denoteRows_straightproved——
adjointproved—Eliminator.lift_least, subN_trans, mapM_total, Eliminator.lift_upper
foldl_keepsproved——
mapM_cons_eq_someproved——
interruptproved——
ready_updateproved—update_credits
ready_emitproved—emit_credits
failure_fiber_leproved—failure_stack_le
joinedproved—evaluatePrim_producer, closeOrder_eq, at_append, mem_addresses_iff, command
AdministrativeKept.non_evaluatorproved—noAdd_empty, interrupt, noAdd_cons, terminal
update_creditsproved—replace_sum
emit_creditsproved——
linkproved—replace_sum, add_open
noAdd_fullproved——
exit_creditsproved——
resume_commandproved—emit_credits, resume_frame_debit, update_credits
noAdd_emptyproved——
fold_liftproved—ready_emit, ready_update, joined, closeOrder_eq, at_append, mem_addresses_iff, evaluatePrim_producer, driveState_lift
load_fundedproved—load_credits
exists_at_of_mem_foldListproved—sizeOf_child_lt, foldList_cases
Eliminator.lift_leastproved—UnionRule.lift_least
mapM_totalproved—mapM_cons_eq_some
Eliminator.lift_upperproved—subN_refl, UnionRule.lift_upper
failure_stack_leproved——
commandproved—deliver, loop, AdministrativeQueue.non_evaluator, AdministrativeKept.non_evaluator, update_credits, emit_credits, failure_fiber_le, replace_sum, link, noAdd_full, exit_credits, resume_command, noAdd_empty, mem_addresses_iff
noAdd_consproved——
terminalproved—mem_addresses_iff, stable_refGet, stable_cause, stable_value
add_openproved——
resume_frame_debitproved—stable_full
load_creditsproved—compile_credits
sizeOf_child_ltproved——
foldList_casesproved——
UnionRule.lift_leastproved—subN_trans, mapM_source, joinAll_le
deliverproved—noAdd_empty, interrupt, NativeMachineShape.native, replace_sum, failure_fiber_le, mem_addresses_iff, NativeScopeDebit.native, evaluatePrim_producer, native_returned
loopproved—noAdd_empty, interrupt, NativeMachineShape.iteration, replace_sum, failure_fiber_le, mem_addresses_iff, NativeIterationDebit.iteration, evaluatePrim_producer, iteration_returned
AdministrativeQueue.non_evaluatorproved——
stable_refGetproved——
stable_causeproved——
stable_valueproved——
stable_fullproved—noAdd_full
compile_creditsproved—source_op_credits, async_route_credits
mapM_sourceproved—mapM_cons_eq_some
joinAll_leproved—joinAll_all
NativeMachineShape.nativeproved—noAdd_empty, interrupt
NativeScopeDebit.nativeproved—fin_program_credits, close_scope, replace_sum, noAdd_full, exit_credits, failure_stack_le, getCont_cause, getCont_value, exit_pop_noAdd, getCont_no_push, noPush_counts, resolve_credits, opaque_noAdd, primitive
native_returnedproved—scoped_exit_returned, primitive_returned, returned_clean, opaque_noAdd
NativeMachineShape.iterationproved—noAdd_empty, interrupt
NativeIterationDebit.iterationproved—yield_wrapper_credits, forced_wrapper, NativeScopeDebit.native, loop_top_credits, loop_top_source, loop_top
iteration_returnedproved—forced_wrapper, native_returned, loop_top_source, loop_top
source_op_creditsproved——
async_route_creditsproved——
joinAll_allproved—foldl_all
fin_program_creditsproved——
close_scopeproved—closeOrder_eq
getCont_causeproved—popFrom_cause, failure_stack_eq
getCont_valueproved—failure_stack_le, value_cap
exit_pop_noAddproved—getCont_cause_kept, getCont_value_finalizer
getCont_no_pushproved—popFrom_no_push
noPush_countsproved——
resolve_creditsproved—compile_credits
opaque_noAddproved——
primitiveproved—noAdd_full, async_noAdd, stable_full, yield_stable, layer_resolve_credits, prog_of_credits, region_credits, resolve_credits, compile_credits, at_append, mem_addresses_iff, close, link, opaque_noAdd, resumeCause_counts, resumeValue_counts, FrameDebit.step, syncOp, sync_op, sync_stack_le, failure_stack_le, getCont_cause, getCont_no_push, noPush_counts, fin_program_credits, getCont_value, exit_pop_noAdd
scoped_exit_returnedproved—returned_clean, exit_pop_noAdd
primitive_returnedproved—async_noAdd, stable_value, yield_stable, action_returned, countdown_noAdd, noAdd_asyncFinalizer, returned_clean, value_response, finalizer_returned, opaque_noAdd, step_frame
returned_cleanproved——
yield_wrapper_creditsproved—constant_stack_credits
forced_wrapperproved——
loop_top_creditsproved—failure_stack_le
loop_top_sourceproved——
loop_topproved—interrupt
foldl_allproved——
popFrom_causeproved—failure_stack_le, stack_credits_bounded
failure_stack_eqproved——
value_capproved—stack_credits_bounded, response_credits_bounded
getCont_cause_keptproved—popFrom_cause_kept
getCont_value_finalizerproved—popFrom_value_finalizer
popFrom_no_pushproved—joinPushed_no_push, noPush_append, passEvents_no_push
async_noAddproved—opaque_noAdd
yield_stableproved——
layer_resolve_creditsproved—layer_with_credits
prog_of_creditsproved—fin_program_credits
region_creditsproved—layer_resolve_credits, resolve_credits
closeproved—close_program_credits, close_scope, replace_sum
resumeCause_countsproved—armE_counts, registrations_append, starts_append, finalizerEvents_no_push, getCont_no_push, noPush_counts
resumeValue_countsproved—armA_counts, registrations_append, starts_append, finalizerEvents_no_push, getCont_no_push, noPush_counts
FrameDebit.stepproved—interp_loopEnter, stack_full, constant_stack_credits, push_onSuccess, stack_before_iterator, armA_counts, armA, frame_failure_le, withFiber_suspend_le, stack_before_action, stack_credits_bounded, stack_before_suspend, interp_suspend, sync_stack_le, resumeCause_counts, resumeCause, resumeValue_counts, resumeValue
syncOpproved—replace_sum, after_add_exit_credit, add_open, after_add_unit_credit
sync_opproved—after_add_exit_credit, add_open, replace_sum, after_add_unit_credit, syncOp, noAdd_full
sync_stack_leproved—response_credits_bounded
action_returnedproved—action_not_finished, action_noAdd, returned_clean
countdown_noAddproved—action_noAdd
noAdd_asyncFinalizerproved——
value_responseproved——
finalizer_returnedproved—step_frame, returned_clean, exit_pop_noAdd
step_frameproved—noAdd_empty, returned_clean, frame_step
constant_stack_creditsproved——
stack_credits_boundedproved—response_credits_bounded
response_credits_boundedproved——
popFrom_cause_keptproved—noAdd_empty, popFrom_noAdd
popFrom_value_finalizerproved—noAdd_empty, popFrom_noAdd
joinPushed_no_pushproved—passPushed_no_push, noPush_append
noPush_appendproved——
passEvents_no_pushproved——
layer_with_creditsproved—layer_compile_credits, layer_zero_credits
close_program_creditsproved—fin_program_credits
armE_countsproved——
registrations_appendproved——
starts_appendproved——
finalizerEvents_no_pushproved——
armA_countsproved——
interp_loopEnterproved—loopNext_credits
stack_fullproved——
push_onSuccessproved—stack_before_push
stack_before_iteratorproved——
armAproved—iterator_future, interp_iter, interp_loopResume, exit_credits, after_add_code_credits, stack_credits_bounded, interp_contA
frame_failure_leproved—failure_stack_le
withFiber_suspend_leproved——
stack_before_actionproved——
stack_before_suspendproved——
interp_suspendproved—suspend_credits
resumeCauseproved—armE, failure_stack_eq, getCont_cause
resumeValueproved—armA, getCont_value
after_add_exit_creditproved——
after_add_unit_creditproved——
action_not_finishedproved——
action_noAddproved—noAdd_mask, noAdd_asyncFinalizer
frame_stepproved—FrameSequencing.step
popFrom_noAddproved—noAdd_append, answerOf_clean, passPushed_noAdd, ensure_noAdd, noAdd_tail
passPushed_no_pushproved—passEvents_no_push
layer_compile_creditsproved——
layer_zero_creditsproved—layer_compile_credits
loopNext_creditsproved—loopFinish_credits, resolve_credits
stack_before_pushproved——
iterator_futureproved——
interp_iterproved—closeSeq_credits, runStmts_credits
interp_loopResumeproved—loopResume_credits
after_add_code_creditsproved—fin_program_credits
interp_contAproved—contA_credits
suspend_creditsproved—prog_of_credits, compile_credits, resolve_credits
armEproved—cancel, exit_credits, stack_credits_bounded, interp_contE
noAdd_maskproved——
FrameSequencing.stepproved—constant_push_kept, noAdd_cons, noAdd_append, armA_noAdd, interrupt, resumeCause_kept, resumeValue_kept, opaque_noAdd
noAdd_appendproved——
answerOf_cleanproved——
passPushed_noAddproved—answerOf_clean, ensure_noAdd, noAdd_tail
ensure_noAddproved——
noAdd_tailproved——
loopFinish_creditsproved——
closeSeq_creditsproved—fin_program_credits
runStmts_creditsproved—yieldOf_credits
loopResume_creditsproved—loopNext_credits
contA_creditsproved—bind_service_credits, service_lookup_credits, merge_context_credits, combine_credits, provide_then_credits, layer_resolve_credits, layer_construction_credits, registration_template, layer_inner_credits, add_memo_credits, build_scope_credits, update_body_credits, provide_body_credits, provide_layer_credits, fin_program_credits, store_contA_credits, exit_credits, resolve_credits
cancelproved—store_cancel
interp_contEproved—contE_credits
constant_push_keptproved—forced_unwrap, forced_push, noAdd_cons, opaque_noAdd
armA_noAddproved——
resumeCause_keptproved—noAdd_append, armE_noAdd, getCont_cause_kept
resumeValue_keptproved—interrupt, resumeValue_kept_clear
yieldOf_creditsproved—compile_credits
bind_service_creditsproved——
service_lookup_creditsproved——
merge_context_creditsproved——
combine_creditsproved——
provide_then_creditsproved——
layer_construction_creditsproved——
registration_templateproved——
layer_inner_creditsproved—layer_compile_credits, layer_resolve_credits
add_memo_creditsproved——
build_scope_creditsproved——
update_body_creditsproved——
provide_body_creditsproved—exit_credits
provide_layer_creditsproved——
store_contA_creditsproved—prog_of_credits, store_exit_credits
store_cancelproved——
contE_creditsproved—store_contE_credits, exit_credits, resolve_credits
forced_unwrapproved——
forced_pushproved——
armE_noAddproved—noAdd_empty
resumeValue_kept_clearproved—resumeValue_clean
store_exit_creditsproved——
store_contE_creditsproved—store_exit_credits
resumeValue_cleanproved—noAdd_append, armA_noAdd, getCont_noAdd
getCont_noAddproved—noAdd_empty, popFrom_noAdd