Skip to content

Oracle treatment of uninitialised bits#51

Merged
AnoudAlshnakat merged 11 commits intomainfrom
dev_arb2
Feb 24, 2026
Merged

Oracle treatment of uninitialised bits#51
AnoudAlshnakat merged 11 commits intomainfrom
dev_arb2

Conversation

@didriklundberg
Copy link
Copy Markdown
Member

@didriklundberg didriklundberg commented Nov 18, 2025

This PR contains a way to treat the unspecified bits that result from e.g. out-directed parameters and gets rid of ARB everywhere in HOL4P4. Each unspecified bit is modeled here as an indexed call to an oracle function for random bits, e.g. an uninitialised bitvector of length four would be represented as [oracle 1; oracle 2; oracle 3; oracle 4], where oracle is the random oracle function. The top-level static environment now contains the random oracle function, as well as a getter and setter for the oracle index. The static environment of the expression-level semantics does not contain the getter and setter, but only the oracle index. Additionally, the expression-level semantics may now return an updated oracle index in addition to the new function frame.

Having a separate static environment on the expression-level is also desirable since this allows to eliminate some unused components (parser state map, table map), but this is for a later PR.

Organizationally, this PR also puts the metatheory in a separate subdirectory and adds the compilation of this subdirectory to the CI. This allows for quicker iterations when making changes to the base hol directory, e.g. to the architectural models.

@didriklundberg didriklundberg marked this pull request as ready for review January 13, 2026 12:13
@AnoudAlshnakat AnoudAlshnakat merged commit 8bddc02 into main Feb 24, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants