~/bend-docscommunity

proofs/containers/bitlist/steps.bend checks

raw source on the hub · import bend-collections-laws-containers@1.0.0.0/proofs/containers/bitlist/steps.bend as Steps

26 imports
import Base
import ../../lib/logic.bend as L
import ../../lib/nat.bend as N
import ../../lib/list.bend as LL
import ../../../spec/lib/common.bend as SC
import ../../lib/arith.bend as AT
import ../../../src/containers/bitset.bend as B
import ../../../src/containers/bitlist.bend as BLI
import ../../../src/containers/types/bitlist.bend as E
import ../../../src/containers/dynamic_array.bend as D
import ../../../src/containers/types/dynamic_array.bend as DE
import ../../../spec/containers/dynamic_array.bend as DS
import ../dynamic_array/state.bend as DAS
import ../dynamic_array/steps.bend as DSP
import ../dynamic_array/trace.bend as DTR
import ../bitset/lists.bend as BL
import ../bitset/listx.bend as LX
import ../bitset/model.bend as MD
import ../bitset/walk.bend as WK
import ../bitset/state.bend as ST
import ../bitset/steps.bend as BSS
import ../../../spec/containers/bitlist.bend as S
import ./da.bend as DI
import ./bits.bend as BT
import ./state.bend as SS
import ./loops.bend as LP

Definitions

def StepOK source · line 35 · raw

@sh:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.Sh -> @op:0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Op -> Type

def len_flat source · line 40 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w))) == Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n) : Nat}

def n_le_flat source · line 43 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> {Nat.is_le(n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)))) == True{} : Bool}

def wq source · line 46 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @+hi:{Nat.is_lt(i, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)))) == True{} : Bool} -> {Nat.is_lt(0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w))) == True{} : Bool}

def in_flat source · line 49 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @+hi:{Nat.is_lt(i, n) == True{} : Bool} -> {Nat.is_lt(i, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)))) == True{} : Bool}

def length_ok source · line 54 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Length{})

def limit_ok source · line 59 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Limit{})

def get_real source · line 65 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @+hi:{Nat.is_lt(i, n) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.get_word(i, l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/dynamic_array.get(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i))) == (0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.real(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.gsh(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i))}), Done{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_get(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.bitix(i))}) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.Bitlist, Result<&2, &2, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Error, Bool>)}

def get_model source · line 71 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.model(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.gsh(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i))}) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.M{l, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), n)} : 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.Model}

def get_good source · line 74 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.gsh(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i))}) == True{} : Bool}

def get_bit source · line 77 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @+hi:{Nat.is_lt(i, n) == True{} : Bool} -> {Some{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_get(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.bitix(i))} == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.nth(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), n), i) : Maybe<&2, Bool>}

def get_case source · line 81 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @b:Bool -> @+eb:{Nat.is_lt(i, n) == b : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Get{i})

def q_in2 source · line 103 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @+hi:{Nat.is_lt(i, n) == True{} : Bool} -> {Nat.is_lt(0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.gsh(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i))))) == True{} : Bool}

def ws2 source · line 106 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @+v:Bool -> @+hi:{Nat.is_lt(i, n) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ssh(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.gsh(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.get_good(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.bitix(i)))) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/model.put_walk(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), i, v) : List<&2, U32>}

def lim2 source · line 111 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @+v:Bool -> @+hi:{Nat.is_lt(i, n) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ssh(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.gsh(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.get_good(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.bitix(i)))) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w) : Nat}

def assign_real source · line 114 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @+v:Bool -> @+hi:{Nat.is_lt(i, n) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.assign_word(i, v, l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/dynamic_array.get(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i))) == (0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.real(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ssh(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.gsh(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.get_good(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.bitix(i)))}), Done{Unit{}}) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.Bitlist, Result<&2, &2, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Error, Unit>)}

def assign_model source · line 122 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @+v:Bool -> @+hi:{Nat.is_lt(i, n) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.model(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ssh(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.gsh(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.get_good(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.bitix(i)))}) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.M{l, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.update(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), n), i, v)} : 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.Model}

def assign_good source · line 127 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @+v:Bool -> @+hi:{Nat.is_lt(i, n) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ssh(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.gsh(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.get_good(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(i)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.bitix(i)))}) == True{} : Bool}

def assign_case source · line 130 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+i:Nat -> @+v:Bool -> @b:Bool -> @+eb:{Nat.is_lt(i, n) == b : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Assign{i, v})

def sp_push_t source · line 152 · raw

@+l:Maybe<&2, Nat> -> @+c:Nat -> @+xs:List<&2, Bool> -> @+v:Bool -> @+n:Nat -> @+hlen:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(Bool, xs) == n : Nat} -> @+hl:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.below(l, n) == True{} : Bool} -> @+hn:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.pow2(c), 32n)) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.step_parts(l, c, xs, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Push{v}) == (0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.M{l, c, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.snoc(Bool, xs, v)}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.OUnit{Done{Unit{}}}) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.Model, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Obs)}

