[Imprint]
[Data Privacy Statement]
[E-Mail]
View
long theorem info
. View
the proof
. Back to
main index
. View
the specification
. View
theorem base summary
, View
theorem base listing
, the
used properties by spec
, the
dependency list
, the
symbol table
,
Theorem prepost-read-log
ebm-vol-inv(avol), sb.log < # avol, avol[sb.log].mapped?, is-encoded(log0, avol[sb.log].data) ⊦ ⟪persistence_io_read_log#(sb, EB_PAGE_SIZE, LEB_SIZE, avol; logoff; log, err)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → log = log0))
Type: A user defined theorem
Validity: The proof is valid.
Features:
Comment:
Used by:
inv-recover
,
Used by units in proved state:
Proof exists?: Yes
View
the proof
Infos about the proof
Proved?: Yes
Interactions: 25
Proof steps: 116
Used lemmas:
nat-stuff1
,
read-log
,
Used spec theorems:
array-copy
/buffer/
subarray-elim
encoding-log
/
is-encoded-emptypage-middle
encoding-page-size-nonempty
/encoding-ref-node/
decode-contract
encoding-log
/
is-encoded-app
array-splice
/buffer/
array-split2
array-splice
/buffer/
subarray-append-elim-left
array-splice
/buffer/
emparray-at
align
/
is-aligned-intro
array-splice
/buffer/
copy2append
array
/buffer/
Extension
array-splice
/buffer/
append-at
align
/
between-is-aligned
Used simplifier rules:
superblock
/
elim
array
/buffer/
Size-mkarray
align
/
is-aligned-zero
encoding-log
/
is-encoded-base
eraseblock
/
lebsize-neq-zero
nat
/
ls-01
eraseblock
/
isempty-empbuf
list
/nat-list-set/
Last
nat
/
sub-ls
aleb
/
aleb-not-mapped
aleb
/
disj
array-copy
/buffer/
copy-exact
array-splice
/buffer/
append-zero-right
array-splice
/buffer/
append-zero-left
nat
/
sub-base
array-copy
/buffer/
subarray-zero
nat-basic
/
l-08
nat-basic
/
eq-02
eraseblock
/
empbuf-eq-emptypage
error-class
/
esuccess
nat-basic
/
l-02
nat
/
elim-sub
array-copy
/buffer/
subarray-copy-elim-exact
array-copy
/buffer/
size-copy
ref-node
/
elim
encoding-log
/
is-encoded-one
nat-mult
/
two-one-01
nat-mult
/
two-zero-01
nat-mult
/
mult-c
nat-mult
/
mult-a
nat-mult
/
one
nat-mult
/
numeral-30
nat-mult
/
two-02
array-splice
/buffer/
subarray-append-shift-right-simp-0
nat-basic
/
l-05
array-splice
/buffer/
subarray-append-left
array-splice
/buffer/
subarray-append-elim-left0-simp
nat
/
lep
array-splice
/buffer/
append-len
array-splice
/buffer/
subarray-elim-right
nat
/
le-ls-simp
encoding-page-size-nonempty
/encoding-ref-node/
is-encoded-unique
align
/
is-aligned-ls-eq-zero
nat
/
lels-03
align
/
between-is-aligned
eraseblock
/
emptypage-at
array-copy
/buffer/
subarray-at
eraseblock
/
emptypage-size
array-copy
/buffer/
size-subarray
nat
/
fle
nat
/
let
nat
/
ls-le-simp
nat-basic
/
l-06
encoding-log
/
is-encoded-pagealigned
nat-basic
/
nls-fst
oelem
/nat-set/
sls
nat
/
add-01
nat-basic
/
eqs
encoding-page-size-nonempty
/encoding-ref-node/
is-encoded-size
array-splice
/buffer/
emparray-at
array-splice
/buffer/
subarray-append-elim-left
array-splice
/buffer/
emparray-len
nat
/
lep-02
array-splice
/buffer/
copy-append
array-splice
/buffer/
append-a
align
/
is-aligned-same
align
/
is-aligned-add
nat
/
fle-01
nat-basic
/
one-03
error-class
/
enoent
nat
/
zero
nat-basic
/
ls-02
error-class
/
not-esuccess
oelem
/nat-set/
irreflexivity
nat
/
ge
nat
/
lez
array-splice
/buffer/
range-eq-0
error
/
disj-91
error-class
/
ecommit
nat-basic
/
one
nat-basic
/
succ
nat-basic
/
l
eraseblock
/
page-size-plus-eq-0
oelem
/nat-set/
transitivity
nat-basic
/
lf
nat-basic
/
lf-02
nat-basic
/
f
nat
/
le-def
nat
/
ler
aleb
/
test-02
nat-basic
/
l-01
nat-basic
/
lf-01
nat-basic
/
c
nat-basic
/
a
nat-basic
/
add-base
eraseblock
/
lebsize-page-size-is-aligned
encoding-elem-alignment
/encoding-superblock/
alignment-not-zero
superblock
/
sel-09
aleb
/
ex
nat
/
lels
nat
/
anti
aleb
/
inj
error
/
disj-33
aleb
/
sel
nat
/
lels-02
ebm-vol-inv
/
ebm-vol-inv-lebsize
array-copy
/buffer/
subarray-elim
encoding-log
/
is-encoded-unique