Giter Club home page Giter Club logo

verification-manifest's Introduction

Manifest repository

This repository contains google repo manifest files for the verification repository collection. It manages the collection of repositories that are needed for the verification of the seL4 microkernel. In particular, these repositories include the proofs, the kernel sources, the theorem prover Isabelle/HOL, the theorem prover HOL4, and the binary verification tool chain.

Contents

The manifest files stored here come in three categories:

  • default.xml: this manifest stores the latest tested-as-working combination of the seL4 code and proof repositories. It is updated automatically by CI jobs. It points to specific revision hashes, and should generally not be modified manually.

  • development manifests such as devel.xml and mcs.xml: these are for proof development and typically point to branch names of the verification repositories in combination with a fixed revision hash of the seL4 code repository. The seL4 revision in devel.xml is updated automatically by CI jobs for code changes in seL4 that are not visible to the proofs. It should be updated manually or using the version bump script whenever proofs are updated in sync with the code. This will then trigger a CI run and, if successful, a corresponding update in default.xml.

  • release version manifests such as 12.0.0.xml: these store the repository version configuration for official releases of seL4. Use these to check proofs for release versions.

Use

To build the seL4 proofs, please follow the setup instructions in the l4v repository.

For build instructions for the binary verification, see the graph-refine repository.

verification-manifest's People

Contributors

agomezl avatar axel-h avatar corlewis avatar japhethlim avatar kent-mcleod avatar lsf37 avatar mbrcknl avatar michaelmcinerney avatar pingerino avatar robs-cse avatar sel4-ci avatar xaphiosis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

verification-manifest's Issues

Unable to fetch the project

As said in the build description I do:
$ repo init -u https://github.com/seL4/verification-manifest.git
$ repo sync

It seems like the project HOL is downloaded successfully, but when repo is trying to fetch the project isabelle I get the following error message:
"fatal: Couldn't find remote ref refs/tags/Isabelle2016
Unexpected end of command stream"

error.GitError: polyml update-ref: fatal: cea4c79cc7ef2445a0600f1be41acb3a97c16e01^0: not a valid SHA1

Hello, I've been trying to install this repo (following all the steps in https://docs.sel4.systems/projects/buildsystem/host-dependencies.html), but when I try "repo sync" it causes an error like below:

remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 154540 (delta 2), reused 4 (delta 2), pack-reused 154532
Receiving objects: 100% (154540/154540), 94.73 MiB | 11.05 MiB/s, done.
Resolving deltas: 100% (116232/116232), done.
Fetching projects: 16% (1/6) HOLremote: Enumerating objects: 62, done.
remote: Counting objects: 100% (62/62), done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 31384 (delta 37), reused 37 (delta 30), pack-reused 31322
Receiving objects: 100% (31384/31384), 86.78 MiB | 11.08 MiB/s, done.
Resolving deltas: 100% (25303/25303), done.
error: Cannot fetch polyml (GitError: polyml update-ref: fatal: cea4c79cc7ef2445a0600f1be41acb3a97c16e01^0: not a valid SHA1

default manifest points to old `sel4proj` repositories

(Mostly a note to self, since I don't have time to fix this right now.)

The HOL4 and polyml entries in the default manifest (and probably also in others) point to repositories in the sel4proj organisation, but those repositories redirect back to the seL4 organisation. This works, but we could update the manifests to point to the canonical locations to avoid confusion.

Default manifest fails

To reproduce using Docker:

Setup the project:

mkdir verification
cd verification
repo init -u ssh://[email protected]/seL4/verification-manifest.git
repo sync -m default.xml
docker run -v `pwd`:/work -w /work/l4v --rm -it trustworthysystems/l4v

Within Docker:

rm -rf ~/.isabelle
mkdir -p ~/.isabelle/etc
cp -i misc/etc/settings ~/.isabelle/etc/settings
./isabelle/bin/isabelle components -a
./isabelle/bin/isabelle jedit -bf
./isabelle/bin/isabelle build -bv HOL
misc/regression/run_tests.py AutoCorresTest

Output:

root@ba717596fdbd:/work/l4v# misc/regression/run_tests.py AutoCorresTest
Running 4 test(s)...
  Started isabelle ...
  Finished isabelle                  FAILED *    ( 0:00:29 real,  0:01:52 cpu,  2.94GB)
  Finished CParser                   SKIPPED *
  Finished AutoCorres                SKIPPED *
  Finished AutoCorresTest            SKIPPED *

------------------------------------------------------------------------
TEST FAILED: isabelle

...
*** Failed to load theory "Word_Lib.Word_EqI" (unresolved "Word_Lib.More_Word", "Word_Lib.Traditional_Infix_Syntax")
*** Failed to load theory "Word_Lib.Most_significant_bit" (unresolved "Word_Lib.Bits_Int", "Word_Lib.Traditional_Infix_Syntax")
*** Failed to load theory "Word_Lib.Generic_set_bit" (unresolved "Word_Lib.Bits_Int", "Word_Lib.Most_significant_bit")
*** Failed to load theory "Word_Lib.Typedef_Morphisms" (unresolved "Word_Lib.Bits_Int")
*** Failed to load theory "Word_Lib.Aligned" (unresolved "Word_Lib.More_Word", "Word_Lib.Typedef_Morphisms", "Word_Lib.Word_EqI")
*** Failed to load theory "Word_Lib.Next_and_Prev" (unresolved "Word_Lib.Aligned")
*** Failed to load theory "Word_Lib.Word_Lemmas" (unresolved "Word_Lib.Aligned", "Word_Lib.Enumeration_Word", "Word_Lib.More_Word", "Word_Lib.Most_significant_bit")
*** Failed to load theory "Word_Lib.Word_8" (unresolved "Word_Lib.Enumeration_Word", "Word_Lib.More_Word", "Word_Lib.Word_Lemmas")
*** Failed to load theory "Word_Lib.Reversed_Bit_Lists" (unresolved "Word_Lib.Aligned", "Word_Lib.Least_significant_bit", "Word_Lib.Most_significant_bit", "Word_Lib.Typedef_Morphisms")
*** Failed to load theory "Word_Lib.Ancient_Numeral" (unresolved "Word_Lib.Reversed_Bit_Lists")
*** Failed to load theory "Word_Lib.Bitwise" (unresolved "Word_Lib.Reversed_Bit_Lists")
*** Failed to load theory "Word_Lib.Bitwise_Signed" (unresolved "Word_Lib.Bitwise")
*** Failed to load theory "Word_Lib.More_Word_Operations" (unresolved "Word_Lib.Aligned", "Word_Lib.Reversed_Bit_Lists")
*** Failed to load theory "Word_Lib.Word_32" (unresolved "Word_Lib.Bitwise", "Word_Lib.More_Word_Operations", "Word_Lib.Rsplit", "Word_Lib.Word_Lemmas", "Word_Lib.Word_Syntax")
*** Failed to load theory "Word_Lib.Word_Lemmas_Internal" (unresolved "Word_Lib.Many_More", "Word_Lib.More_Word_Operations", "Word_Lib.Word_Lemmas", "Word_Lib.Word_Syntax")
*** Failed to load theory "Word_Lib.Word_Lemmas_Prefix" (unresolved "Word_Lib.Word_Lemmas", "Word_Lib.Word_Lemmas_Internal")
*** Failed to load theory "Word_Lib.Word_Lib_Sumo" (unresolved "Word_Lib.Aligned", "Word_Lib.Ancient_Numeral", "Word_Lib.Bits_Int", "Word_Lib.Bitwise", "Word_Lib.Bitwise_Signed", "Word_Lib.Enumeration_Word", "Word_Lib.Generic_set_bit", "Word_Lib.Least_significant_bit", "Word_Lib.Legacy_Aliases", "Word_Lib.Many_More", "Word_Lib.More_Word_Operations", "Word_Lib.Most_significant_bit", "Word_Lib.Next_and_Prev", "Word_Lib.Norm_Words", "Word_Lib.Reversed_Bit_Lists", "Word_Lib.Rsplit", "Word_Lib.Strict_part_mono", "Word_Lib.Traditional_Infix_Syntax", "Word_Lib.Typedef_Morphisms", "Word_Lib.Word_16", "Word_Lib.Word_32", "Word_Lib.Word_8", "Word_Lib.Word_EqI", "Word_Lib.Word_Lemmas", "Word_Lib.Word_Lemmas_Internal", "Word_Lib.Word_Lemmas_Prefix", "Word_Lib.Word_Syntax")
*** Failed to load theory "Word_Lib.Word_Lemmas_32_Internal" (unresolved "Word_Lib.Word_Lib_Sumo")
*** Failed to load theory "Word_Lib.WordSetup" (unresolved "Word_Lib.Distinct_Prop", "Word_Lib.Word_Lemmas_32_Internal")
*** Type unification failed: Occurs check!
***
*** Type error in application: incompatible operand type
***
*** Operator:  (=) (w AND m AND m) :: ??'a ⇒ bool
*** Operand:   w AND m :: ??'b ⇒ ??'c ⇒ ??'a
***
*** At command "lemma" (line 39 of "/work/l4v/lib/Word_Lib/More_Word.thy")
*** Extra variables on rhs: "NOT"
*** The error(s) above occurred in definition:
*** "wordNOT x ≡ NOT x"
*** At command "abbreviation" (line 16 of "/work/l4v/lib/Word_Lib/Word_Syntax.thy")
*** Extra variables on rhs: "NOT"
*** The error(s) above occurred in definition:
*** "complement x ≡ NOT x"
*** At command "definition" (line 13 of "/work/l4v/lib/Word_Lib/Legacy_Aliases.thy")
Unfinished session(s): Word_Lib

Finished at Tue Mar 29 21:01:07 GMT 2022
0:00:27 elapsed time, 0:01:11 cpu time, factor 2.55

------------------------------------------------------------------------


0/4 tests succeeded.

Tests failed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.