check
Fil-C
Upstream GIMSO, compiler, FilPizlonator.cpp
An access check: checkLo, Hi, Rights, Align of a pointer P traps unless P's capability permits Rights on [P+Lo, P+Hi) with P+Lo Align-aligned, and otherwise yields P as a proof of class a. check_local does the same for a named local, and check_function yields a function proof of class f (ir:op_kind/2, pizlonate:checked_access/4).
Rocq: the ops
Check,CheckLocalandCheckFunctionin Syntax.v; the test itself iscap_access_res(interp:cap_access_res/7).A check is followed at once by the access it covers (coverage); later accesses may reuse it while its live fact holds, and the reuse forms trust it longer.
Upstream FilPizlonator schedules bounds checks and removes redundant ones; nanofil's reuse forms and check_ahead are its versions, each accepted only by the validator.
Because a trap is terminal, a check is a pure assertion: one proved never to fail can be deleted.
Linked from
- Buffer.v: fill_assert
- Coverage.v: check_passes
- Cycle.v: body_assert
- Guard.v: span_test_ok
- How Iris works: Resources keyed by identity
- Identity.v: ids
- Identity.v: persists
- ListSum.v: ls_module
- Logic.v: wp_check
- Logic.v: wp_check_read
- Ops.v: checked_res
- Renew.v: renew_source_def
- StepRules.v: op_check
- Syntax.v: class
- Syntax.v: value
- Transport.v: dcheck4
- Validate.v: check_align
- Validate.v: check_ok
- Validate.v: checked_inst_rest
- Validate.v: checked_op
- Validate.v: op_result_ok
- Validate.v: proof_class
- Validate.v: proof_class_defs
- Validate.v: proof_pointer
- Validate.v: proof_use
- Validate.v: renew_source
- Validate.v: valid_op
- access
- cas
- checked IR
- core subset
- evidence
- live
- meta
- obligation
- pizlonate
- proof
- reference path
- renew source
- reuse
- separation logic
- the formal campaign: Campaign 1: the core model in Rocq
- the formal campaign: Campaign 4: observations, refinement, and the environment
- the formal campaign: Campaign 5: static discharge by certificate
- the formal campaign: How it builds on soundness of checking
- the formal campaign: The campaigns at a glance
- the formal campaign: The claims, kept apart
- the guide: 1. The driver: main.pl
- the guide: 9. Check evidence and the validator: check_reuse.pl, ir.pl
- the guide: Documentation conventions
- the guide: Plain and -O
- touch
- trap