Library Pip.Proof.invariants.CheckChild


Summary

This file contains the invariant of checkChild some associated lemmas
getFstShadow
getIndexOfAddr
getTableAddr
case isNullptSh1
readPDflag
Lemma checkChildInv vaInCurrentPartition vaChild currentPart descChild level:
{{ fun s : state((((partitionsIsolation s
    kernelDataIsolation s
    verticalSharing s
    consistency s)
    (Nat.eqb Kidx
       (List.nth (length vaInCurrentPartition - (nbLevel - 1 + 2)) vaInCurrentPartition defaultIndex))
       = false)
    (Nat.eqb Kidx
       (List.nth (length vaChild - (nbLevel - 1 + 2)) vaChild defaultIndex))
       = false)
    currentPart = currentPartition s)
    Some level = StateLib.getNbLevel
}}
  Internal.checkChild currentPart level descChild
{{
  fun res s
     (res = false
        partitionsIsolation s
        kernelDataIsolation s
        verticalSharing s
        consistency s
     )
   (res = true
         currentShadow1 idxRefChild ptRefChild,
          partitionsIsolation s
          kernelDataIsolation s
          verticalSharing s
          consistency s

          (Nat.eqb
             Kidx
             (List.nth (length vaInCurrentPartition - (nbLevel - 1 + 2)) vaInCurrentPartition defaultIndex)
          ) = false
          (Nat.eqb
             Kidx
             (List.nth (length vaChild - (nbLevel - 1 + 2)) vaChild defaultIndex)
          ) = false

          currentPart = currentPartition s
          Some level = StateLib.getNbLevel

          nextEntryIsPP currentPart sh1idx currentShadow1 s
          StateLib.getIndexOfAddr descChild fstLevel = idxRefChild
          (getTableAddrRoot' ptRefChild sh1idx currentPart descChild s
             ptRefChild = defaultPage
             ( idx : index,
                StateLib.getIndexOfAddr descChild fstLevel = idx
                  isVE ptRefChild idx s
                  getTableAddrRoot ptRefChild sh1idx currentPart descChild s
             )
          )
          (Nat.eqb defaultPage ptRefChild) = false
     )
}}.
getFstShadow
StateLib.getIndexOfAddr
getTableAddr
simplify the new precondition