PROOF.tl.log: def of bend-osdev-gf@0.1.1.0 Import: import bend-osdev-gf@0.1.1.0/PROOF.bend as PROOF Lines 7881-7885 of bend-osdev-gf@0.1.1.0/PROOF.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-gf@0.1.1.0/PROOF.bend&start_line=7881&end_line=7885 import Base import bend-osdev-gf@0.1.1.0/gf.bend as G import bend-osdev-gf@0.1.1.0/tables.bend as T import bend-osdev-array@0.1.0.1/array.bend as A import bend-osdev-array@0.1.0.1/LAWS.bend as AL import bend-osdev-gf@0.1.1.0/proof_tab.bend as GT # a logarithm through the table def tl.log(+f: G.Gf8Field, +l: List<&2, U32>, +a: U32, +hl: {List.length(&2, U32, l) == A.Arrays.slots(8n) : Nat}, +hxa: {A.Arrays.nth(U32, l, A.Arrays.index(8n, G.Gf8.elt(a)), 0) == U32.from_nat(G.Gf8.log(f, a)) : U32}) -> {T.Gf8Tab.log(GT.gt.tab(f, l), a) == (GT.gt.tab(f, l), U32.from_nat(G.Gf8.log(f, a))) : T.Gf8Tab & U32}: %Equal.sym(Array & U32, Array.get(U32, A.Arrays.of_list(U32, 8n, l, 0), G.Gf8.elt(a)), (A.Arrays.of_list(U32, 8n, l, 0), A.Arrays.nth(U32, l, A.Arrays.index(8n, G.Gf8.elt(a)), 0)), AL.of_list_get(U32, 8n, l, 0, hl, GT.gt.hd8(), G.Gf8.elt(a))) : {T.gf8tab.log.fin(A.Arrays.of_list(U32, 9n, GT.gt.elist(510n, f, 0n), 0), _) == (GT.gt.tab(f, l), U32.from_nat(G.Gf8.log(f, a))) : T.Gf8Tab & U32} %Equal.sym(U32, A.Arrays.nth(U32, l, A.Arrays.index(8n, G.Gf8.elt(a)), 0), U32.from_nat(G.Gf8.log(f, a)), hxa) : {(T.Gf8Tab{A.Arrays.of_list(U32, 9n, GT.gt.elist(510n, f, 0n), 0), A.Arrays.of_list(U32, 8n, l, 0)}, _) == (GT.gt.tab(f, l), U32.from_nat(G.Gf8.log(f, a))) : T.Gf8Tab & U32} {==} Uses (24): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Array https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Array.get 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.length https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Pair https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Sigma https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.from_nat https://jend.leeeet.dev/definition.txt?path=bend-osdev-array@0.1.0.1/LAWS.bend&name=of_list_get https://jend.leeeet.dev/definition.txt?path=bend-osdev-array@0.1.0.1/array.bend&name=Arrays.index https://jend.leeeet.dev/definition.txt?path=bend-osdev-array@0.1.0.1/array.bend&name=Arrays.nth https://jend.leeeet.dev/definition.txt?path=bend-osdev-array@0.1.0.1/array.bend&name=Arrays.of_list https://jend.leeeet.dev/definition.txt?path=bend-osdev-array@0.1.0.1/array.bend&name=Arrays.slots https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/gf.bend&name=Gf8.elt https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/gf.bend&name=Gf8.log https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/gf.bend&name=Gf8Field https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/proof_tab.bend&name=gt.elist https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/proof_tab.bend&name=gt.hd8 https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/proof_tab.bend&name=gt.tab https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/tables.bend&name=Gf8Tab https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/tables.bend&name=Gf8Tab.log https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/tables.bend&name=gf8tab.log.fin