Skip to content
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 207 commits into from
Oct 13, 2023
Merged

MCS: merge master into rt #680

merged 207 commits into from
Oct 13, 2023

Commits on May 3, 2023

  1. github: add manual triggers for testing

    The worklow_dispatch trigger adds a button in the GitHub UI that lets
    one trigger the workflow manually. Useful for testing the workflows.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 3, 2023
    Configuration menu
    Copy the full SHA
    2545aa0 View commit details
    Browse the repository at this point in the history

Commits on May 4, 2023

  1. docs: style: right- vs left-wrapping of operators

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis committed May 4, 2023
    Configuration menu
    Copy the full SHA
    59bf9d9 View commit details
    Browse the repository at this point in the history

Commits on May 25, 2023

  1. run_tests: enable BaseRefine for AARCH64

    Switch exclusion to Refine.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    0794e0a View commit details
    Browse the repository at this point in the history
  2. aarch64 refine: first attempt at Invariants_H

    Quite a few issues remain, notably validity of ASID maps and
    relationship to ASID table is missing from valid_arch_state'
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    1483554 View commit details
    Browse the repository at this point in the history
  3. aarch64 refine: copy InvariantUpdates_H from RISCV64

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    01575f2 View commit details
    Browse the repository at this point in the history
  4. aarch64 refine: add StateRelation

    Only text replacement of RISCV64->AARCH64 for now.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    1404b9c View commit details
    Browse the repository at this point in the history
  5. aarch64 ainvs: fix typo

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    96851e8 View commit details
    Browse the repository at this point in the history
  6. aarch64 refine: copy LevityCatch from RISCV64

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    44fc3ec View commit details
    Browse the repository at this point in the history
  7. aarch64 refine: iteration on Invariants_H

    Co-authored-by: Rafal Kolanski <[email protected]>
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 and Rafal Kolanski committed May 25, 2023
    Configuration menu
    Copy the full SHA
    0b0b3b3 View commit details
    Browse the repository at this point in the history
  8. aarch64 aspec: sync vmid bit width with Haskell+C

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    394f74b View commit details
    Browse the repository at this point in the history
  9. aarch64 haskell: use ppn concept for PageTablePTEs

    Don't store the bottom 12 bits of the base address for page table PTEs,
    because we know they are zero. This gives us implicit alignment to
    pageBits in the page table walker.
    
    The C code stores only 36 significant bits, whereas this commit still
    uses a full 64-bit machine word for the ppn in Haskell. To be adjusted
    in a future change.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    9f25a4e View commit details
    Browse the repository at this point in the history
  10. aarch64 refine: complete StateRelation

    Co-authored-by: Rafal Kolanski <[email protected]>
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 and Xaphiosis committed May 25, 2023
    Configuration menu
    Copy the full SHA
    55a01f1 View commit details
    Browse the repository at this point in the history
  11. aarch64 refine: copy Corres.thy from RISCV64

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    61bce83 View commit details
    Browse the repository at this point in the history
  12. aarch64 refine: adjust Bits_R from RISCV64

    Add VCPU/hyp material from ARM_HYP, fix up broken lemmas.
    
    Co-authored-by: Rafal Kolanski <[email protected]>
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 and Xaphiosis committed May 25, 2023
    Configuration menu
    Copy the full SHA
    bf3929b View commit details
    Browse the repository at this point in the history
  13. aarch64 refine: copy EmptyFail from RISCV64

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    7cdb85f View commit details
    Browse the repository at this point in the history
  14. aarch64 refine: copy SubMonad_R from RISCV64

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    555bff6 View commit details
    Browse the repository at this point in the history
  15. aarch64 refine: copy Machine_R from RISCV64

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 25, 2023
    Configuration menu
    Copy the full SHA
    b882216 View commit details
    Browse the repository at this point in the history
  16. aarch64 refine: adjust KHeap_R from RISCV64

    Add VCPU/hyp lemmas from ARM_HYP, fix and update failing lemmas. Leave
    1 sorry on pspace_canonical, which might not be needed for AARCH64.
    
    Co-authored-by: Rafal Kolanski <[email protected]>
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 and Xaphiosis committed May 25, 2023
    Configuration menu
    Copy the full SHA
    38a65fd View commit details
    Browse the repository at this point in the history
  17. aarch64 refine: use ptTranslationBits for indices

    Co-authored-by: Rafal Kolanski <[email protected]>
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 and Xaphiosis committed May 25, 2023
    Configuration menu
    Copy the full SHA
    b426654 View commit details
    Browse the repository at this point in the history

