Commit Graph

1791 Commits

Author SHA1 Message Date
Gerwin Klein 09a02acc7b arm-hyp proofs/ROOT: make it possible to skip proofs in BaseRefine 2017-06-19 14:32:28 +10:00
Alejandro Gomez-Londono a751e4f798 arm-hyp refine: More invariants for vcpuSwitch and alike 2017-06-19 14:32:28 +10:00
Miki Tanaka d1eef6c026 arm-hyp refine: Detype_R sorry free 2017-06-19 14:32:28 +10:00
Miki Tanaka 511d3f5c40 arm-hyp refine: one sorry left in Detype_R 2017-06-19 14:32:28 +10:00
Miki Tanaka bdd6f9c896 arm-hyp refine: add armUSGlobalPD to global_refs' in Invariants_H 2017-06-19 14:32:28 +10:00
Alejandro Gomez-Londono a6b0559e23 arm-hyp refine: set_vm_root_corres and auxiliary lemmas 2017-06-19 14:32:28 +10:00
Alejandro Gomez-Londono e52c985b4b arm-hyp refine: add valid_arch_tcb' invariant (vcpu_at' for atcbVCPUPtr) 2017-06-19 14:32:28 +10:00
Alejandro Gomez-Londono 1efbaf8e31 arm-hyp tests: fixing run_tests to work with testboard 2017-06-19 14:32:28 +10:00
Miki Tanaka 9103207d8a arm-hyp refine: fix storePDE/storePTE sorries in VSpace_R 2017-06-19 14:32:28 +10:00
Gerwin Klein abc195f170 arm-hyp ainvs: add valid_arch_tcb invariant (vcpu_at for tcb_vcpu) 2017-06-19 14:32:28 +10:00
Gerwin Klein db3ffbd4b6 arm-hyp abstract: fix order of VCPUSet arguments 2017-06-19 14:32:28 +10:00
Miki Tanaka 4260a2c545 arm-hyp refine: new definition of valid_arch_state', with more sorries for now
valid_arch_state' now requires armHSCurVCPU to be a pointer to a live' vcpu
2017-06-19 14:32:28 +10:00
Miki Tanaka aa82471c17 arm-hyp refine: Invariants_H sorry free 2017-06-19 14:32:28 +10:00
Miki Tanaka 1c85326bac arm-hyp refine: new definition of valid_vcpu'
this introduces a more accessible definition of valid_vcpu'
2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono 4e90b0558f arm-hyp refine: fixing some broken lemmas after the last batch of changes 2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono b7e754bf1b arm-hyp refine: vcpu{Switch,Save,Enable,etc}_corres + other related lemmas 2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono 76b02fe736 arm-hyp ainvs: Fixing StateRelation due to some renaming in abstract/haskell 2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono bf8b1ebdad arm-hyp ainvs: Fixing some proofs due to renaming 2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono be3d9e7209 arm-hyp haskell: Renaming constants/records to follow abstract/haskell convention
* Renaming of some records to follow abstract/haskell convention
  * Some duplicated constants were removed and placed in a shared
    location (machine/ARM_HYP/MachineTypes.thy)
2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono 9fef0a9dcb arm-hyp aspec: Renaming constants/records to follow abstract/haskell convention
* Renaming of some records to follow abstract/haskell convention
  * Some duplicated constants were removed and placed in a shared
    location (machine/ARM_HYP/MachineTypes.thy)
2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono e99bd4d5f2 lib: properly defining arrayListUpdate (Fix) 2017-06-19 14:32:27 +10:00
Gerwin Klein 740d606774 refine: closed the Orphanage
Not necessary for CRefine and better proved on the abstract spec now.
To be resurrected (on abstract) in the future.
2017-06-19 14:32:27 +10:00
Gerwin Klein 75acdb3823 arm-hyp refine: add IRQReserved to state relation 2017-06-19 14:32:27 +10:00
Gerwin Klein 8f8e72defa arm-hyp haskell: add ctRunning check for vgicMaintenance 2017-06-19 14:32:27 +10:00
Gerwin Klein e2d8a0ae50 arm-hyp refine: Tcb_R sorry free 2017-06-19 14:32:27 +10:00
Gerwin Klein bc40dc4a46 arm-hyp refine: remove unused ADT_H lemma 2017-06-19 14:32:27 +10:00
Gerwin Klein e9d3c3eb54 arm-hyp: remove unused ParityEnabled in aspec; solve sorries in ADT_H
ParityEnabled isn't used in ARM_HYP and we had to prove its absence as
invariant, which in turn makes the abstraction function from Haskell
to abstract partial (only works when invariants hold).

