History log of /seL4-l4v-master/l4v/lib/Word_Lib/Word_Lemmas.thy
Revision Date Author Comments
# 600836ec 19-Mar-2020 Gerwin Klein <gerwin.klein@data61.csiro.au>

word_lib: re-sync with AFP; fix broken document

Also switched on document generation so we don't miss these in the future.

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>


# 9b2836ef 19-Mar-2020 Gerwin Klein <gerwin.klein@data61.csiro.au>

word_lib: sync from AFP

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>


# a424d55e 09-Mar-2020 Gerwin Klein <gerwin.klein@data61.csiro.au>

licenses: convert license tags to SPDX


# 8c42173a 10-Feb-2020 Rafal Kolanski <rafal.kolanski@data61.csiro.au>

Word_Lib: add from_bool_eqI


# 72064236 30-Jan-2020 Zoltan Kocsis <zoltan@kyanite.keg.data61.csiro.au>

word-lib: strengthen ucast_less_ucast


# 43fc7e26 11-Dec-2019 Zoltan Kocsis <zoltan@kyanite.keg.data61.csiro.au>

word-lib: add upward cast monotonicity lemmata


# 3bce45dd 21-Oct-2019 Gerwin Klein <gerwin.klein@data61.csiro.au>

word_lib: avoid shadowing existing lemma


# 0fc9ab94 20-Oct-2019 Gerwin Klein <gerwin.klein@data61.csiro.au>

word_lib: add new material from l4v to AFP; cleanup


# ad892329 21-Oct-2019 Gerwin Klein <gerwin.klein@data61.csiro.au>

word_lib: shorter, more automatic proofs


# 3cffac84 19-Oct-2019 Gerwin Klein <gerwin.klein@data61.csiro.au>

word_lib: word_eqI and word_eqI_solve methods

Improvements on initial version by Thomas Sewell


# 67b8237e 23-Oct-2019 Victor Phan <Victor.Phan@data61.csiro.au>

lib: add word lemma

Add of_nat_unat_le_mask_ucast: equality of words where one is wrapped with
of_nat (unat _).


# d2584a36 03-Sep-2019 Gerwin Klein <gerwin.klein@data61.csiro.au>

cleanup: collect word lemmas


# bbfd9e2a 26-Sep-2019 Victor Phan <Victor.Phan@data61.csiro.au>

lib: add helper lemmas


# d804b7a8 27-Apr-2019 Rafal Kolanski <rafal.kolanski@data61.csiro.au>

Word_Lib: add ucast_shiftl_eq_0


# f3d95dbb 04-Apr-2019 Rafal Kolanski <rafal.kolanski@data61.csiro.au>

Word_Lib: add masking lemmas from RISCV64 lookup proofs


# 21f9a86d 19-May-2019 Gerwin Klein <gerwin.klein@data61.csiro.au>

lib: sync Word_Lib with AFP


# b7d680a2 16-Sep-2018 Edward Pierzchalski <ed.pierzchalski@data61.csiro.au>

lib: speed up word8_exhaust


# 04f4336a 23-Jun-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

Word_Lib: sync with AFP


# 62b0ab20 24-Jun-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

Word_Lib: consolidate LemmaBucket and Lib lemmas into Word_Lib


# b02bf100 09-Jun-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

lib/Word_Lib: import merge fixup from AFP

This commit keeps Word_Lib in sync with the AFP


# 7f3fa50a 09-Jun-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

lib/Word_Lib: sync with AFP


# b1aa74d3 09-Jun-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

Isabelle2018 lib: Word_Lib


# c3900139 21-Apr-2018 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

x64 crefine: prove several lemmas in Retype_C

To prove that retyping a TCB establishes the state relation for TCBs,
it is necessary to prove that the C FPU null state is always equal to
the Haskell FPU null state. This commit therefore includes some
machinery for maintaining the state relation for the FPU null state,
and repairs many proofs.


# df9c791a 07-May-2018 Michael Sproul <michael.sproul@data61.csiro.au>

lib: add some word lemmas about sless, word_bits


# 1ec4a8b1 03-Apr-2018 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

lib: miscellaneous word lemmas


# bcac2c84 01-Feb-2018 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

x64: clear some sorry proofs from CSpace_C

Also update some Haskell and abstract specs relating to IO ports.


# d99efd0d 22-Jan-2018 Rafal Kolanski <rafal.kolanski@nicta.com.au>

lib: Word_Lemmas: sign_extended addition and ~~mask lemmas


# d4996217 13-Jun-2018 Rafal Kolanski <rafal.kolanski@nicta.com.au>

lib: add generic lemmas from SELFOUR-584 updates

Mainly concerning word_ctz and enumeration_both.


# d108e3ed 20-Dec-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

lib: a more intuitive definition of sign_extend for words

Also includes some supporting lemmas useful in bitfield proofs.


# 09b79385 17-Dec-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

word-lib: add some lemmas about sign extension


# 877312f0 24-Nov-2017 Rafal Kolanski <rafal.kolanski@nicta.com.au>

lib: generic/word/monad/hoare lemmas from SELFOUR-242 verification

Notably useful is hoare_vcg_lift_imp' which generates an implication
rather than a disjunction.

Monadic rewrite rules should be modified to preserve bound variable
names, as demonstrated by monadic_rewrite_symb_exec_l'_preserve_names.
Addressing this more comprehensively is left as a TODO item for the
future (see VER-554).


# 8753c05b 31-Oct-2017 Thomas Sewell <Thomas.Sewell@data61.csiro.au>

