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)