{ [A:Type]. [eq:EqDecider(A)]. [df:x:A fp-> Type]. [f:x:A fp-> df(x)?Top].
  [dg:x:A fp-> Type]. [g:x:A fp-> dg(x)?Top].
    (f  g  x:A fp-> df  dg(x)?Top) supposing 
       ((x:A. ((x  dom(g))  (x  dom(dg)))) and 
       (x:A. ((x  dom(f))  (x  dom(df)))) and 
       df || dg) }

{ Proof }



Definitions occuring in Statement :  fpf-join: f  g,  fpf-compatible: f || g,  fpf-cap: f(x)?z,  fpf-dom: x  dom(f),  fpf: a:A fp-> B[a],  assert: b,  uimplies: b supposing a,  uall: [x:A]. B[x],  top: Top,  all: x:A. B[x],  implies: P  Q,  member: t  T,  universe: Type,  deq: EqDecider(T)
Definitions :  all: x:A. B[x],  implies: P  Q,  member: t  T,  prop: ,  so_lambda: x.t[x],  fpf: a:A fp-> B[a],  fpf-join: f  g,  fpf-dom: x  dom(f),  pi1: fst(t),  fpf-cap: f(x)?z,  ifthenelse: if b then t else f fi ,  btrue: tt,  bfalse: ff,  rev_implies: P  Q,  iff: P  Q,  and: P  Q,  assert: b,  or: P  Q,  true: True,  top: Top,  uall: [x:A]. B[x],  so_apply: x[s],  bool: ,  unit: Unit,  uimplies: b supposing a,  not: A,  false: False,  sq_type: SQType(T),  guard: {T},  fpf-compatible: f || g,  it:
Lemmas :  assert_wf,  fpf-dom_wf,  fpf-trivial-subtype-top,  fpf-cap_wf,  top_wf,  fpf-compatible_wf,  fpf_wf,  deq_wf,  append_wf,  filter_wf,  bnot_wf,  deq-member_wf,  bool_wf,  not_wf,  iff_weakening_uiff,  eqtt_to_assert,  uiff_transitivity,  eqff_to_assert,  assert_of_bnot,  fpf-ap_wf,  fpf-join_wf,  fpf-join-ap,  subtype_rel_self,  fpf-join-dom,  subtype_base_sq,  bool_subtype_base,  assert_elim,  member_append,  not_functionality_wrt_iff,  l_member_wf,  assert-deq-member,  member_filter

\mforall{}[A:Type].  \mforall{}[eq:EqDecider(A)].  \mforall{}[df:x:A  fp->  Type].  \mforall{}[f:x:A  fp->  df(x)?Top].  \mforall{}[dg:x:A  fp->  Type].
\mforall{}[g:x:A  fp->  dg(x)?Top].
    (f  \moplus{}  g  \mmember{}  x:A  fp->  df  \moplus{}  dg(x)?Top)  supposing 
          ((\mforall{}x:A.  ((\muparrow{}x  \mmember{}  dom(g))  {}\mRightarrow{}  (\muparrow{}x  \mmember{}  dom(dg))))  and 
          (\mforall{}x:A.  ((\muparrow{}x  \mmember{}  dom(f))  {}\mRightarrow{}  (\muparrow{}x  \mmember{}  dom(df))))  and 
          df  ||  dg)


Date html generated: 2011_08_10-AM-08_00_08
Last ObjectModification: 2011_06_18-AM-08_19_20

Home Index