-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MCS: merge master into rt #680
Merged
Merged
Changes from 1 commit
Commits
Show all changes
207 commits
Select commit
Hold shift + click to select a range
2545aa0
github: add manual triggers for testing
lsf37 59bf9d9
docs: style: right- vs left-wrapping of operators
Xaphiosis 0794e0a
run_tests: enable BaseRefine for AARCH64
Xaphiosis 1483554
aarch64 refine: first attempt at Invariants_H
Xaphiosis 01575f2
aarch64 refine: copy InvariantUpdates_H from RISCV64
Xaphiosis 1404b9c
aarch64 refine: add StateRelation
Xaphiosis 96851e8
aarch64 ainvs: fix typo
lsf37 44fc3ec
aarch64 refine: copy LevityCatch from RISCV64
lsf37 0b0b3b3
aarch64 refine: iteration on Invariants_H
lsf37 394f74b
aarch64 aspec: sync vmid bit width with Haskell+C
lsf37 9f25a4e
aarch64 haskell: use ppn concept for PageTablePTEs
lsf37 55a01f1
aarch64 refine: complete StateRelation
lsf37 61bce83
aarch64 refine: copy Corres.thy from RISCV64
lsf37 bf3929b
aarch64 refine: adjust Bits_R from RISCV64
lsf37 7cdb85f
aarch64 refine: copy EmptyFail from RISCV64
lsf37 555bff6
aarch64 refine: copy SubMonad_R from RISCV64
lsf37 b882216
aarch64 refine: copy Machine_R from RISCV64
lsf37 38a65fd
aarch64 refine: adjust KHeap_R from RISCV64
lsf37 b426654
aarch64 refine: use ptTranslationBits for indices
lsf37 3b5a983
aarch64 refine: first pass through ArchAcc_R
lsf37 e0114ee
aarch64 refine: add CSpace_I and CSpace1_R
Xaphiosis a93a626
aarch64 refine: copy RAB_FN from RISCV64
Xaphiosis 18d76ef
aarch64 refine: add vcpuBits_def to objBits_defs
Xaphiosis 2b543da
aarch64 refine: add CSpace_R
Xaphiosis cb03631
aarch64 refine: add TcbAcc_R and ArchMove_R
Xaphiosis 059afc8
aarch64 refine: add InterruptAcc_R
Xaphiosis 97ebd07
aarch64 refine: start on VSpace_R
Xaphiosis 0f11a7a
aarch64 refine: progress in ArchAcc
lsf37 a79e06f
aarch64 refine: first run through VSpace_R
Xaphiosis 9040568
aarch64 refine: add state_hyp_refs_of' to valid_state'
Xaphiosis 044a97e
aarch64 refine: first run through Schedule_R
Xaphiosis 3a77d09
aarch64 refine: first pass through IpcCancel_R
Xaphiosis e508693
aarch64 refine: first pass through Retype_R
Xaphiosis a4536a1
aarch64 refine: first pass through Detype_R
Xaphiosis 5601abc
aarch64 refine: fill in VSpaceObject cases in Retype_R
lsf37 f4c12a6
aarch64 refine: remove kernel_mappings in Retype/Detype
lsf37 0a7eaec
aarch64 refine: copy over Invocations_R from RISCV64
lsf37 be22c7b
aarch64 refine: set up Untyped_R from RISCV64, add hyp/vcpu
lsf37 4dfb6f8
aarch64 refine: first pass through Finalise_R
Xaphiosis 865facf
aarch64 refine: first pass through Ipc_R
lsf37 835d82c
aarch64 refine: first pass through Interrupt_R
lsf37 4834c25
aarch64 refine: first pass through CNodeInv_R
lsf37 f3bbd47
aarch64 haskell: prefer fail over error
lsf37 a88bf41
aarch64 refine: remove 1 sorry
lsf37 20fad5b
aarch64 refine: update vmattributes_map for devices
Xaphiosis 8de1430
aarch64 refine: first pass through Tcb_R
lsf37 7cea1dc
aarch64 aspec: attribs_from_word used wrong bits
Xaphiosis 7ed8476
aarch64 haskell: update decodeARMASIDPoolInvocation
Xaphiosis 226c2f6
aarch64 refine: first pass through Arch_R
Xaphiosis 59d303b
aarch64 refine: first pass through Syscall_R
lsf37 ee346ba
aarch64 refine: first pass though Init_R
Xaphiosis 72dfb53
aarch64 refine: copy IncKernelLemmas+InitLemmas from RISCV64
Xaphiosis c58c007
aarch64 refine: copy KernelInit_R from RISCV64
Xaphiosis a4f944d
aarch64 refine: copy PageTableDuplicates from RISCV64
lsf37 e0ae44a
aarch64 haskell+design: record PT types in ghost state
lsf37 064d102
aarch64 ainvs+refine: proof updates for PT type ghost state
lsf37 d24d2f8
aarch64 refine: first pass through ADT_H
lsf37 aa2eb9a
design: fix ExecSpec for other architectures
lsf37 9298456
refine: update other architectures for ghost state change
lsf37 c4dee68
aarch64: update Init_R+PageTableDuplicates for PT ghost state
Xaphiosis 7154cc9
aarch64 refine: remove final mention of vs_valid_duplicates'
Xaphiosis 81d382e
aarch64 refine: first pass through Refine (sorry-free)
Xaphiosis 2f3e333
aarch64 refine: first pass through EmptyFail_H (sorry-free)
Xaphiosis 7b73a18
run_tests: enable Refine (quick_and_dirty) for AARCH64
Xaphiosis 496f70f
run_tests: fix QUICK_AND_DIRTY handling
Xaphiosis 7cdd203
aarch64 refine: first run through Orphanage
Xaphiosis 381ad05
run_tests: enable RefineOrphanage for AARCH64
Xaphiosis 1e61943
proof/ROOT: RefineOrphanage: add quick and dirty option
Xaphiosis 971be5f
haskell: constrain run_tests to current L4V_ARCH
lsf37 7c422d7
cspec: introduce L4V_PLAT
lsf37 c4d673b
cspec: Use L4V_PLAT in build export script
mbrcknl fc44f65
aspec+haskell: add accessor names for scheduler_action datatype
michaelmcinerney 6da2d97
run_tests: echo L4V_FEATURES and L4V_PLAT
lsf37 290b7c7
run_tests: update outdated comment
lsf37 9752444
run_tests: REFINE_QUICK_AND_DIRTY already set in Makefile
lsf37 443706f
github: distinguish proof PR checks from deployment run
lsf37 9fe1676
github: auto-rebase platform branches
lsf37 6f2ea86
github: push to -rebased branch first
lsf37 ea62a6c
lib: docs + 2nd predicate-type guard for wpc
lsf37 0e30162
lib+proof: proof updates for wpc change
lsf37 29873da
lib: split out WP_Pre.pre_tac for wp_pre
lsf37 f75a348
lib+refine+crefine: disambiguate corres_pre
lsf37 db44def
arm-hyp crefine: use monadic_rewrite_pre
lsf37 f72702f
lib: monadic rewrite: improve bound name retention
Xaphiosis ec907bf
lib: add test for monadic rewrite
Xaphiosis 18cbdae
infoflow: update for monadic rewrite changes
Xaphiosis 460d99b
haskell: upgrade to lts-20.25 and ghc 9.2.8
lsf37 dc093ca
github: use explicit token to enable push triggers
lsf37 722cd25
github: use correct secret
lsf37 5abb456
lib: add corres_cases method
lsf37 168d3aa
crefine: remove obsolete corres wpc setup
lsf37 59759ed
arm refine: deploy corres_cases in some examples
lsf37 163b9fe
crefine: remove some duplicated lemmas
corlewis 0edd68f
lib: cong rules for ccorres_underlying
corlewis 1f06802
crefine: update for new ccorres cong rules
corlewis c1fe4ad
lib+refine: rename Corres_Method to CorresK_Method
lsf37 865df55
lib: add new corres method
lsf37 445a8e4
lib: cleanup in Corres_UL and around liftM in Monads
lsf37 691c9e2
lib: some remarks on corres_mapM*
lsf37 fad4b70
refine: make corres method available in Refine
lsf37 01a4216
riscv refine: example corres method use
lsf37 a0be68c
clib+crefine: add no_name_eta to crefine tactics
corlewis d87f5e1
crefine: update for no_name_eta
corlewis fa484da
monads: synchronise with rt branch
corlewis c9dc6d2
docs/setup: add step for installing cabal
corlewis 26f41e1
lib/monads: rename OptionMonad to Reader_Option_Monad
corlewis 9b90b9e
lib+spec+proof+autocorres: update for renamed Reader_Option_Monad
corlewis 9b9e613
lib/monads: move different monads to subdirectories
corlewis 2c8f9ee
lib+spec+proof+autocorres: consistent Nondet filename prefix
corlewis 67946d4
lib: consistent Trace filename prefix
corlewis aa8b108
lib/monads: reorder files in ROOT
corlewis 0e0e0ca
lib/monads: add select_wp and alternative_wp to wp set for Nondet monad
corlewis 0211681
proof+autocorres: update for select_wp and alternative_wp
corlewis f6eaad5
arm abstract+design: reorder object_type enum
lsf37 f7c3ee5
drefine: adjust for object_type enum reorder
lsf37 71dc79a
arm crefine: proof updates for object_type enum reorder
lsf37 540bb64
arm-hyp abstract+design: object_type enum reorder
lsf37 4d97b26
arm-hyp crefine: proof update for object_type enum reorder
lsf37 631bc30
lib/monads: move lifting/splitting section earlier in Nondet_VCG
corlewis fde22d7
lib/monads: minor cleanup and restyle in nondet monad
corlewis a084de4
refine: update for changes to nondet monad
corlewis 477e8d2
lib/monads: restyle Trace_Monad.thy
corlewis 380520c
lib/monads: refactor trace monad theories
corlewis 6dbcf40
lib/monads: split content out into Trace_RG and Trace_No_Trace
corlewis 4a44874
lib/monads: restyle and reorder trace monad files
corlewis 917fff5
lib: update for trace monad refactor
corlewis 1482841
lib: add a breakpoint for corres_cleanup
lsf37 51ebfd6
lib: enforce simp (no_asm) in Corres_Method
lsf37 7595c02
riscv refine: adjust for (no_asm) in Corres_Method
lsf37 f80d7f8
lib: on the use of corres_liftM_simp rules
lsf37 0969196
lib: factor out is_safe_wp method
lsf37 c4369f5
lib: add docs and test for Corres_Method
lsf37 deade60
crefine: change misleading proof step in CSpace_RAB_C
Xaphiosis 322f4f9
aarch64 refine: remove pspace_canonical'
lsf37 6e57667
aarch64 refine: invariant update lemmas
lsf37 7ae4e55
aarch64 refine: ArchAcc_R sorry free
lsf37 c77d649
aarch64 aspec: sync with Haskell
lsf37 d16b4fd
aarch64 ainvs: new invariant on vmid_table
lsf37 345818d
aarch64 aspec: cleanByVA_PoU in perform_pg_inv_map
lsf37 7713dff
aarch64 ainvs: updates for spec change
lsf37 438e27a
aarch64 aspec: fix do_flush spec bug
lsf37 c628181
aarch64 aspec+ainvs: add valid_asid_map invariant
lsf37 d16d35e
aarch64 refine: VSpace_R sorry-free
lsf37 f14217e
aarch64 refine: progress in Retype_R
lsf37 e74d5fe
aarch64 refine: progress in Retype_R
lsf37 4913aa8
aarch64 haskell: tweak createNewCaps definition
lsf37 2ec696f
aarch64 refine: Retype_R sorry-free
lsf37 1ea097a
aarch64 refine: Untyped_R sorry-free
lsf37 1f60044
aarch64 refine: Schedule_R sorry-free
lsf37 73ba0ce
aarch64 refine: IpcCancel_R sorry-free
lsf37 522cef1
aarch64 refine: Finalise_R sorry-free
lsf37 0e8048b
aarch64 aspec+ainvs: sync user_vtop check with C
lsf37 d849c0b
aarch64 haskell: fix syscall arg error reporting
lsf37 e2355c7
aarch64 haskell: check cap type in checkVSpaceRoot
lsf37 1fb96c7
aarch64 ainvs: mark addrFromPPtr_mask_ipa
lsf37 c745d4e
aarch64 aspec: fix flush type in decode_vspace_invocation
lsf37 da76bca
aarch64 refine: Arch_R sorry-free
lsf37 1f05109
aarch64 refine: Ipc_R sorry-free
lsf37 a0311bd
aarch64 refine: Interrupt_R sorry-free
lsf37 ffd038f
aarch64 refine: ADT_H sorry-free
lsf37 1fde048
aarch64 refine: progress in Detype_R
lsf37 8f2710d
aarch64 refine: Detype_R sorry-free
lsf37 2e3c97d
aarch64 refine: Orphanage sorry-free
Xaphiosis cf0e636
aarch64 refine: resolve trivial FIXMEs
lsf37 43c0759
aarch64 refine: leave comment instead of FIXME
lsf37 6bfdecd
aarch64 refine: defer some FIXMEs to CRefine
lsf37 c263749
aarch64 refine: consolidate dmo_invs_no_cicd' lemmas
lsf37 62618fc
aarch64 refine: improve decode invariance crunch
lsf37 4c69a42
lib: fix ML warning
lsf37 6793a94
lib: move lemmas from refine/AARCH64/ArchAcc
lsf37 5f74194
aarch64 refine: move lemmas to lib
lsf37 9f7e8f8
word_lib: anti-monotonicity of shiftr
lsf37 fe3ebf0
lib: lemmas moved from aarch64 refine
lsf37 dc4955d
aarch64 refine: lemma moved to Word_Lib
lsf37 2251bf8
aarch64 refine: lemmas moved to lib
lsf37 26a3a6e
aarch64 refine: lemmas moved to aarch64 ainvs
lsf37 a24ddbe
aarch64 refine: move lemmas internally
lsf37 de50741
lib+aarch64 refine: move lemmas to lib
lsf37 0369a4b
lib+ainvs+aarch64 refine: move+consolidate vcg_op_lift lemmas
lsf37 dcf6ee4
aarch64 ainvs+refine: move lemmas from Refine
lsf37 5497666
aarch64 ainvs+refine: remove unused dom_ucast_eq
lsf37 df31523
lib/monads: more cleanup and restyle in nondet monad
corlewis 7999632
proof: update for changes to nondet monad
corlewis d66ac95
lib/monads/trace: copy in definitions and rules from nondet
corlewis 0aac7ac
lib/monads/trace: update definitions and rules taken from nondet
corlewis 293b97c
lib/monads/trace: prove more lemmas connecting valid and validI
corlewis 3333395
lib/monads: improve style of nondet and trace
corlewis 34038fc
lib/monads/nondet: remove uses of _tac methods
corlewis 6680297
lib/monads: add no_fail_ex_lift and no_fail_grab_asm
michaelmcinerney e7cca6a
lib: improve corres_underlying rules for whileLoop
michaelmcinerney 6721c7a
lib: sync Word_Lib with AFP
lsf37 3f66cb0
lib/Eisbach_Tools: morphism type changed in Isabelle2023
lsf37 eeae2af
lib: Isabelle2023 update
lsf37 286278d
misc: goto-error jEdit macro: update for 2023
Xaphiosis 450234e
aspec: mapsto syntax update for Isabelle2023
lsf37 83fc513
c-parser: sync Simpl from AFP for Isabelle2023
lsf37 be44fad
c-parser: update to Isabelle2023 maps-to syntax
lsf37 26807f7
c-parser: adapt standalone parser to Isabelle2023
lsf37 f88d2d4
clib: update to Isabelle2023 mapsto syntax
lsf37 3141584
proof: update to Isabelle2023 mapsto syntax
lsf37 f7768ee
sep-capDL: update to Isabelle2023 mapsto syntax
lsf37 4c0b3df
capdDL-api: update to Isabelle2023 mapsto syntax
lsf37 0f99a75
autocorres: update to Isabelle2023
lsf37 0d984f3
camkes: update to Isabelle2023 mapsto syntax
lsf37 ad24d95
word lib: fix broken style introduced from AFP
lsf37 3036f22
Merge branch 'master' into rt
corlewis 3308a0b
rt proof: update for merge
corlewis File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I forgot to point this out when I made this PR.
alternative_valid
was removed on master due to not being used, but did have a couple of uses inrt
as part of some forward reasoning proofs.Are we ok with what I've done here, which is basically inlining it in the two places it was used? The obvious to me other options would be to either add
alternative_valid
back toNondet_VCG
, or to rework these proofs to be backwards.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd be OK with what you've done here, but wouldn't mind if these proofs were reworked to be backwards. I'm pretty sure they'd be my proofs originally, so I'd be happy to do that. I think these were for
preemption_point
, which is not the nicest function to deal with, so it might not be so straightforward.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd be fine with either. Definitely no problems with it being reworked as backwards proof. Could also be in a separate PR.