Commit Graph

5453 Commits

Author SHA1 Message Date
Achim D. Brucker 38fcd0caf2 Updated repository description. 2024-01-27 14:09:25 +00:00
Achim D. Brucker a776293799 Merge branch 'autogenerated_parser' 2024-01-27 13:47:26 +00:00
Achim D. Brucker ed98ff7b35 Merge branch 'cpp_wrapper' 2024-01-27 13:47:10 +00:00
Achim D. Brucker 7126276e2c Added generated (using mllex and mlyacc) C-parser files to reduce dependencies required by users of AutoCorres. 2024-01-27 13:46:02 +00:00
Achim D. Brucker dd92984a2d Keeping cpp script for the moment. 2024-01-27 13:45:36 +00:00
Achim D. Brucker e59d6ad091 Renamed Word_Lib shipped by AutoCorres to Word_Lib_l4v to avoid a name clash with the AFP entry of same name. 2024-01-27 13:44:24 +00:00
Achim D. Brucker 99c79b50df
Ensure that umm_types.txt is saved relative to theory file. (#674)
Signed-off-by: Achim D. Brucker <adbrucker@0x5f.org>
2024-01-27 18:47:54 +11:00
Achim D. Brucker c71c31d163
If cpp_path is relative, make it relative to the current theory. (#676)
Signed-off-by: Achim D. Brucker <adbrucker@0x5f.org>
2024-01-27 18:41:18 +11:00
Gerwin Klein 8f5e6540de
docs: add a guide for commit messages
Add a guide for how to write commit messages and commit message tags to
make the messages more consistent and to help new people on the project
get started more quickly.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-01-17 15:21:41 +11:00
Gerwin Klein c84bb14362 c-parser: turn README into main C-parser website
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-01-17 15:21:06 +11:00
Gerwin Klein f9359ead94 autocorres: update AFP links
The canonical URL is now .htlm (no longer .shtml)

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-01-17 15:21:06 +11:00
Gerwin Klein 4d8ad41f93 autocorres: point C parser links to GitHub
TS C parser web page has been retired.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-01-17 15:21:06 +11:00
Gerwin Klein b6645c1a06 docs+README: update Isabelle links to https
Link to canonical https location; link checker is too impatient for the
redirect.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-01-17 15:21:06 +11:00
Gerwin Klein 4d7cc19ec0 c-parser+autocorres: update Simpl links
Avoid redirects, link to current canonical version.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-01-17 15:21:06 +11:00
Michael McInerney dd315e16dd lib: add Heap_List to ROOT
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-16 11:21:38 +10:30
Gerwin Klein 52b4ba5091 aarch64 machine+aspec+cspec: pt_type ghost+table array sizes
- add ghost state corresponding to gsPTTypes in Haskell and ASpec
- add ghost type comments
- style update for old definitions since we need to touch most of these
- define vs/pt_array_len for use in C annotations
- make NormalPT_T/VSRootPT_T names available for use in C annotations

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-01-16 10:01:47 +11:00
Michael McInerney afcbba9a6d lib: some sym_heap lemmas regarding heap updates
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney a463ca7a9a lib: add "no loops" lemmas for heap_ls
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 3255722e1a lib: several miscellaneous lemmas for heap_ls
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 10f91566b1 lib: add fun_upd_swap
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney b6b89fe713 lib: add heap_path_sym_heap_non_nil_lookup_prev
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney a3eb113e75 lib: heap_ls lemmas relating an update to the list to an update to the heap
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney d5db58fbe9 lib: add Heap_List.thy, for reasoning about linked lists on heaps
From the rt branch

Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 4905a8ee97 lib: add defn of list_insert_before, and some lemmas
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 5ac6180742 lib: add no_ofail_if
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 0b10a21b8c lib: add ovalid_post_taut
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 04d4575be5 lib: modify no_ofail_obind and no_ofail_pre_imp
In order to aid wp-style reasoning

Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 45cde7049b lib: reorder assumptions of no_fail_bind
In order to aid wp-style reasoning

Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 7a14a48ba5 lib: add ifM_corres' and orM_corres'
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 0cdce52f0b lib: add ifM_to_top_of_bind
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 3c9065f0da lib: add monadic_rewrite_corres_r_generic_ex_abs
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 11614b920e lib: generalise monadic_rewrite_is_valid
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 97e40a03bf lib: add monadic_rewrite_guard_arg_cong
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 918ec7a283 lib: strengthen no_ofail_gets_the
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney ea9bfb0284 lib: add some rules involving ex_abs_underlying, including corres_from_valid
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney 1e32077cf1 lib: add corres_if_strong
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Michael McInerney dc62bfdfeb lib+refine: strengthen corres_assert_assume_l and move to Lib
Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2024-01-15 18:08:12 +10:30
Gerwin Klein 449cfc702e clib: suppress simp warnings in simpl_rewrite
This gets rid of the simplified warning for Collect_const that
ccorres_rewrite produces in many CRefine proofs.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-01-15 11:08:27 +11:00
Gerwin Klein e76c69ee07 lib: provide warning suppression for Eisbach methods
Contexts have the "visible" flag that determine whether warnings such
as duplicate rewrite rules are shown or not. Make setting this flag to
false available in Eisbach methods.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-01-15 11:08:27 +11:00
Gerwin Klein 028c3e6241 github: add num_domains key to artifact upload
If we don't provide the additional name fragment, previous artifacts
would be overwritten, which leads to a failure with error message on
GitHub.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-12-13 11:30:24 +01:00
Gerwin Klein 62f0e202ef runtest: echo NUM_DOMAINS override
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-12-11 08:28:23 +01:00
Gerwin Klein 81840fe278 github: add NUM_DOMAINS test matrix
This will now test with the following num_domains settings:

- PRs: default as in config file, no matrix
- push to master: with NUM_DOMAINS = 1 and default (= '')
- weekly test: with NUM_DOMAINS = 1, 7, and default

The default in the current config files is 16. 1 leads to structural
code changes is the setting most likely to break. 7 is for checking
that the proofs also work with a value that is not a power of 2.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-12-11 08:28:23 +01:00
Gerwin Klein a828b996db cspec/c: provide NUM_DOMAINS build override option
Setting the environment variable INPUT_NUM_DOMAINS will cause the
build to override the KernelNumDomains setting in the config file with
the provided setting.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-12-11 08:28:23 +01:00
Gerwin Klein 1278a8d06e github: docs for platform branch rebase workflow
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-12-10 14:02:58 +01:00
Michael McInerney 0ba3f8e8af clib: further improvements to ccorres_While
This adds information about the return relation to the C guards
and the C preconditions of the assumptions.

The C hoare triples for cond have also been consolidated, to
help simplify applications where the C guards are minimal.

A comment about its intended use is given.

Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2023-12-06 21:29:25 +10:30
Rafal Kolanski d4f0e5a38b arm-hyp crefine: update length to word_t for VCPU functions
Length argument for these functions was previously unsigned int, which
was fine for AArch32, but an implicit downcast on AArch64. Changing it
to word_t makes it unsigned long, thus requiring signature update in
ccorres proofs.

Signed-off-by: Rafal Kolanski <rafal.kolanski@proofcraft.systems>
2023-12-06 03:24:59 +11:00
Gerwin Klein 03e4ef92a4 autocorres: bring CONTRIBUTORS file up to date
- remove defunct email addresses
- add myself as current maintainer

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-11-03 14:00:01 +11:00
Gerwin Klein 4743f0bb57 autocorres: update release ROOT files and manifest
AutoCorres no longer depends on the Lib session. This means:

- remove Lib session ROOT parsing in release.py
- copy over ROOT files of new library sessions
- add new theory NatBitWise to manifest
- update release ROOTS and ROOT files

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-11-03 14:00:01 +11:00
Gerwin Klein de58596f23 autocorres: format ChangeLog
- convert tabs to spaces
- add top-level heading
- underline headings more nicely

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-11-03 14:00:01 +11:00
Gerwin Klein 723620f084 autocorres: update change log for upcoming release
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-11-03 14:00:01 +11:00