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
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>}