def new_size

bendtorch-core@0.1.0.0 · src/storage/api.bend:704

import bendtorch-core@0.1.0.0/src/storage/api.bend as Api
import Base
import bendtorch-core@0.1.0.0/src/storage/model.bend as Model
import bendtorch-core@0.1.0.0/src/storage/main.bend as Storage
import bendtorch-core@0.1.0.0/src/storage/LAWS.bend as Laws
import bendtorch-core@0.1.0.0/src/storage/arith.bend as Arith

704def new_size(+n: Nat, +value: F32, allowed: Bool, +ops: List<&2, Laws.Op>, yes: {True{} == allowed : Bool},
705  +limit: {Nat.is_le(n, Model.capacity(20n)) == True{} : Bool}) ->
706  {Laws.size(Laws.replay(ops, Laws.created.of(Storage.new_checked(n, value, allowed)))) == n : Nat}:
707  match n:
708    case 0n:
709      replay_size_empty(ops)
710    case 1n+p:
711      match allowed:
712        case True{}:
713          meta_size(1n+p, value, Storage.depth_seek(20n, 1n+p, 0n, 1n, Nat.is_le(1n+p, 1n)), ops, seek(1n+p, limit, {==}))
714        case False{}:
715          Empty.absurd({Laws.size(Laws.replay(ops, Laws.created.of(Storage.new_checked(1n+p, value, False{})))) == 1n+p : Nat},
716            Arith.clash_true(yes))

Uses (17)

Used by (2)