{ [T:Id  Type]
    tab:secret-table(T). x:Atom1.
      n:||tab|| 
       ((n  ptr(tab))
        (st-atom(tab;n) = x)
        (outl(st-lookup(tab;x)) = <key(tab;n), data(tab;n)>)) 
      supposing isl(st-lookup(tab;x)) }

{ Proof }



Definitions occuring in Statement :  st-lookup: st-lookup(tab;x) st-data: data(tab;n) st-key: key(tab;n) st-atom: st-atom(tab;n) st-ptr: ptr(tab) st-length: ||tab||  secret-table: secret-table(T) data: data(T) Id: Id outl: outl(x) isl: isl(x) assert: b int_seg: {i..j} nat: uimplies: b supposing a uall: [x:A]. B[x] le: A  B all: x:A. B[x] exists: x:A. B[x] and: P  Q function: x:A  B[x] pair: <a, b> product: x:A  B[x] union: left + right natural_number: $n universe: Type equal: s = t atom: Atom$n
Definitions :  uall: [x:A]. B[x] all: x:A. B[x] uimplies: b supposing a st-lookup: st-lookup(tab;x) st-length: ||tab||  st-ptr: ptr(tab) st-atom: st-atom(tab;n) member: t  T implies: P  Q spreadn: spread3 pi1: fst(t) pi2: snd(t) int_seg: {i..j} bor: p q btrue: tt prop: and: P  Q ifthenelse: if b then t else f fi  bfalse: ff top: Top lelt: i  j < k subtype: S  T exists: x:A. B[x] assert: b true: True nat: so_lambda: x.t[x] or: P  Q isl: isl(x) outl: outl(x) false: False let: let st-key: key(tab;n) st-data: data(tab;n) squash: T not: A le: A  B secret-table: secret-table(T) bool: unit: Unit iff: P  Q guard: {T} sq_type: SQType(T) so_apply: x[s] it:
Lemmas :  assert_witness isl_wf nat_wf data_wf unit_wf st-lookup_wf assert_wf secret-table_wf Id_wf mu_wf le_int_wf bool_wf iff_weakening_uiff le_wf uiff_transitivity eqtt_to_assert assert_of_le_int bor_wf lt_int_wf btrue_wf bnot_wf eqff_to_assert assert_functionality_wrt_uiff bnot_of_le_int assert_of_lt_int eq_atom_wf1 pi1_wf_top bnot_of_lt_int mu-property subtype_base_sq set_subtype_base int_subtype_base decidable__assert decidable_wf false_wf band_wf true_wf assert_of_bor or_functionality_wrt_uiff bnot_thru_bor squash_wf assert_of_band and_functionality_wrt_uiff pi2_wf assert_of_eq_atom1 not_wf assert_of_bnot not_functionality_wrt_uiff

\mforall{}[T:Id  {}\mrightarrow{}  Type]
    \mforall{}tab:secret-table(T).  \mforall{}x:Atom1.
        \mexists{}n:\mBbbN{}||tab|| 
          ((n  \mleq{}  ptr(tab))  \mwedge{}  (st-atom(tab;n)  =  x)  \mwedge{}  (outl(st-lookup(tab;x))  =  <key(tab;n),  data(tab;n)>)) 
        supposing  \muparrow{}isl(st-lookup(tab;x))


Date html generated: 2011_08_16-AM-11_00_02
Last ObjectModification: 2011_06_18-AM-09_33_43

Home Index