{ [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]].
    ({(f  g || h) supposing (g || h and f || h)}) 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-join_wf top_wf fpf-trivial-subtype-top 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]].
    (\{(f  \moplus{}  g  ||  h)  supposing  (g  ||  h  and  f  ||  h)\})  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_21
Last ObjectModification: 2011_06_18-AM-08_23_12

Home Index