diff --git a/docs/index.html b/docs/index.html index 8d3ff69..2576d45 100644 --- a/docs/index.html +++ b/docs/index.html @@ -151,6 +151,7 @@

Isabelle-LLVM Logo Isabelle-LLVM

Isabelle-LLVM is a verification framework for Isabelle/HOL that targets LLVM as backend. The main features are:

@@ -178,7 +179,7 @@

News

  • Updated to work with new Isabelle 2021 version
  • Getting Started

    -

    You can browse the theories or download the files. (The download link won’t work if you are browsing this from inside the downloaded archive!)

    +

    You can browse the theories or download the files. (The download link won’t work if you are browsing this from inside the downloaded archive!)

    Warning: the .thy files in the download are best viewed with the Isabelle/HOL IDE.

    Git Repository

    The project is hosted on github github.com/lammich/isabelle_llvm/tree/2022

    @@ -186,27 +187,27 @@

    Starting Points for Browsing

    Here are some default starting points for browsing the theories

    Parallel Paper

    Some starting points, structured according to the parallel paper:

    -

    NE Monad

    -

    M Monad Includes the parallel combinator

    -

    Memory Model Including access reports

    -

    LLVM Values stored in Memory

    -

    LLVM Instructions

    -

    Code Generator Including the template for translating llc_par

    -

    Separation Logic and VCG A bit more general than described in paper, parameterized over memory model. The general rules are proved in Sep_Generic_Wp.thy, e.g. lemma ht_par for the parallel rule. The instantiated parallel rule is ht_llc_par in Sepref_Parallel.thy.

    -

    Sepref Tool Including the parallel setup in Sepref_Parallel.thy.

    -

    Interval array data structure

    -

    With-Split Combinator, With-Idxs Combinator and its implementation on arrays.

    -

    Sorting Algorithms Contains the code export to LLVM, and the final correctness theorem. Our parallel quicksort algorithm is in Sorting_Parsort.thy, the sampling pivot finder is in Sorting_Sample_Partition.thy, and the parallel partitioner is in Sorting_Par_Partition.thy.

    +

    NE Monad

    +

    M Monad Includes the parallel combinator

    +

    Memory Model Including access reports

    +

    LLVM Values stored in Memory

    +

    LLVM Instructions

    +

    Code Generator Including the template for translating llc_par

    +

    Separation Logic and VCG A bit more general than described in paper, parameterized over memory model. The general rules are proved in Sep_Generic_Wp.thy, e.g. lemma ht_par for the parallel rule. The instantiated parallel rule is ht_llc_par in Sepref_Parallel.thy.

    +

    Sepref Tool Including the parallel setup in Sepref_Parallel.thy.

    +

    Interval array data structure

    +

    With-Split Combinator, With-Idxs Combinator and its implementation on arrays.

    +

    Sorting Algorithms Contains the code export to LLVM, and the final correctness theorem. Our parallel quicksort algorithm is in Sorting_Parsort.thy, the sampling pivot finder is in Sorting_Sample_Partition.thy, and the parallel partitioner is in Sorting_Par_Partition.thy.

    Verified Algorithms

    -

    Parallel Quicksort

    -

    Introsort

    -

    PDQ Sort

    -

    Knuth Morris Pratt String Search

    -

    Binary Search

    +

    Parallel Quicksort

    +

    Introsort

    +

    PDQ Sort

    +

    Knuth Morris Pratt String Search

    +

    Binary Search

    For the ISA-SAT verified SAT solver, see its own homepage

    Isabelle-LLVM

    -

    IICF (Isabelle-LLVM + Refinement Framework + Collection Framework)

    -

    Shallow Embedding of LLVM Semantics

    +

    IICF (Isabelle-LLVM + Refinement Framework + Collection Framework)

    +

    Shallow Embedding of LLVM Semantics

    Prerequisites