Nuprl Lemma : gammaFIM_unfold

g,h: List  . a: List.
  (gammaFIM(a;g;h) ~ if (||a|| = 0) then []
  if (g (gammaFIM(firstn(||a|| - 1;a);g;h) @ [last(a)]) = 0) then gammaFIM(firstn(||a|| - 1;a);g;h) @ [last(a)]
  else gammaFIM(firstn(||a|| - 1;a);g;h) @ [h gammaFIM(firstn(||a|| - 1;a);g;h)]
  fi )


Proof




Definitions occuring in Statement :  gammaFIM: gammaFIM(a;g;h) firstn: firstn(n;as) length: ||as|| append: as @ bs eq_int: (i = j) ifthenelse: if b then t else f fi  nat: all: x:A. B[x] apply: f a function: x:A  B[x] subtract: n - m natural_number: $n sqequal: s ~ t last: last(L)
Definitions :  all: x:A. B[x] exists: x:A. B[x] member: t  T ifthenelse: if b then t else f fi  gammaFIM: gammaFIM(a;g;h) nat: so_lambda: x.t[x] implies: P  Q btrue: tt bfalse: ff sq_type: SQType(T) uall: [x:A]. B[x] uimplies: b supposing a so_apply: x[s] bool: unit: Unit assert: b uiff: uiff(P;Q) and: P  Q bnot: b or: P  Q guard: {T} false: False prop: it:
Lemmas :  base_sq base_wf subtype_base_sq Error :list_wf,  nat_wf list_subtype_base set_subtype_base le_wf int_subtype_base Error :list_ind_reverse_unfold1,  Error :nil_wf,  eq_int_wf append_wf Error :cons_wf,  subtype_rel_set_simple bool_wf eqtt_to_assert assert_of_eq_int eqff_to_assert equal_wf bool_cases_sqequal bool_subtype_base Error :assert-bnot,  neg_assert_of_eq_int length_wf gammaFIM_wf firstn_wf subtype_rel_dep_function subtype_rel_weakening ext-eq_weakening last_wf Error :non_null_iff_length,  subtype_rel_list top_wf subtype_top non_neg_length length_wf_nat
\mforall{}g,h:\mBbbN{}  List  {}\mrightarrow{}  \mBbbN{}.  \mforall{}a:\mBbbN{}  List.
    (gammaFIM(a;g;h)  \msim{}  if  (||a||  =\msubz{}  0)  then  []
    if  (g  (gammaFIM(firstn(||a||  -  1;a);g;h)  @  [last(a)])  =\msubz{}  0)
        then  gammaFIM(firstn(||a||  -  1;a);g;h)  @  [last(a)]
    else  gammaFIM(firstn(||a||  -  1;a);g;h)  @  [h  gammaFIM(firstn(||a||  -  1;a);g;h)]
    fi  )


Date html generated: 2013_03_20-AM-10_33_05
Last ObjectModification: 2013_03_08-PM-11_32_12

Home Index