def wp.sub_split.go
bend-osdev-word64@0.1.1.0 · PROOF.bend:145
import bend-osdev-word64@0.1.1.0/PROOF.bend as PROOF
import Base
import bend-osdev-word64@0.1.1.0/word64.bend as W
import bend-osdev-word64@0.1.1.0/proof_value.bend as P
145def wp.sub_split.go(+ahw: Word(32n), +alw: Word(32n), +bhw: Word(32n), +blw: Word(32n), cb: Bool, e: {Cmp.is_lt(Word.cmp(32n, alw, blw)) == cb : Bool}) -> {W.W64.sub(W.W64{U32{ahw}, U32{alw}}, W.W64{U32{bhw}, U32{blw}}) == W.W64{U32{P.wv.subhi(32n, ahw, alw, bhw, blw)}, U32{Word.sub(32n, alw, blw)}} : W.W64}:
146 %Equal.sym(Bool, Cmp.is_lt(Word.cmp(32n, alw, blw)), cb, e) : {W.W64{U32.sub(U32{Word.sub(32n, ahw, bhw)}, W.W64.bit(_)), U32{Word.sub(32n, alw, blw)}} == W.W64{U32{Word.sub(32n, Word.sub(32n, ahw, bhw), P.wv.bitw(32n, _))}, U32{Word.sub(32n, alw, blw)}} : W.W64}
147 wp.sub_split.fin(ahw, alw, bhw, blw, cb)