law sv_x
lawful-bytes@0.1.1.0 · proof_shift.bend:352
import lawful-bytes@0.1.1.0/proof_shift.bend as ProofShift
import Base
import lawful-bytes@0.1.1.0/defs.bend as D
import lawful-bytes@0.1.1.0/proof_core.bend as C
import lawful-arrays@0.1.0.0/proof_tree.bend as P
352
353law sv_x:
354 for +len: U32
355 for +t: P.Tree<U32>
356 for +d: Nat
357 for +k: U32
358 for +tb: P.Tree<U32>
359 for +j: U32
360 for +p: U32
361 for +h0: {D.ok(C.BT(len, t), d) == True{} : Bool}
362 for +hb: {D.ok(C.BT(len, tb), d) == True{} : Bool}
363 for +hp: {U32.to_nat(p) == Nat.add(U32.to_nat(j), U32.to_nat(k)) : Nat}
364 for +hv: {D.view(C.BT(len, tb)) == SV(D.view(C.BT(len, t)), U32.to_nat(k), U32.to_nat(j)) : List<&2, U32>}
365 for +hlt: {Nat.is_lt(Nat.add(U32.to_nat(j), U32.to_nat(k)), U32.to_nat(len)) == True{} : Bool}
366 {List.get(&2, U32, List.drop(&2, U32, D.view(C.BT(len, t)), U32.to_nat(k)), U32.to_nat(j)) == Some{C.AT(len, tb, p)} : Maybe<&2, U32>}