law avf

lawful-bytes@0.1.1.0 · proof_fast_append.bend:837

import lawful-bytes@0.1.1.0/proof_fast_append.bend as ProofFastAppend
import Base
import lawful-bytes@0.1.1.0/proof_core.bend as C
import lawful-arrays@0.1.0.0/defs.bend as A
import lawful-arrays@0.1.0.0/proof_tree.bend as P

837# The last word, when fewer than 4 bytes are left.
838law avf:
839  for +k1: Nat
840  for +ts: P.Tree<U32>
841  for +e: Nat
842  for +td: P.Tree<U32>
843  for +d: Nat
844  for +p: U32
845  for +lo: U32
846  for +si: U32
847  for +di: U32
848  for +sh: Nat
849  for +l1: Nat
850  for +qn: Nat
851  for +r: Nat
852  for +o: Nat
853  for +np: Nat
854  for +v1: List<&2, U32>
855  for +hbq: {Nat.is_le(Nat.add(o, 4n), np) == False{} : Bool}
856  for +hfs: {A.full(U32, P.fromT(U32, ts), e) == True{} : Bool}
857  for +hes: {Nat.is_le(e, 29n) == True{} : Bool}
858  for +hfd: {A.full(U32, P.fromT(U32, td), d) == True{} : Bool}
859  for +hdd: {Nat.is_le(d, 29n) == True{} : Bool}
860  for +hdi: {Nat.mul(U32.to_nat(di), 4n) == Nat.add(l1, o) : Nat}
861  for +hsi: {Nat.add(Nat.mul(U32.to_nat(si), 4n), r) == Nat.add(qn, o) : Nat}
862  for +hp: {U32.to_nat(p) == Nat.add(U32.to_nat(si), 1n) : Nat}
863  for +hlo: {lo == C.WD(ts, si) : U32}
864  for +hsh: {sh == Nat.mul(8n, r) : Nat}
865  for +hr: {Nat.is_lt(r, 4n) == True{} : Bool}
866  for +hq: {Nat.is_le(Nat.add(qn, np), Nat.mul(4n, Nat.pow(2n, e))) == True{} : Bool}
867  for +hl: {Nat.is_le(Nat.add(l1, np), Nat.mul(4n, Nat.pow(2n, d))) == True{} : Bool}
868  for +hon: {Nat.is_le(o, np) == True{} : Bool}
869  for +hc1: {Nat.is_le(np, Nat.add(o, Nat.mul(1n+k1, 4n))) == True{} : Bool}
870  for +hc2: {Nat.is_lt(Nat.add(o, Nat.mul(1n+k1, 4n)), Nat.add(np, 4n)) == True{} : Bool}
871  for +hinv: {List.take(&2, U32, US(td), Nat.add(l1, o)) == List.append(&2, U32, v1, List.take(&2, U32, List.drop(&2, U32, US(ts), qn), o)) : List<&2, U32>}
872  {List.take(&2, U32, US(AWT(1n+k1, ts, p, lo, td, si, di, sh)), Nat.add(l1, np)) == List.append(&2, U32, v1, List.take(&2, U32, List.drop(&2, U32, US(ts), qn), np)) : List<&2, U32>}

Uses (39)

Used by (1)