def sp_push_fl source · line 158 · raw

@+l:Maybe<&2, Nat> -> @+c:Nat -> @+xs:List<&2, Bool> -> @+v:Bool -> @+n:Nat -> @+hlen:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(Bool, xs) == n : Nat} -> @+hl:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.below(l, n) == False{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.step_parts(l, c, xs, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Push{v}) == (0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.M{l, c, xs}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.OUnit{Fail{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Full{}}}) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.Model, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Obs)}

def sp_push_fc source · line 163 · raw

@+l:Maybe<&2, Nat> -> @+c:Nat -> @+xs:List<&2, Bool> -> @+v:Bool -> @+n:Nat -> @+hlen:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(Bool, xs) == n : Nat} -> @+hl:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.below(l, n) == True{} : Bool} -> @+hn:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.pow2(c), 32n)) == False{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.step_parts(l, c, xs, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Push{v}) == (0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.M{l, c, xs}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.OUnit{Fail{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Full{}}}) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.Model, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Obs)}

def push_len source · line 171 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+v:Bool -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.push_room(l, n, v, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/dynamic_array.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, w))) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.push_where(Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)), l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw)), v) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.Bitlist, Result<&2, &2, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Error, Unit>)}

the length read of the word array

def room_in source · line 176 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+d:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)) == True{} : Bool} -> {Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.pow2(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w)), 32n)) == True{} : Bool}

def in_f source · line 179 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+d:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)) == True{} : Bool} -> {Nat.is_lt(n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)))) == True{} : Bool}

def g_inc source · line 182 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+d:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, 1n+n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw)}) == True{} : Bool}

def m_inc source · line 185 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.model(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, 1n+n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw)}) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.M{l, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 1n+n)} : 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.Model}

def take_inc source · line 190 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+d:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 1n+n) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.snoc(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), n), False{}) : List<&2, Bool>}

the zero bit below the new length: the stored bits spell the list plus it

def set_last source · line 193 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+d:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.M{l, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.update(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw))), 1n+n), n, True{})} == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.M{l, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.snoc(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), n), True{})} : 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.Model}

def push_in_v source · line 201 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+v:Bool -> @+d:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)) == True{} : Bool} -> @+hb:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.below(l, n) == True{} : Bool} -> @+hs:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.step_parts(l, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), n), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Push{v}) == (0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.M{l, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.snoc(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), n), v)}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.OUnit{Done{Unit{}}}) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.Model, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Obs)} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Push{v})

def push_in_case source · line 225 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+v:Bool -> @+d:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)) == True{} : Bool} -> @+hb:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.below(l, n) == True{} : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Push{v})

def n_eq source · line 232 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+d:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)) == False{} : Bool} -> {n == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w))) : Nat}

def n_eq32 source · line 235 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+d:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)) == False{} : Bool} -> {n == Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n) : Nat}

def room_lsh source · line 238 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @r:Bool -> @+er:{Nat.is_lt(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.pow2(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w))) == r : Bool} -> {Nat.is_lt(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw))), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.pow2(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw)))) == r : Bool}

def ws_new source · line 243 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+v:Bool -> @+hr:{Nat.is_lt(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.pow2(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w))) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.psh(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.len_good(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0, 0n))) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.snoc(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0, 0n)) : List<&2, U32>}

def lim_new source · line 248 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+v:Bool -> @+hr:{Nat.is_lt(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.pow2(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w))) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.psh(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.len_good(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0, 0n))) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w) : Nat}

def ws_full source · line 251 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+v:Bool -> @+hr:{Nat.is_lt(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.pow2(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w))) == False{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.psh(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.len_good(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0, 0n))) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w) : List<&2, U32>}

def lim_full source · line 254 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+v:Bool -> @+hr:{Nat.is_lt(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.pow2(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w))) == False{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.psh(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.len_good(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0, 0n))) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w) : Nat}

def nlt_mul32 source · line 257 · raw

@+a:Nat -> @+b:Nat -> @+h:{Nat.is_lt(a, b) == False{} : Bool} -> {Nat.is_lt(Nat.mul(a, 32n), Nat.mul(b, 32n)) == False{} : Bool}

def new_real source · line 260 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+v:Bool -> @r:Bool -> @+er:{Nat.is_lt(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.pow2(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w))) == r : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.push_new(l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/dynamic_array.push(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0, 0n))) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.push_new(l, n, (0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.psh(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.len_good(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0, 0n))), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ununit(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/trace.so_obs(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/dynamic_array.Push{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0, 0n)}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/steps.step_ok(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/dynamic_array.Push{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_put(v, 0, 0n)}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.len_good(w, gw)))))) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.Bitlist, Result<&2, &2, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Error, Unit>)}