Commits on May 26, 2023

  1. aarch64 refine: first pass through ArchAcc_R

    Co-authored-by: Rafal Kolanski <[email protected]>
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 and Xaphiosis committed May 26, 2023
    Configuration menu
    Copy the full SHA
    3b5a983 View commit details
    Browse the repository at this point in the history
  2. aarch64 refine: add CSpace_I and CSpace1_R

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    e0114ee View commit details
    Browse the repository at this point in the history
  3. aarch64 refine: copy RAB_FN from RISCV64

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    a93a626 View commit details
    Browse the repository at this point in the history
  4. aarch64 refine: add vcpuBits_def to objBits_defs

    The way we handle vcpuBits on AARCH64 is different to ARM_HYP.
    This seems the most logical place to put vcpuBits_def to aid automation.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    18d76ef View commit details
    Browse the repository at this point in the history
  5. aarch64 refine: add CSpace_R

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    2b543da View commit details
    Browse the repository at this point in the history
  6. aarch64 refine: add TcbAcc_R and ArchMove_R

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    cb03631 View commit details
    Browse the repository at this point in the history
  7. aarch64 refine: add InterruptAcc_R

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    059afc8 View commit details
    Browse the repository at this point in the history
  8. aarch64 refine: start on VSpace_R

    Up to and including handleVMFault_corres which needed a major overhaul.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    97ebd07 View commit details
    Browse the repository at this point in the history
  9. aarch64 refine: progress in ArchAcc

    Co-authored-by: Rafal Kolanski <[email protected]>
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 and Xaphiosis committed May 26, 2023
    Configuration menu
    Copy the full SHA
    0f11a7a View commit details
    Browse the repository at this point in the history
  10. aarch64 refine: first run through VSpace_R

    This required a lot of adaptation from ARM_HYP, rearranging, and fixing.
    The VCPU lemmas are mostly now constrained to one area, making it
    theoretically possible to make a VCPU theory in the future.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    a79e06f View commit details
    Browse the repository at this point in the history
  11. aarch64 refine: add state_hyp_refs_of' to valid_state'

    Somehow we missed this on the first pass. Adjusted existing proofs.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    9040568 View commit details
    Browse the repository at this point in the history
  12. aarch64 refine: first run through Schedule_R

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    044a97e View commit details
    Browse the repository at this point in the history
  13. aarch64 refine: first pass through IpcCancel_R

    needed some changes to Schedule_R and VSpace_R
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    3a77d09 View commit details
    Browse the repository at this point in the history
  14. aarch64 refine: first pass through Retype_R

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    e508693 View commit details
    Browse the repository at this point in the history
  15. aarch64 refine: first pass through Detype_R

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    a4536a1 View commit details
    Browse the repository at this point in the history
  16. aarch64 refine: fill in VSpaceObject cases in Retype_R

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    5601abc View commit details
    Browse the repository at this point in the history
  17. aarch64 refine: remove kernel_mappings in Retype/Detype

    These do not exist on AARCH64
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    f4c12a6 View commit details
    Browse the repository at this point in the history
  18. aarch64 refine: copy over Invocations_R from RISCV64

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    0a7eaec View commit details
    Browse the repository at this point in the history
  19. aarch64 refine: set up Untyped_R from RISCV64, add hyp/vcpu

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    be22c7b View commit details
    Browse the repository at this point in the history
  20. aarch64 refine: first pass through Finalise_R

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    4dfb6f8 View commit details
    Browse the repository at this point in the history
  21. aarch64 refine: first pass through Ipc_R

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    865facf View commit details
    Browse the repository at this point in the history
  22. aarch64 refine: first pass through Interrupt_R

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    835d82c View commit details
    Browse the repository at this point in the history
  23. aarch64 refine: first pass through CNodeInv_R

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    4834c25 View commit details
    Browse the repository at this point in the history
  24. aarch64 haskell: prefer fail over error

    `error` is mapped to `undefined` which does not work well with `crunch`.
    `fail` is mapped to monadic `fail` in Isabelle, works fine with crunch
    and we have to prove that it's not called in `corres`.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    f3bbd47 View commit details
    Browse the repository at this point in the history
  25. aarch64 refine: remove 1 sorry

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    a88bf41 View commit details
    Browse the repository at this point in the history
  26. aarch64 refine: update vmattributes_map for devices

    Page is cachable if not a device.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    20fad5b View commit details
    Browse the repository at this point in the history
  27. aarch64 refine: first pass through Tcb_R

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    8de1430 View commit details
    Browse the repository at this point in the history
  28. aarch64 aspec: attribs_from_word used wrong bits

    bit 0 set = cachable = NOT Device
    bit 2 set = execute never = NOT execute
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    7cea1dc View commit details
    Browse the repository at this point in the history
  29. aarch64 haskell: update decodeARMASIDPoolInvocation

    Check for mapping was incorrect (attempted to check the ASID cap for
    ptIsMapped) and it turns out not necessary.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    7ed8476 View commit details
    Browse the repository at this point in the history
  30. aarch64 refine: first pass through Arch_R

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    226c2f6 View commit details
    Browse the repository at this point in the history
  31. aarch64 refine: first pass through Syscall_R

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    59d303b View commit details
    Browse the repository at this point in the history
  32. aarch64 refine: first pass though Init_R

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    ee346ba View commit details
    Browse the repository at this point in the history
  33. aarch64 refine: copy IncKernelLemmas+InitLemmas from RISCV64

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    72dfb53 View commit details
    Browse the repository at this point in the history
  34. aarch64 refine: copy KernelInit_R from RISCV64

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    c58c007 View commit details
    Browse the repository at this point in the history
  35. aarch64 refine: copy PageTableDuplicates from RISCV64

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    a4f944d View commit details
    Browse the repository at this point in the history
  36. aarch64 haskell+design: record PT types in ghost state

    For making the state relation functional in refine/ADH_H we need to
    know to which type of page table each PTE belongs. Record this
    information in ghost state, similar to what we do for CNode size and
    user page size.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    e0ae44a View commit details
    Browse the repository at this point in the history
  37. aarch64 ainvs+refine: proof updates for PT type ghost state

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    064d102 View commit details
    Browse the repository at this point in the history
  38. aarch64 refine: first pass through ADT_H

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    d24d2f8 View commit details
    Browse the repository at this point in the history
  39. design: fix ExecSpec for other architectures

    Include the new ArchPSpace_H file, which on the other (non-AArch64)
    architectures will only contain an empty placeholder function.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    aa2eb9a View commit details
    Browse the repository at this point in the history
  40. refine: update other architectures for ghost state change

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    9298456 View commit details
    Browse the repository at this point in the history
  41. aarch64: update Init_R+PageTableDuplicates for PT ghost state

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    c4dee68 View commit details
    Browse the repository at this point in the history
  42. aarch64 refine: remove final mention of vs_valid_duplicates'

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    7154cc9 View commit details
    Browse the repository at this point in the history
  43. aarch64 refine: first pass through Refine (sorry-free)

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    81d382e View commit details
    Browse the repository at this point in the history
  44. aarch64 refine: first pass through EmptyFail_H (sorry-free)

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    2f3e333 View commit details
    Browse the repository at this point in the history
  45. run_tests: enable Refine (quick_and_dirty) for AARCH64

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    7b73a18 View commit details
    Browse the repository at this point in the history
  46. run_tests: fix QUICK_AND_DIRTY handling

    os.environ expects a string, not an integer
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    496f70f View commit details
    Browse the repository at this point in the history
  47. aarch64 refine: first run through Orphanage

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    7cdd203 View commit details
    Browse the repository at this point in the history
  48. run_tests: enable RefineOrphanage for AARCH64

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    381ad05 View commit details
    Browse the repository at this point in the history
  49. proof/ROOT: RefineOrphanage: add quick and dirty option

    Piggybacking off of REFINE_QUICK_AND_DIRTY as they are usually linked.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed May 26, 2023
    Configuration menu
    Copy the full SHA
    1e61943 View commit details
    Browse the repository at this point in the history

