{ [A:Type]. [eq:EqDecider(A)]. [B:A  Type]. [L:a:A fp-B[a] List].
  [x:A].
    ([f:a:A fp-B[a]]. ((L)(x) = f(x)) supposing ((x  dom(f)) and (f  L)))\000C supposing 
       ((f,gL.  x:A. (((x  dom(f))  (x  dom(g))))) and 
       (x  dom((L)))) }

{ Proof }



Definitions occuring in Statement :  fpf-join-list: (L) fpf-ap: f(x) fpf-dom: x  dom(f) fpf: a:A fp-B[a] assert: b uimplies: b supposing a uall: [x:A]. B[x] so_apply: x[s] all: x:A. B[x] not: A and: P  Q function: x:A  B[x] list: type List universe: Type equal: s = t l_member: (x  l) deq: EqDecider(T) pairwise: (x,yL.  P[x; y])
Definitions :  nil: [] cand: A c B implies: P  Q pair: <a, b> bool: subtype: S  T lambda: x.A[x] strong-subtype: strong-subtype(A;B) void: Void false: False l_exists: (xL. P[x]) exists: x:A. B[x] decide: case b of inl(x) =s[x] | inr(y) =t[y] ifthenelse: if b then t else f fi  set: {x:A| B[x]}  le: A  B ge: i  j  less_than: a < b uiff: uiff(P;Q) subtype_rel: A r B top: Top fpf-dom: x  dom(f) axiom: Ax fpf-join-list: (L) fpf-ap: f(x) member: t  T deq: EqDecider(T) list: type List uall: [x:A]. B[x] uimplies: b supposing a isect: x:A. B[x] equal: s = t l_member: (x  l) so_lambda: x.t[x] so_apply: x[s] apply: f a pairwise: (x,yL.  P[x; y]) so_lambda: x y.t[x; y] all: x:A. B[x] function: x:A  B[x] not: A and: P  Q product: x:A  B[x] assert: b prop: universe: Type fpf: a:A fp-B[a] limited-type: LimitedType nat: int: real: grp_car: |g| select: l[i] union: left + right or: P  Q divides: b | a assoced: a ~ b set_leq: a  b set_lt: a <p b grp_lt: a < b l_contains: A  B inject: Inj(A;B;f) reducible: reducible(a) prime: prime(a) squash: T l_all: (xL.P[x]) infix_ap: x f y fun-connected: y is f*(x) qle: r  s qless: r < s q-rel: q-rel(r;x) i-finite: i-finite(I) i-closed: i-closed(I) p-outcome: Outcome fset-member: a  s f-subset: xs  ys l_disjoint: l_disjoint(T;l1;l2) fset-closed: (s closed under fs) decidable: Dec(P) btrue: tt true: True lelt: i  j < k int_seg: {i..j} natural_number: $n length: ||as|| sq_type: SQType(T) sqequal: s ~ t it: guard: {T}
Lemmas :  nat_wf set_subtype_base int_subtype_base select_wf subtype_base_sq product_subtype_base list_subtype_base squash_wf bool_wf length_wf_nat assert_elim true_wf ifthenelse_wf false_wf le_wf length_wf1 decidable__lt fpf_wf top_wf member_wf fpf-dom_wf assert_wf not_wf pairwise_wf l_member_wf fpf-trivial-subtype-top subtype_rel_wf deq_wf uall_wf fpf-join-list-ap fpf-join-list_wf fpf-ap_wf

\mforall{}[A:Type].  \mforall{}[eq:EqDecider(A)].  \mforall{}[B:A  {}\mrightarrow{}  Type].  \mforall{}[L:a:A  fp->  B[a]  List].  \mforall{}[x:A].
    (\mforall{}[f:a:A  fp->  B[a]].  (\moplus{}(L)(x)  =  f(x))  supposing  ((\muparrow{}x  \mmember{}  dom(f))  and  (f  \mmember{}  L)))  supposing 
          ((\mforall{}f,g\mmember{}L.    \mforall{}x:A.  (\mneg{}((\muparrow{}x  \mmember{}  dom(f))  \mwedge{}  (\muparrow{}x  \mmember{}  dom(g)))))  and 
          (\muparrow{}x  \mmember{}  dom(\moplus{}(L))))


Date html generated: 2011_08_10-AM-08_01_28
Last ObjectModification: 2011_06_18-AM-08_19_58

Home Index