Nuprl Lemma : int-decr-map-update-prop

[Value:Type]. ∀[m:int-decr-map-type(Value)]. ∀[k1,k2:ℤ]. ∀[v:Value].
  (int-decr-map-find(k1;int-decr-map-update(k2;v;m))
  if (k1 =z k2) then inl else int-decr-map-find(k1;m) fi 
  ∈ (Value?))


Proof




Definitions occuring in Statement :  int-decr-map-update: int-decr-map-update(k;v;m) int-decr-map-find: int-decr-map-find(k;m) int-decr-map-type: int-decr-map-type(Value) ifthenelse: if then else fi  eq_int: (i =z j) uall: [x:A]. B[x] unit: Unit inl: inl x union: left right int: universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T int-decr-map-type: int-decr-map-type(Value) all: x:A. B[x] nat: implies:  Q false: False ge: i ≥  uimplies: supposing a satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] not: ¬A top: Top and: P ∧ Q prop: so_lambda: λ2y.t[x; y] pi1: fst(t) so_apply: x[s1;s2] gt: i > j subtype_rel: A ⊆B or: P ∨ Q cons: [a b] colength: colength(L) guard: {T} decidable: Dec(P) nil: [] it: so_lambda: λ2x.t[x] so_apply: x[s] sq_type: SQType(T) less_than: a < b squash: T less_than': less_than'(a;b) int-decr-map-find: int-decr-map-find(k;m) int-decr-map-update: int-decr-map-update(k;v;m) find-combine: find-combine(cmp;l) list_ind: list_ind insert-combine: insert-combine(cmp;f;x;l) so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] has-value: (a)↓ ifthenelse: if then else fi  btrue: tt pi2: snd(t) uiff: uiff(P;Q) bfalse: ff nequal: a ≠ b ∈  int-minus-comparison: int-minus-comparison(f) iff: ⇐⇒ Q rev_implies:  Q

Latex:
\mforall{}[Value:Type].  \mforall{}[m:int-decr-map-type(Value)].  \mforall{}[k1,k2:\mBbbZ{}].  \mforall{}[v:Value].
    (int-decr-map-find(k1;int-decr-map-update(k2;v;m))
    =  if  (k1  =\msubz{}  k2)  then  inl  v  else  int-decr-map-find(k1;m)  fi  )



Date html generated: 2016_05_17-PM-01_49_37
Last ObjectModification: 2016_01_17-AM-11_37_57

Theory : datatype-signatures


Home Index