Commits on May 31, 2023

  1. haskell: constrain run_tests to current L4V_ARCH

    Provide L4V_ARCH targets in the Haskell Makefile and constrain
    run_tests to use only the current L4V_ARCH, to avoid building all
    architectures in all tests.
    
    A manual invocation of just `make` will still build all architectures
    for easier checking.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed May 31, 2023
    Configuration menu
    Copy the full SHA
    971be5f View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2023

  1. cspec: introduce L4V_PLAT

    L4V_PLAT selects a platform variation within a L4V_ARCH. This mostly
    affects which seL4 cmake config file is loaded when building config
    data and the kernel C code. This in turn affects (and will rebuild)
    ASpec, ExecSpec, and CSpec.
    
    Examples:
    
        L4V_ARCH=ARM L4V_FEATURES="" L4V_PLAT=""
    
    will load `ARM_verified.cmake`
    
        L4V_ARCH=ARM L4V_FEATURES="" L4V_PLAT=imx8mm
    
    will load `ARM_imx8mm_verified.cmake`, and
    
        L4V_ARCH=ARM L4V_FEATURES=MCS L4V_PLAT=imx8mm
    
    will load `ARM_MCS_imx8mm_verified.cmake`
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 5, 2023
    Configuration menu
    Copy the full SHA
    7c422d7 View commit details
    Browse the repository at this point in the history
  2. cspec: Use L4V_PLAT in build export script

    CI is introducing an `L4V_PLAT` variable to support proof runs across
    more platform configurations. This commit incorporates `L4V_PLAT` into
    the paths generated by `export-kernel-builds.py`, to ensure that
    exported builds can be disambiguated.
    
    Signed-off-by: Matthew Brecknell <[email protected]>
    mbrcknl authored and lsf37 committed Jun 5, 2023
    Configuration menu
    Copy the full SHA
    c4d673b View commit details
    Browse the repository at this point in the history
  3. aspec+haskell: add accessor names for scheduler_action datatype

    This adds sch_act_target/schActTarget accessor names for the
    switch_thread/SwitchToThread constructor of the scheduler_action
    datatype at the aspec and Haskell level, respectively
    
    Signed-off-by: Michael McInerney <[email protected]>
    michaelmcinerney authored and lsf37 committed Jun 5, 2023
    Configuration menu
    Copy the full SHA
    fc44f65 View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2023

  1. run_tests: echo L4V_FEATURES and L4V_PLAT

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    6da2d97 View commit details
    Browse the repository at this point in the history
  2. run_tests: update outdated comment

    The Orphanage session is no longer conditional on L4V_ARCH_IS_ARM
    (instead it is empty for those architectures that don't support it).
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    290b7c7 View commit details
    Browse the repository at this point in the history
  3. run_tests: REFINE_QUICK_AND_DIRTY already set in Makefile

    REFINE_QUICK_AND_DIRTY is already set correctly in proofs/Makefile,
    so doesn't need to be set here.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    9752444 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2023

  1. github: distinguish proof PR checks from deployment run

    Currently both workflows have the name "Proofs" which is confusing
    in the GitHub UI.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    443706f View commit details
    Browse the repository at this point in the history
  2. github: auto-rebase platform branches

    The action will abort when no clean rebase is possible, and force-push
    the rebased branch when the rebase over origin/master was clean.
    
    The push will trigger proof runs on the rebased branches.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    9fe1676 View commit details
    Browse the repository at this point in the history
  3. github: push to -rebased branch first

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    6f2ea86 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2023

  1. lib: docs + 2nd predicate-type guard for wpc

    - document the wpc_helper predicate and setup for wpc
      (but not the proof method internals at this point)
    
    - add facilities for a second guard of predicate type
    
    The current setup works well for judgements with one guard of type
    predicate or set (valid, validE, etc), or with two guards where one is
    a predicate and the other is a set (ccorres), but not for judgements
    that have two predicate guards, i.e. plain corres. This commit adds a
    second such guard, which can be ignored for the judgements that don't
    need it in the same way that valid/validE currently ignore the set-type
    guard.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 14, 2023
    Configuration menu
    Copy the full SHA
    ea62a6c View commit details
    Browse the repository at this point in the history
  2. lib+proof: proof updates for wpc change

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 14, 2023
    Configuration menu
    Copy the full SHA
    0e30162 View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2023

  1. lib: split out WP_Pre.pre_tac for wp_pre

    Factor out pre_tac such that we can have separate theorem sets and
    methods for wp_pre, monadic_rewrite_pre, corres_pre, and potentially
    others in the future.
    
    Leave everything in wp_pre that we expect to use wp or wpsimp on, in
    particular no_fail.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    29873da View commit details
    Browse the repository at this point in the history
  2. lib+refine+crefine: disambiguate corres_pre

    - rename corres_pre set in CRefine to ccorres_pre
    - rename internal corres_pre method in Corres_Method to corres_pre'
    - use corres_pre instead of old wp_pre in refine
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    f75a348 View commit details
    Browse the repository at this point in the history
  3. arm-hyp crefine: use monadic_rewrite_pre

    Replace wp_pre with monadic_rewrite_pre in one manual proof instance.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    db44def View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2023

  1. lib: monadic rewrite: improve bound name retention

    While in many cases using an eta form with a bind (`f >>= (λrv. g rv)`)
    does manage to preserve names, this was not true in general when working
    with monadic_rewrite. An obvious case of this was when performing a
    rewrite in the middle of a function, all bound variables on the way to
    that point would get renamed to `x`.
    
    In order to iterate over a chain of bind/bindE with a
    monadic_rewrite_bind_tail-style rule such that bound names are
    preserved, the rule's `f >>= (λrv. g rv)` must match up with the
    relevant bound term `do x <- f'; g' x; ...` on the RHS/LHS and only on
    that side:
    * if the rule has an eta term on both sides and the goal a schematic on
      any side, the schematic will match trivially producing the correct
      name in the first subgoal only
    * if the goal is not schematic and a tail rule applies, we need to
      choose a side to get the name from (usually the left)
    This means if the goal is schematic on the RHS, we need a tail rule with
    an eta term on its LHS, and vice-versa.
    
    Since a generic form of this is not possible, this commit introduces
    transformation lemmas and updates the tactics to use them for stepping
    on the left/right.
    
    For stopping the iteration by applying a rule to the head of a bind, the
    situation is reversed: to preserve the name of the bind in the tail, the
    head rule must not have any eta terms. The bind[E]_head rules have been
    updated to reflect this.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    f72702f View commit details
    Browse the repository at this point in the history
  2. lib: add test for monadic rewrite

    This demonstrates some sanity checking, a standard iterate-rewrite-refl
    deployment, and the three symbolic execution methods, with a lot of
    commentary.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    ec907bf View commit details
    Browse the repository at this point in the history
  3. infoflow: update for monadic rewrite changes

    The `tcb` that previously became an `x` now remains a `tcb`.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    18cbdae View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2023

  1. haskell: upgrade to lts-20.25 and ghc 9.2.8

    GHC 9.2.8 has better support for Linux/aarch64/v8 for use in Docker.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    460d99b View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2023

  1. github: use explicit token to enable push triggers

    The implicit GITHUB_TOKEN does not trigger further push actions in
    the same repo, but in this case we do want the push action to happen
    on the `-rebased` branches, so we use an explicit auth token instead.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 21, 2023
    Configuration menu
    Copy the full SHA
    dc093ca View commit details
    Browse the repository at this point in the history
  2. github: use correct secret

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 21, 2023
    Configuration menu
    Copy the full SHA
    722cd25 View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2023

  1. lib: add corres_cases method

    Add safe datatype case distinction for corres -- wpc turns out to be
    insufficient even after generalisation of the helper predicate.
    
    - corres_cases_left: case distinction on abstract monad
    - corres_cases_right: case distinction on concrete monad
    - corres_cases: try first corres_cases_left, then corres_cases_right
    - corres_cases_both: simultaneous (quadratic) case distinction on
      both sides, with safe elimination of trivially contradictory cases.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    5abb456 View commit details
    Browse the repository at this point in the history
  2. crefine: remove obsolete corres wpc setup

    This setup didn't actually work. Replaced by corres_cases.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    168d3aa View commit details
    Browse the repository at this point in the history
  3. arm refine: deploy corres_cases in some examples

    Demonstrates use of corres_cases and corres_cases_both. Main intended
    benefit is less thinking about safety of schematics, fewer mentions
    of goal parameter names, and fewer manual guard instantiations.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    59759ed View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2023

  1. crefine: remove some duplicated lemmas

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    163b9fe View commit details
    Browse the repository at this point in the history
  2. lib: cong rules for ccorres_underlying

    The default behaviour is now to not rewrite the return relations and
    extraction functions.
    
    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    0edd68f View commit details
    Browse the repository at this point in the history
  3. crefine: update for new ccorres cong rules

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    1f06802 View commit details
    Browse the repository at this point in the history
  4. lib+refine: rename Corres_Method to CorresK_Method

    This also renames most of the corres* methods to corresK* methods,
    including corressimp -> corresKsimp.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    c1fe4ad View commit details
    Browse the repository at this point in the history
  5. lib: add new corres method

    The new corres method is similar to the corresK method and calculus,
    but much less ambitious. Its main purpose is to automate boilerplate
    proof steps in corres proofs and is specifically not trying to fully
    automate corres proofs (although some few might be solved).
    
    The idea is that the method will make some progress with obvious steps
    and leave over a proof state the user can operate on further.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    865df55 View commit details
    Browse the repository at this point in the history
  6. lib: cleanup in Corres_UL and around liftM in Monads

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    445a8e4 View commit details
    Browse the repository at this point in the history
  7. lib: some remarks on corres_mapM*

    Explain why the rule is strong enough as is before I prove the
    (not really) stronger version yet again.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    691c9e2 View commit details
    Browse the repository at this point in the history
  8. refine: make corres method available in Refine

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    fad4b70 View commit details
    Browse the repository at this point in the history
  9. riscv refine: example corres method use

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    01a4216 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2023

  1. clib+crefine: add no_name_eta to crefine tactics

    This leads to improved consistency and better names for bound variables.
    
    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    a0be68c View commit details
    Browse the repository at this point in the history
  2. crefine: update for no_name_eta

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    d87f5e1 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2023

  1. monads: synchronise with rt branch

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Jul 7, 2023
    Configuration menu
    Copy the full SHA
    fa484da View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2023

  1. docs/setup: add step for installing cabal

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Jul 19, 2023
    Configuration menu
    Copy the full SHA
    c9dc6d2 View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2023

  1. lib/monads: rename OptionMonad to Reader_Option_Monad

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    26f41e1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9b90b9e View commit details
    Browse the repository at this point in the history
  3. lib/monads: move different monads to subdirectories

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    9b9e613 View commit details
    Browse the repository at this point in the history
  4. lib+spec+proof+autocorres: consistent Nondet filename prefix

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    2c8f9ee View commit details
    Browse the repository at this point in the history
  5. lib: consistent Trace filename prefix

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    67946d4 View commit details
    Browse the repository at this point in the history
  6. lib/monads: reorder files in ROOT

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    aa8b108 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    0e0e0ca View commit details
    Browse the repository at this point in the history
  8. proof+autocorres: update for select_wp and alternative_wp

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    0211681 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2023

  1. arm abstract+design: reorder object_type enum

    AArch64 C code changes now designate PageDirectoryObj as the VSpace
    object type, which comes first in the enum.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Aug 14, 2023
    Configuration menu
    Copy the full SHA
    f6eaad5 View commit details
    Browse the repository at this point in the history
  2. drefine: adjust for object_type enum reorder

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Aug 14, 2023
    Configuration menu
    Copy the full SHA
    f7c3ee5 View commit details
    Browse the repository at this point in the history
  3. arm crefine: proof updates for object_type enum reorder

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Aug 14, 2023
    Configuration menu
    Copy the full SHA
    71dc79a View commit details
    Browse the repository at this point in the history
  4. arm-hyp abstract+design: object_type enum reorder

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Aug 14, 2023
    Configuration menu
    Copy the full SHA
    540bb64 View commit details
    Browse the repository at this point in the history
  5. arm-hyp crefine: proof update for object_type enum reorder

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Aug 14, 2023
    Configuration menu
    Copy the full SHA
    4d97b26 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2023

  1. Configuration menu
    Copy the full SHA
    631bc30 View commit details
    Browse the repository at this point in the history
  2. lib/monads: minor cleanup and restyle in nondet monad

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    fde22d7 View commit details
    Browse the repository at this point in the history
  3. refine: update for changes to nondet monad

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    a084de4 View commit details
    Browse the repository at this point in the history
  4. lib/monads: restyle Trace_Monad.thy

    This should now be in sync with Nondet_Monad.thy wherever the two files
    have similar content.
    
    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    477e8d2 View commit details
    Browse the repository at this point in the history
  5. lib/monads: refactor trace monad theories

    This splits material out of Trace_Monad and Trace_VCG and into more
    specific theories, following the same approach and structure as the
    nondet theories. This commit is mainly focused on definitions and lemmas
    that also appear in the nondet monad; trace monad concepts are left
    where they are for now.
    
    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    380520c View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    6dbcf40 View commit details
    Browse the repository at this point in the history
  7. lib/monads: restyle and reorder trace monad files

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    4a44874 View commit details
    Browse the repository at this point in the history
  8. lib: update for trace monad refactor

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    917fff5 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2023

  1. lib: add a breakpoint for corres_cleanup

    This is useful for debugging the proof method for solving side
    conditions, and will show which goals corres_cleanup is invoked on.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    1482841 View commit details
    Browse the repository at this point in the history
  2. lib: enforce simp (no_asm) in Corres_Method

    The subst_all rule in the standard simp set can circumvent the (no_asm)
    mode of simp, which we are using in the corres method.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    51ebfd6 View commit details
    Browse the repository at this point in the history
  3. riscv refine: adjust for (no_asm) in Corres_Method

    The (no_asm) for corres goals is now properly enforced, which means
    it is now really necessary to provide terminal corres rules in their
    proper form.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    7595c02 View commit details
    Browse the repository at this point in the history
  4. lib: on the use of corres_liftM_simp rules

    Explain that these are not nice simp rules, what one should do instead,
    and why we leave them as is despite all that.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    f80d7f8 View commit details
    Browse the repository at this point in the history
  5. lib: factor out is_safe_wp method

    Factor out is_safe_wp from corres method, so that we can refer to it
    later in the documentation.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    0969196 View commit details
    Browse the repository at this point in the history
  6. lib: add docs and test for Corres_Method

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    c4369f5 View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2023

  1. crefine: change misleading proof step in CSpace_RAB_C

    Trying to figure this out was very educational, since ccorres_abstract
    was used without intending to abstract a variable, the xf' and lambda
    name were both red herrings (in fact, this proof only worked if xf' was
    instantiated with an *irrelevant* C local var name), and the body was
    not transformed.
    
    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis committed Sep 14, 2023
    Configuration menu
    Copy the full SHA
    deade60 View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2023

  1. aarch64 refine: remove pspace_canonical'

    This concept no longer makes sense on AARCH64, we will either need to
    know that certain addresses are in user_region (which implies
    canonical_user, which is more strict than canonical), or we will need
    to know they are in the kernel_window, which is also more strict than
    canonical. We'll only find out for sure in CRefine.
    
    Both cases are liftable from valid_vspace_uses and
    pspace_in_kernel_window from AInvs, so instead of a new invariant, the
    plan is to use Haskell assertions to transport the relevant info to
    CRefine when needed.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    322f4f9 View commit details
    Browse the repository at this point in the history
  2. aarch64 refine: invariant update lemmas

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    6e57667 View commit details
    Browse the repository at this point in the history
  3. aarch64 refine: ArchAcc_R sorry free

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    7ae4e55 View commit details
    Browse the repository at this point in the history
  4. aarch64 aspec: sync with Haskell

    Fix two small spec bugs where ASpec was out of sync with Haskell and C.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    c77d649 View commit details
    Browse the repository at this point in the history
  5. aarch64 ainvs: new invariant on vmid_table

    The vmid_table never maps ASID 0. We managed to get through AInvs
    without this property, but Refine does need it later.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    d16b4fd View commit details
    Browse the repository at this point in the history
  6. aarch64 aspec: cleanByVA_PoU in perform_pg_inv_map

    Add missing cache machine op.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    345818d View commit details
    Browse the repository at this point in the history
  7. aarch64 ainvs: updates for spec change

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    7713dff View commit details
    Browse the repository at this point in the history
  8. aarch64 aspec: fix do_flush spec bug

    cleanInvalidate should be using cleanInvalidateCacheRange_RAM.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    438e27a View commit details
    Browse the repository at this point in the history
  9. aarch64 aspec+ainvs: add valid_asid_map invariant

    Refine needs slightly stricter information about asid maps, in
    particular we need to know explicitly that asid 0 never maps to
    a VSpace. This is the reverse of valid_vmid_table, but unfortunately
    does not fully follow from valid_vmid_table, because there can
    be VSpaces mapped without an assigned VMID.
    
    We shift the test for 0 < asid from entry_for_asid to vspace_for_asid
    so we can use entry_for_asid in the formulation of the invariant.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    c628181 View commit details
    Browse the repository at this point in the history
  10. aarch64 refine: VSpace_R sorry-free

    Main progress is in VSpace_R, with some fallout in ArchAcc_R, ADT_R, and
    Schedule_R for invariant and spec changes.
    
    General obj_at preservation for setVMRoot does not hold and is relegated
    to something more specific in Schedule_R
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    d16d35e View commit details
    Browse the repository at this point in the history
  11. aarch64 refine: progress in Retype_R

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    f14217e View commit details
    Browse the repository at this point in the history
  12. aarch64 refine: progress in Retype_R

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    e74d5fe View commit details
    Browse the repository at this point in the history
  13. aarch64 haskell: tweak createNewCaps definition

    Tweak formulation of createNewCaps for page tables to be in the expected
    "addr ~elem~ map .." form. The previous definition was not wrong, but
    the lemmas in Retype_R expect the set membership form.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    4913aa8 View commit details
    Browse the repository at this point in the history
  14. aarch64 refine: Retype_R sorry-free

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    2ec696f View commit details
    Browse the repository at this point in the history
  15. aarch64 refine: Untyped_R sorry-free

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    1ea097a View commit details
    Browse the repository at this point in the history
  16. aarch64 refine: Schedule_R sorry-free

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    1f60044 View commit details
    Browse the repository at this point in the history
  17. aarch64 refine: IpcCancel_R sorry-free

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    73ba0ce View commit details
    Browse the repository at this point in the history
  18. aarch64 refine: Finalise_R sorry-free

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    522cef1 View commit details
    Browse the repository at this point in the history
  19. aarch64 aspec+ainvs: sync user_vtop check with C

    The user_vtop check in decode_fr_inv_map_wf can be relaxed from >= to >
    as done in Haskell and C.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    0e8048b View commit details
    Browse the repository at this point in the history
  20. aarch64 haskell: fix syscall arg error reporting

    The argument numbers in the error messages for
    decodeARMFrameInvocationMap are slightly off.
    
    Same bug exists in C, see also seL4/seL4#1075.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    d849c0b View commit details
    Browse the repository at this point in the history
  21. aarch64 haskell: check cap type in checkVSpaceRoot

    Correctly check the type of the table the PageTableCap points to in
    checkVSpaceRoot (must be a VSRootPT, not NormalPT).
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    e2355c7 View commit details
    Browse the repository at this point in the history
  22. aarch64 ainvs: mark addrFromPPtr_mask_ipa

    Lemma can potentially be removed if not used in the rest of Refine.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    1fb96c7 View commit details
    Browse the repository at this point in the history
  23. aarch64 aspec: fix flush type in decode_vspace_invocation

    decode_vspace_invocation operates on vspace flush labels, not page
    flush labels.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    c745d4e View commit details
    Browse the repository at this point in the history
  24. aarch64 refine: Arch_R sorry-free

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    da76bca View commit details
    Browse the repository at this point in the history
  25. aarch64 refine: Ipc_R sorry-free

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    1f05109 View commit details
    Browse the repository at this point in the history
  26. aarch64 refine: Interrupt_R sorry-free

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    a0311bd View commit details
    Browse the repository at this point in the history
  27. aarch64 refine: ADT_H sorry-free

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    ffd038f View commit details
    Browse the repository at this point in the history
  28. aarch64 refine: progress in Detype_R

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    1fde048 View commit details
    Browse the repository at this point in the history
  29. aarch64 refine: Detype_R sorry-free

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    8f2710d View commit details
    Browse the repository at this point in the history
  30. aarch64 refine: Orphanage sorry-free

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    2e3c97d View commit details
    Browse the repository at this point in the history
  31. aarch64 refine: resolve trivial FIXMEs

    These have either already been resolved, are trivial moves within one
    theory, or they are questions that the rest of the proof has now
    answered.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    cf0e636 View commit details
    Browse the repository at this point in the history
  32. aarch64 refine: leave comment instead of FIXME

    Might be useful for later proofs, but no need to fix now.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    43c0759 View commit details
    Browse the repository at this point in the history
  33. aarch64 refine: defer some FIXMEs to CRefine

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    6bfdecd View commit details
    Browse the repository at this point in the history
  34. aarch64 refine: consolidate dmo_invs_no_cicd' lemmas

    With a slightly better lifting rule, these can all be grouped and
    proved automatically.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    c263749 View commit details
    Browse the repository at this point in the history
  35. aarch64 refine: improve decode invariance crunch

    With adjustment of ARMMMU_improve_cases, the decode functions can all
    be done in a single crunch invocation.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    62618fc View commit details
    Browse the repository at this point in the history
  36. lib: fix ML warning

    The (=) syntax is Isabelle, the ML syntax is still (op =)
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    4c69a42 View commit details
    Browse the repository at this point in the history
  37. lib: move lemmas from refine/AARCH64/ArchAcc

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    6793a94 View commit details
    Browse the repository at this point in the history
  38. aarch64 refine: move lemmas to lib

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    5f74194 View commit details
    Browse the repository at this point in the history
  39. word_lib: anti-monotonicity of shiftr

    Co-authored-by: Rafal Kolanski <[email protected]>
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 and Xaphiosis committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    9f7e8f8 View commit details
    Browse the repository at this point in the history
  40. lib: lemmas moved from aarch64 refine

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    fe3ebf0 View commit details
    Browse the repository at this point in the history
  41. aarch64 refine: lemma moved to Word_Lib

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    dc4955d View commit details
    Browse the repository at this point in the history
  42. aarch64 refine: lemmas moved to lib

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    2251bf8 View commit details
    Browse the repository at this point in the history
  43. aarch64 refine: lemmas moved to aarch64 ainvs

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    26a3a6e View commit details
    Browse the repository at this point in the history
  44. aarch64 refine: move lemmas internally

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    a24ddbe View commit details
    Browse the repository at this point in the history
  45. lib+aarch64 refine: move lemmas to lib

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    de50741 View commit details
    Browse the repository at this point in the history
  46. lib+ainvs+aarch64 refine: move+consolidate vcg_op_lift lemmas

    Collect all operator lifting lemmas in one place under
    hoare_vcg_op_lift. (Moved from Refine)
    
    Move the lifting lemmas that were still in AInvs up to lib.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    0369a4b View commit details
    Browse the repository at this point in the history
  47. aarch64 ainvs+refine: move lemmas from Refine

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    dcf6ee4 View commit details
    Browse the repository at this point in the history
  48. aarch64 ainvs+refine: remove unused dom_ucast_eq

    The old version of dom_ucast_eq in AInvs is not useful, because the
    necessary constants are not available yet in AInvs.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    5497666 View commit details
    Browse the repository at this point in the history

Commits on Oct 5, 2023

  1. lib/monads: more cleanup and restyle in nondet monad

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    df31523 View commit details
    Browse the repository at this point in the history
  2. proof: update for changes to nondet monad

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    7999632 View commit details
    Browse the repository at this point in the history
  3. lib/monads/trace: copy in definitions and rules from nondet

    This fills out the trace monad rule set by copying in as many
    definitions and rules as possible from the nondet monad. Most of these
    do not immediately work for the trace monad, see the next commit for the
    required changes.
    
    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    d66ac95 View commit details
    Browse the repository at this point in the history
  4. lib/monads/trace: update definitions and rules taken from nondet

    This commit has all of the changes required so that the definitions and
    rules added in the previous commit work for the trace monad.
    
    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    0aac7ac View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    293b97c View commit details
    Browse the repository at this point in the history
  6. lib/monads: improve style of nondet and trace

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    3333395 View commit details
    Browse the repository at this point in the history
  7. lib/monads/nondet: remove uses of _tac methods

    In particular, try to remove as many as possible _tac methods that refer
    to system-generated variable names. Any remaining uses are explicitly
    protected by a rename_tac.
    
    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    34038fc View commit details
    Browse the repository at this point in the history
  8. lib/monads: add no_fail_ex_lift and no_fail_grab_asm

    Signed-off-by: Michael McInerney <[email protected]>
    michaelmcinerney committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    6680297 View commit details
    Browse the repository at this point in the history
  9. lib: improve corres_underlying rules for whileLoop

    Signed-off-by: Michael McInerney <[email protected]>
    michaelmcinerney committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    e7cca6a View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2023

  1. lib: sync Word_Lib with AFP

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    6721c7a View commit details
    Browse the repository at this point in the history
  2. lib/Eisbach_Tools: morphism type changed in Isabelle2023

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3f66cb0 View commit details
    Browse the repository at this point in the history
  3. lib: Isabelle2023 update

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    eeae2af View commit details
    Browse the repository at this point in the history
  4. misc: goto-error jEdit macro: update for 2023

    Signed-off-by: Rafal Kolanski <[email protected]>
    Xaphiosis authored and lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    286278d View commit details
    Browse the repository at this point in the history
  5. aspec: mapsto syntax update for Isabelle2023

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    450234e View commit details
    Browse the repository at this point in the history
  6. c-parser: sync Simpl from AFP for Isabelle2023

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    83fc513 View commit details
    Browse the repository at this point in the history
  7. c-parser: update to Isabelle2023 maps-to syntax

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    be44fad View commit details
    Browse the repository at this point in the history
  8. c-parser: adapt standalone parser to Isabelle2023

    The code draws in table.ML from the Isabelle source, which changed
    in the 2023 release. This commit adds further library functions from
    Isabelle library.ML and extracts the parts of unsynchronized.ML that
    work with mlton.
    
    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    26807f7 View commit details
    Browse the repository at this point in the history
  9. clib: update to Isabelle2023 mapsto syntax

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    f88d2d4 View commit details
    Browse the repository at this point in the history
  10. proof: update to Isabelle2023 mapsto syntax

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3141584 View commit details
    Browse the repository at this point in the history
  11. sep-capDL: update to Isabelle2023 mapsto syntax

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    f7768ee View commit details
    Browse the repository at this point in the history
  12. capdDL-api: update to Isabelle2023 mapsto syntax

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    4c0b3df View commit details
    Browse the repository at this point in the history
  13. autocorres: update to Isabelle2023

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    0f99a75 View commit details
    Browse the repository at this point in the history
  14. camkes: update to Isabelle2023 mapsto syntax

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    0d984f3 View commit details
    Browse the repository at this point in the history
  15. word lib: fix broken style introduced from AFP

    Signed-off-by: Gerwin Klein <[email protected]>
    lsf37 committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    ad24d95 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2023

  1. Merge branch 'master' into rt

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Oct 11, 2023
    Configuration menu
    Copy the full SHA
    3036f22 View commit details
    Browse the repository at this point in the history
  2. rt proof: update for merge

    Signed-off-by: Corey Lewis <[email protected]>
    corlewis committed Oct 11, 2023
    Configuration menu
    Copy the full SHA
    3308a0b View commit details
    Browse the repository at this point in the history