This commit removes that problem by removing ParityEnabled from the
abstract spec. Updated ainv and refine as necessary.
2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono cbb154f51d arm-hyp ainvs: no_fail rules for vcpuregs_gets and vcpuregs_sets 2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono 4688427394 arm-hyp haskell: Small fix to vcpuSave 2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono e727f3b27b arm-hyp aspec: Small fix to vcpu_save 2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono c850a8270a lib: Adding some lemmas about init
* init_Snoc: init (xs @ [x]) = xs

  * init_upto_enum_upt: init [0.e.n] = [0..<n]
2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono e16231688d arm-hyp aspec: (fix) Changed gicVCPUMaxNumLR from int to nat 2017-06-19 14:32:27 +10:00
Gerwin Klein 61136c29fd arm-hyp: wp_pre rebase repair 2017-06-19 14:32:27 +10:00
Gerwin Klein f33d584cac arm-hyp refine: proof repair for spec updates 2017-06-19 14:32:26 +10:00
Gerwin Klein 7cf0631ac2 arm-hyp ainvs: proof updates for abstract spec changes
In particular for:
  - new global PD
  - disable vcpu on switch to idle
  - banked registers
2017-06-19 14:32:26 +10:00
Gerwin Klein a84e8dd147 ainvs: generalise as_user_cte_wp_at 2017-06-19 14:32:26 +10:00
Gerwin Klein b2d946ce4e arm-hyp abstract: add handling of VCPU banked registers 2017-06-19 14:32:26 +10:00
Gerwin Klein 364e1e7a3a arm-hyp abstract: update sanitise_register 2017-06-19 14:32:26 +10:00
Gerwin Klein f8c44eba19 arm-hyp abstract: Use an explicitly invalid PD when there is no user one
Adds an arm_us_global_pd pointer pointing to a PD with only invalid entries.
2017-06-19 14:32:26 +10:00
Gerwin Klein d889cc37b7 arm-hyp abstract: Disable active VCPU when switching to the idle thread 2017-06-19 14:32:26 +10:00
Rafal Kolanski 8d1b696aa1 arm-hyp haskell: Use an explicitly invalid PD when there is no user one
Adds armUSGlobalPD pointer with no specific properties. Used in setVMRoot.
2017-06-19 14:32:26 +10:00
Rafal Kolanski 54999477b8 arm-hyp design: let ArchThread_H see ArchHypervisor_H 2017-06-19 14:32:26 +10:00
Rafal Kolanski 4839ac4ecd arm-hyp haskell: Disable active VCPU when switching to the idle thread 2017-06-19 14:32:26 +10:00
Rafal Kolanski 6d037b92f6 arm-hyp design: requalify vcpureg type 2017-06-19 14:32:26 +10:00
Rafal Kolanski 1cffe58cb4 arm-hyp haskell: add handling of VCPU banked registers 2017-06-19 14:32:26 +10:00
Rafal Kolanski 9b922f0629 haskell: expose sanitiseRegister for lhs-boot imports 2017-06-19 14:32:26 +10:00
Rafal Kolanski 11f68df5fb arm-hyp haskell: update sanitiseRegister 2017-06-19 14:32:26 +10:00
Gerwin Klein 5a03004e2c refine: minor cleanup 2017-06-19 14:32:26 +10:00
Gerwin Klein 29abd9a19e arm-hyp/refine: vgic maintenance updates 2017-06-19 14:32:26 +10:00
Gerwin Klein e4d8bb1d4f arm_hyp/refine: 'getActiveIRQ in_kernel' updates 2017-06-19 14:32:26 +10:00