{ [es:EO]. [e:E]. [f:{e':E| e' loc e }   (Top + Top)].
    (es-search-back(es;x.f[x];e) ~ if isl(f[e]) then f[e]
    if first(e) then inr  
    else es-search-back(es;x.f[x];pred(e))
    fi ) }

{ Proof }



Definitions occuring in Statement :  es-search-back: es-search-back(es;x.f[x];e),  es-le: e loc e' ,  es-pred: pred(e),  es-first: first(e),  es-E: E,  event_ordering: EO,  isl: isl(x),  ifthenelse: if b then t else f fi ,  it: ,  uall: [x:A]. B[x],  top: Top,  so_apply: x[s],  set: {x:A| B[x]} ,  function: x:A  B[x],  inr: inr x ,  union: left + right,  sqequal: s ~ t
Definitions :  int: ,  inr: inr x ,  unit: Unit,  es-first: first(e),  exists: x:A. B[x],  void: Void,  sq_type: SQType(T),  so_lambda: x.t[x],  es-pred?: es-pred?(es;e),  decide: case b of inl(x) => s[x] | inr(y) => t[y],  guard: {T},  fpf: a:A fp-> B[a],  strong-subtype: strong-subtype(A;B),  assert: b,  eq_atom: x =a y,  eq_atom: eq_atom$n(x;y),  record-select: r.x,  infix_ap: x f y,  dep-isect: Error :dep-isect,  record+: record+,  le: A  B,  ge: i  j ,  not: A,  less_than: a < b,  uimplies: b supposing a,  product: x:A  B[x],  and: P  Q,  uiff: uiff(P;Q),  subtype_rel: A r B,  es-locl: (e <loc e'),  or: P  Q,  implies: P  Q,  apply: f a,  so_apply: x[s],  es-pred: pred(e),  es-search-back: es-search-back(es;x.f[x];e),  universe: Type,  prop: ,  all: x:A. B[x],  equal: s = t,  event_ordering: EO,  sqequal: s ~ t,  union: left + right,  top: Top,  set: {x:A| B[x]} ,  es-le: e loc e' ,  es-E: E,  function: x:A  B[x],  member: t  T,  uall: [x:A]. B[x],  isect: x:A. B[x],  Auto: Error :Auto,  CollapseTHEN: Error :CollapseTHEN,  Try: Error :Try,  D: Error :D,  Complete: Error :Complete,  MaAuto: Error :MaAuto,  CollapseTHENA: Error :CollapseTHENA,  Unfold: Error :Unfold,  tactic: Error :tactic
Lemmas :  es-le_wf,  es-E_wf,  member_wf,  es-locl_wf,  top_wf,  subtype_rel_wf,  event_ordering_wf,  es-pred?_wf,  es-search-back_wf,  subtype_base_sq,  union_subtype_base,  isect_subtype_base,  unit_wf

\mforall{}[es:EO].  \mforall{}[e:E].  \mforall{}[f:\{e':E|  e'  \mleq{}loc  e  \}    {}\mrightarrow{}  (Top  +  Top)].
    (es-search-back(es;x.f[x];e)  \msim{}  if  isl(f[e])  then  f[e]
    if  first(e)  then  inr  \mcdot{} 
    else  es-search-back(es;x.f[x];pred(e))
    fi  )


Date html generated: 2011_08_16-AM-10_36_54
Last ObjectModification: 2010_11_24-AM-11_39_22

Home Index