{ [A:Type]. [eq:EqDecider(A)]. [B,C,D,E,F,G:A  Type]. [f:a:A fp-> B[a]].
  [g:a:A fp-> C[a]]. [h:a:A fp-> D[a]].
    ({(h || f  g) supposing (h || g and h || f)}) supposing 
       ((a:A. (E[a] r G[a])) and 
       (a:A. (F[a] r G[a])) and 
       (a:A. (D[a] r F[a])) and 
       (a:A. (D[a] r E[a])) and 
       (a:A. (C[a] r F[a])) and 
       (a:A. (B[a] r E[a]))) }

{ Proof }



Definitions occuring in Statement :  fpf-join: f  g,  fpf-compatible: f || g,  fpf: a:A fp-> B[a],  subtype_rel: A r B,  uimplies: b supposing a,  uall: [x:A]. B[x],  guard: {T},  so_apply: x[s],  all: x:A. B[x],  function: x:A  B[x],  universe: Type,  deq: EqDecider(T)
Definitions :  and: P  Q,  member: t  T,  prop: ,  uall: [x:A]. B[x],  so_apply: x[s],  uimplies: b supposing a,  all: x:A. B[x],  fpf-compatible: f || g,  implies: P  Q,  so_lambda: x.t[x],  not: A,  false: False,  fpf-ap: f(x)
Lemmas :  fpf-dom_wf,  bool_wf,  assert_wf,  not_wf,  bnot_wf,  fpf-trivial-subtype-top,  fpf-join_wf,  top_wf,  fpf-compatible_wf,  fpf_wf,  deq_wf,  fpf-ap_wf

\mforall{}[A:Type].  \mforall{}[eq:EqDecider(A)].  \mforall{}[B,C,D,E,F,G:A  {}\mrightarrow{}  Type].  \mforall{}[f:a:A  fp->  B[a]].  \mforall{}[g:a:A  fp->  C[a]].
\mforall{}[h:a:A  fp->  D[a]].
    (\{(h  ||  f  \moplus{}  g)  supposing  (h  ||  g  and  h  ||  f)\})  supposing 
          ((\mforall{}a:A.  (E[a]  \msubseteq{}r  G[a]))  and 
          (\mforall{}a:A.  (F[a]  \msubseteq{}r  G[a]))  and 
          (\mforall{}a:A.  (D[a]  \msubseteq{}r  F[a]))  and 
          (\mforall{}a:A.  (D[a]  \msubseteq{}r  E[a]))  and 
          (\mforall{}a:A.  (C[a]  \msubseteq{}r  F[a]))  and 
          (\mforall{}a:A.  (B[a]  \msubseteq{}r  E[a])))


Date html generated: 2011_08_10-AM-08_05_25
Last ObjectModification: 2011_06_18-AM-08_23_15

Home Index