{ [A:Type]. [B1,B2:A  Type]. [eq:EqDecider(A)]. [f:a:A fp-B1[a]].
  [g:a:A fp-B2[a]].
    f  f  g }

{ Proof }



Definitions occuring in Statement :  fpf-join: f  g fpf-sub: f  g fpf: a:A fp-B[a] uall: [x:A]. B[x] so_apply: x[s] function: x:A  B[x] universe: Type deq: EqDecider(T)
Definitions :  or: P  Q rev_implies: P  Q iff: P  Q list: type List top: Top strong-subtype: strong-subtype(A;B) set: {x:A| B[x]}  le: A  B ge: i  j  not: A less_than: a < b uimplies: b supposing a and: P  Q uiff: uiff(P;Q) subtype_rel: A r B fpf-ap: f(x) fpf-join: f  g fpf-dom: x  dom(f) prop: axiom: Ax pair: <a, b> lambda: x.A[x] fpf-sub: f  g all: x:A. B[x] implies: P  Q cand: A c B product: x:A  B[x] assert: b ifthenelse: if b then t else f fi  decide: case b of inl(x) =s[x] | inr(y) =t[y] true: True false: False void: Void equal: s = t universe: Type function: x:A  B[x] deq: EqDecider(T) uall: [x:A]. B[x] so_lambda: x.t[x] so_apply: x[s] apply: f a isect: x:A. B[x] fpf: a:A fp-B[a] member: t  T CollapseTHEN: Error :CollapseTHEN,  CollapseTHENA: Error :CollapseTHENA,  Try: Error :Try,  tactic: Error :tactic
Lemmas :  top_wf member_wf fpf_wf fpf-join_wf fpf-dom_wf assert_wf fpf-trivial-subtype-top subtype_rel_wf fpf-ap_wf true_wf ifthenelse_wf false_wf assert_witness pair_wf deq_wf fpf-join-dom2 iff_wf rev_implies_wf fpf-join-ap-left

\mforall{}[A:Type].  \mforall{}[B1,B2:A  {}\mrightarrow{}  Type].  \mforall{}[eq:EqDecider(A)].  \mforall{}[f:a:A  fp->  B1[a]].  \mforall{}[g:a:A  fp->  B2[a]].
    f  \msubseteq{}  f  \moplus{}  g


Date html generated: 2011_08_10-AM-08_00_14
Last ObjectModification: 2011_06_18-AM-08_19_23

Home Index