{ es:EO
    [T:Type]
      i:Id
        [P:T  ]. [Q:E  T  ].
          ((x:T. Dec(P[x]))
           (L:T List
                (xL.P[x]  (e:E. Q[e;x]))
                 e'@i.True supposing (xL. P[x])
                 e'@i.(xL.P[x]  (e:E. (e loc e'   Q[e;x]))) 
                supposing (xL.e:E. (Q[e;x]  (loc(e) = i))))) }

{ Proof }



Definitions occuring in Statement :  existse-at: e@i.P[e],  es-le: e loc e' ,  es-loc: loc(e),  es-E: E,  event_ordering: EO,  Id: Id,  decidable: Dec(P),  uimplies: b supposing a,  uall: [x:A]. B[x],  prop: ,  so_apply: x[s1;s2],  so_apply: x[s],  all: x:A. B[x],  exists: x:A. B[x],  not: A,  implies: P  Q,  and: P  Q,  true: True,  function: x:A  B[x],  list: type List,  universe: Type,  equal: s = t,  l_exists: (xL. P[x]),  l_all: (xL.P[x])
Definitions :  guard: {T},  rev_implies: P  Q,  iff: P  Q,  tl: tl(l),  hd: hd(l),  cons: [car / cdr],  pair: <a, b>,  bool: ,  top: Top,  select: l[i],  natural_number: $n,  label: ...$L... t,  int: ,  length: ||as||,  void: Void,  cand: A c B,  nat: ,  false: False,  limited-type: LimitedType,  set: {x:A| B[x]} ,  strong-subtype: strong-subtype(A;B),  le: A  B,  ge: i  j ,  less_than: a < b,  uiff: uiff(P;Q),  union: left + right,  or: P  Q,  eq_atom: x =a y,  eq_atom: eq_atom$n(x;y),  infix_ap: x f y,  atom: Atom$n,  dep-isect: Error :dep-isect,  record+: record+,  subtype_rel: A r B,  nil: [],  axiom: Ax,  es-loc: loc(e),  l_member: (x  l),  lambda: x.A[x],  record-select: r.x,  member: t  T,  event_ordering: EO,  universe: Type,  prop: ,  decidable: Dec(P),  list: type List,  Id: Id,  equal: s = t,  uall: [x:A]. B[x],  all: x:A. B[x],  implies: P  Q,  function: x:A  B[x],  exists: x:A. B[x],  and: P  Q,  product: x:A  B[x],  so_apply: x[s1;s2],  es-le: e loc e' ,  es-E: E,  uimplies: b supposing a,  isect: x:A. B[x],  existse-at: e@i.P[e],  true: True,  not: A,  l_exists: (xL. P[x]),  so_lambda: x.t[x],  so_apply: x[s],  apply: f a,  l_all: (xL.P[x]),  CollapseTHEN: Error :CollapseTHEN,  RepeatFor: Error :RepeatFor,  CollapseTHENM: Error :CollapseTHENM,  CollapseTHENA: Error :CollapseTHENA,  Try: Error :Try,  Repeat: Error :Repeat,  MaAuto: Error :MaAuto,  D: Error :D,  THENM: Error :THENM,  Complete: Error :Complete,  tactic: Error :tactic,  sqequal: s ~ t,  p-outcome: Outcome,  add: n + m,  lelt: i  j < k,  real: ,  rationals: ,  subtype: S  T,  int_seg: {i..j},  es-locl: (e <loc e'),  trans: Trans(T;x,y.E[x; y]),  assert: b
Lemmas :  not_functionality_wrt_iff,  l_exists_cons,  es-le-trans,  es-locl_wf,  es-le-total,  le_wf,  member_wf,  nat_wf,  select_member,  length_wf1,  non_neg_length,  l_all_wf,  es-E_wf,  es-le_wf,  Id_wf,  uall_wf,  decidable_wf,  not_wf,  l_exists_wf,  existse-at_wf,  true_wf,  event_ordering_wf,  l_member_wf,  es-loc_wf,  l_all_wf2,  false_wf,  length_wf_nat,  length_nil,  top_wf,  l_all_nil,  cons_member

\mforall{}es:EO
    \mforall{}[T:Type]
        \mforall{}i:Id
            \mforall{}[P:T  {}\mrightarrow{}  \mBbbP{}].  \mforall{}[Q:E  {}\mrightarrow{}  T  {}\mrightarrow{}  \mBbbP{}].
                ((\mforall{}x:T.  Dec(P[x]))
                {}\mRightarrow{}  (\mforall{}L:T  List
                            (\mforall{}x\mmember{}L.P[x]  {}\mRightarrow{}  (\mexists{}e:E.  Q[e;x]))
                            {}\mRightarrow{}  \mexists{}e'@i.True  supposing  \mneg{}(\mexists{}x\mmember{}L.  P[x])
                            {}\mRightarrow{}  \mexists{}e'@i.(\mforall{}x\mmember{}L.P[x]  {}\mRightarrow{}  (\mexists{}e:E.  (e  \mleq{}loc  e'    \mwedge{}  Q[e;x]))) 
                            supposing  (\mforall{}x\mmember{}L.\mforall{}e:E.  (Q[e;x]  {}\mRightarrow{}  (loc(e)  =  i)))))


Date html generated: 2011_08_16-AM-10_51_36
Last ObjectModification: 2011_06_18-AM-09_26_28

Home Index