Expand eval_bool; add a method word_eqI_solve.

A number of proofs begin with word_eqI followed by some similar steps,
suggesting a 'word_eqI_solve' proof method, which is implemented here.

Many of these steps are standard, however a tricky part is that constants of
type 'nat' which encode a particular number of bits must often be unfolded.
This was done by expanding the eval_bool machinery to add eval_int_nat, which
tries to evaluate ints and nats.

Testing eval_int_nat revealed the need to improve the code generator setup
somewhat. The Arch locale contains many of the relevant constants, and they are
given global names via requalify_const, but the code generator doesn't know
about them. Some tweaks make them available. I *think* this is safe for
arch_split, as long as the proofs that derive from them are true in each
architecture.


# b41f67ac 23-Aug-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

Isabelle2017: update Word_Lib for RC0

* Various equalities from underlying HOL-Word have been reoriented.

* word_eqI is no longer rule_format.

* zdiff_zmod_* were renamed to mod_diff_*_eq.


# 27ae2ca7 10-Aug-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

lib: move some lemmas from bitfield proofs to word-lib


# 796887d9 11-Jul-2017 Alejandro Gomez-Londono <alejandro.gomez@nicta.com.au>

Removes all trailing whitespaces


# 9ea2232d 25-Apr-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

Word_Lib: miscellaneous conditional injectivity rules


# 0bbfb85d 25-Apr-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

Word_Lib: add le_mask_shiftl_le_mask


# a40d6986 07-Feb-2017 Rafal Kolanski <rafal.kolanski@nicta.com.au>

lib: word and misc lemmas from SELFOUR-242 proofs

These precipitated out during cleanup.


# 3dafec7d 25-Jan-2017 Joel Beeren <Joel.Beeren@nicta.com.au>

backport changes to ARM proofs from X64 work in progress

- replace ARM-specific constants and types with aliases which can be
instantiated separately for each architecture.
- expand lib with lemmas used in X64 proofs.
- simplify some proofs.

Also-by: Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>


# 1a590fbb 13-Oct-2016 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

Isabelle2016-1: update Word_Lib

Word_Lib now looks more like the current AFP entry, though there are
still some local modifications.


# c94b1dd0 17-Nov-2016 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

Word_Lib: lemmas about high bits w.r.t. mask operations


# 72349f81 15-Nov-2016 Rafal Kolanski <rafal.kolanski@nicta.com.au>

Revert SELFOUR-242: invert bitfield scheduler and optimise fast path

This reverts:
- a67b443ca5a1e4a8f4d4a7fe0757861e2a7898b5
"SELFOUR-242: update goal number based indentation in Fastpath_C"
- f704cf04044209df996ef6c22bc8ea52122a2c1e
"SELFOUR-242: invert bitfield scheduler and optimise fast path"

Verification confirmed functional correctness and refinement of the
system in this case. However, guarantees on thread scheduling and
fairness are not modeled in the current verification. Once this issue is
addressed, SELFOUR-242 will be re-examined.


# f704cf04 13-Nov-2016 Rafal Kolanski <rafal.kolanski@nicta.com.au>

SELFOUR-242: invert bitfield scheduler and optimise fast path

* Reverse the level 2 of the bitmap scheduler to move the highest priority
threads' level 2 entries into the same cache line as the level 1.
* Use the bitfield scheduler to make the fast path a more common occurrence.
* Change possibleSwitchTo to not invoke scheduler when the fast path would not
invoke it either (using implicit assumptions about the current thread being
the highest priority schedulable thread)


# 92148ce8 03-Oct-2016 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

Word_Lib: lemmas comparing different word sizes


# aa50dc68 03-May-2016 diekmann <diekmann@net.in.tum.de>

Word_Lemmas: NOT_mask_shifted_lenword

[rebased from https://github.com/seL4/l4v/pull/10]


# cd930d2d 13-May-2016 Gerwin Klein <gerwin.klein@nicta.com.au>

word_lib: move unrelated lemmas out of Word_Lib into Lib


# e2ae586a 13-May-2016 Gerwin Klein <gerwin.klein@nicta.com.au>

word_lib: AFP document setup


# 09117a69 13-May-2016 Gerwin Klein <gerwin.klein@nicta.com.au>

word_lib: run isabelle update_then for new style and fun


# 323de378 13-May-2016 Gerwin Klein <gerwin.klein@nicta.com.au>

word_lib: use cartouches


# f88c4184 13-May-2016 Gerwin Klein <gerwin.klein@nicta.com.au>

lib: move Distinct_Prop out of Word_Lib


# 2d8f9596 30-Apr-2016 Gerwin Klein <gerwin.klein@nicta.com.au>

word_lib: Distinct_Prop cleanup


# 2367dff9 30-Apr-2016 Gerwin Klein <gerwin.klein@nicta.com.au>

word_lib: move out unused HOL_Lemmas


# 0ced4682 29-Apr-2016 Gerwin Klein <gerwin.klein@nicta.com.au>

manual levity into Word_Lemmas


# 322f1023 18-Apr-2016 Gerwin Klein <gerwin.klein@nicta.com.au>

word_lib: adjust theory dependencies


# 445efb7c 18-Apr-2016 Gerwin Klein <gerwin.klein@nicta.com.au>

lib: closure for Word_Lib and own session


# 1359602f 17-Apr-2016 Gerwin Klein <gerwin.klein@nicta.com.au>

word_lib: AFP naming conventions