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