ProofGrow.ginv: law of lawful-bytes@0.1.1.0 Import: import lawful-bytes@0.1.1.0/proof_grow.bend as ProofGrow Lines 379-394 of lawful-bytes@0.1.1.0/proof_grow.bend: https://jend.leeeet.dev/read.txt?path=lawful-bytes@0.1.1.0/proof_grow.bend&start_line=379&end_line=394 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 import lawful-arrays@0.1.0.0/proof_index.bend as I # Writing word i keeps the copied prefix and extends it by one word. law ginv: for +t: P.Tree for +td: P.Tree for +i: U32 for +d: Nat for +e: Nat for +hft: {A.full(U32, P.fromT(U32, t), d) == True{} : Bool} for +hfd: {A.full(U32, P.fromT(U32, td), e) == True{} : Bool} for +hd: {Nat.is_le(d, 29n) == True{} : Bool} for +he29: {Nat.is_le(e, 29n) == True{} : Bool} for +hjd: {Nat.is_lt(U32.to_nat(i), Nat.pow(2n, d)) == True{} : Bool} for +hje: {Nat.is_lt(U32.to_nat(i), Nat.pow(2n, e)) == True{} : Bool} for +ei1: {U32.to_nat((i + 1 : U32)) == Nat.add(U32.to_nat(i), 1n) : Nat} for +hinv: {List.take(&2, U32, C.WL(td), U32.to_nat(i)) == List.take(&2, U32, C.WL(t), U32.to_nat(i)) : List<&2, U32>} {List.take(&2, U32, C.WL(I.set_tree(U32, td, i, C.WD(t, i))), U32.to_nat((i + 1 : U32))) == List.take(&2, U32, C.WL(t), U32.to_nat((i + 1 : U32))) : List<&2, U32>} Uses (27): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List.append https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List.length https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List.set https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List.take https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.is_le https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.is_lt https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.pow https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.to_nat https://jend.leeeet.dev/definition.txt?path=lawful-arrays@0.1.0.0/defs.bend&name=full https://jend.leeeet.dev/definition.txt?path=lawful-arrays@0.1.0.0/proof_base.bend&name=subst https://jend.leeeet.dev/definition.txt?path=lawful-arrays@0.1.0.0/proof_index.bend&name=set_tree https://jend.leeeet.dev/definition.txt?path=lawful-arrays@0.1.0.0/proof_tree.bend&name=Tree https://jend.leeeet.dev/definition.txt?path=lawful-arrays@0.1.0.0/proof_tree.bend&name=fromT https://jend.leeeet.dev/definition.txt?path=lawful-arrays@0.1.0.0/proof_tree.bend&name=view_length https://jend.leeeet.dev/definition.txt?path=lawful-bytes@0.1.1.0/proof_core.bend&name=WD https://jend.leeeet.dev/definition.txt?path=lawful-bytes@0.1.1.0/proof_core.bend&name=WL https://jend.leeeet.dev/definition.txt?path=lawful-bytes@0.1.1.0/proof_core.bend&name=wd_get https://jend.leeeet.dev/definition.txt?path=lawful-bytes@0.1.1.0/proof_core.bend&name=wl_set https://jend.leeeet.dev/definition.txt?path=lawful-bytes@0.1.1.0/proof_grow.bend&name=take_succ_get https://jend.leeeet.dev/definition.txt?path=lawful-bytes@0.1.1.0/proof_seq.bend&name=take_set_succ