def push_new_case source · line 264 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+v:Bool -> @+d:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)) == False{} : Bool} -> @+hb:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.below(l, n) == True{} : Bool} -> @r:Bool -> @+er:{Nat.is_lt(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.pow2(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w))) == r : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Push{v})

def push_room_case source · line 296 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+v:Bool -> @+hb:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.below(l, n) == True{} : Bool} -> @d:Bool -> @+ed:{Nat.is_lt(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)) == d : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Push{v})

def push_case source · line 303 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+v:Bool -> @c:Bool -> @+ec:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.below(l, n) == c : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Push{v})

def pop_read source · line 317 · raw

@+l:Maybe<&2, Nat> -> @+m:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, 1n+m, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.pop_at(l, 1n+m, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, w)) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.pop_bit(l, m, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.gsh(w, gw, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(m))), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(m)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_get(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(m)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.bitix(m))) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.Bitlist, Result<&2, &2, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Error, Bool>)}

def last_nth source · line 324 · raw

@+l:Maybe<&2, Nat> -> @+m:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, 1n+m, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.nth(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), m) == Some{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_get(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(m)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.bitix(m))} : Maybe<&2, Bool>}

the last stored bit of the list is bit m of F

def last_is source · line 329 · raw

@+l:Maybe<&2, Nat> -> @+m:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, 1n+m, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @b:Bool -> @+eb:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_get(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(m)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.bitix(m)) == b : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.nth(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), m) == Some{b} : Maybe<&2, Bool>}

def pop_bit_case source · line 332 · raw

@+l:Maybe<&2, Nat> -> @+m:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, 1n+m, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @b:Bool -> @+eb:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.word_get(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/walk.nthw(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.wordix(m)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitset.bitix(m)) == b : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, 1n+m, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Pop{})

def pop_case source · line 362 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Pop{})

def clear_ok source · line 374 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Clear{})

def cw_all source · line 385 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/model.count_words(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.drop(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0n), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)))) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/containers/bitlist.count(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), n)) : Nat}

def count_read source · line 391 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.count_len(l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/dynamic_array.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, w))) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.count_fin(l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.count_go(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), (0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw)), 0n), 0n)) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.Bitlist, Nat)}

def count_done2 source · line 396 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+s2:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @e2:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.count_go(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), (0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw)), 0n), 0n) == (0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, s2), Nat.add(0n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/model.count_words(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.drop(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0n), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)))))) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/dynamic_array.DynArray<&2, U32>, Nat)} -> @+g2:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, s2) == True{} : Bool} -> @+wx:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(s2) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w) : List<&2, U32>} -> @+f2:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(s2) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w) : Nat} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Count{})

def count_done source · line 406 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @ih:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/loops.CountOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw), 0n, 0n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w)) -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Count{})

def count_ok source · line 411 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Count{})

def tk0 source · line 417 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.drop(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0n)), Nat.sub(n, 0n)) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), n) : List<&2, Bool>}

def tkk source · line 422 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> {[] == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.drop(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)))), Nat.sub(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n))) : List<&2, Bool>}

def list_read source · line 426 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> {0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.to_list_len(l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/dynamic_array.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, w))) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.to_list_fin(l, n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.bits_go(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), (0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.drop(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)))), Nat.sub(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)))), n)) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.Bitlist, List<&2, Bool>)}

def list_done2 source · line 432 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+s2:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @e2:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/bitlist.bits_go(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), (0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.drop(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)))), Nat.sub(n, Nat.mul(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 32n)))), n) == (0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.real(U32, s2), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.take(Bool, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitset/state.flat(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.drop(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0n)), Nat.sub(n, 0n))) : Pair(0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/dynamic_array.DynArray<&2, U32>, List<&2, Bool>)} -> @+g2:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, s2) == True{} : Bool} -> @+wx:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(s2) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w) : List<&2, U32>} -> @+f2:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(s2) == 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w) : Nat} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.ToList{})

def list_done source · line 442 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @ih:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/loops.BitsOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/spec/lib/common.length(U32, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w)), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lsh(w, gw), n, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.ws(w), 0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/da.lim(w)) -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.ToList{})

def tolist_ok source · line 447 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, 0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.ToList{})

def step_at source · line 452 · raw

@+l:Maybe<&2, Nat> -> @+n:Nat -> @+w:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.Shadow<U32> -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}) == True{} : Bool} -> @+gw:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/dynamic_array/state.good(U32, w) == True{} : Bool} -> @+op:0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Op -> StepOK(0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.BSh{l, n, w}, op)

def step_ok source · line 473 · raw

@+sh:0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.Sh -> @+op:0x5c489f5d9646d7cc9aa3dd8137e9dc07/src/containers/types/bitlist.Op -> @+g:{0x5c489f5d9646d7cc9aa3dd8137e9dc07/proofs/containers/bitlist/state.good(sh) == True{} : Bool} -> StepOK(sh, op)