{ [A:']. [B:Type]. [x:dataflow(A;bag(B))].
    (x ~ null-dataflow()) supposing ((is-null-df(x)) and (A)) }

{ Proof }



Definitions occuring in Statement :  is-null-df: is-null-df(x) null-dataflow: null-dataflow() dataflow: dataflow(A;B) assert: b uimplies: b supposing a uall: [x:A]. B[x] squash: T universe: Type sqequal: s ~ t bag: bag(T)
Definitions :  filter: filter(P;l) null-dataflow: null-dataflow() nil: [] qabs: |r| append: as @ bs eq_knd: a = b fpf-dom: x  dom(f) true: True apply: f a so_apply: x[s] implies: P  Q union: left + right or: P  Q guard: {T} l_member: (x  l) is-null-df: is-null-df(x) equal: s = t 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]}  strong-subtype: strong-subtype(A;B) le: A  B ge: i  j  not: A less_than: a < b and: P  Q uiff: uiff(P;Q) exists: x:A. B[x] nat: top: Top product: x:A  B[x] primrec: primrec(n;b;c) so_lambda: x.t[x] corec: corec(T.F[T]) sq_type: SQType(T) subtype_rel: A r B function: x:A  B[x] all: x:A. B[x] sqequal: s ~ t uall: [x:A]. B[x] bag: bag(T) dataflow: dataflow(A;B) universe: Type squash: T uimplies: b supposing a prop: assert: b member: t  T isect: x:A. B[x] MaAuto: Error :MaAuto,  tactic: Error :tactic,  atom: Atom$n int: atom: Atom rec: rec(x.A[x]) quotient: x,y:A//B[x; y] tunion: x:A.B[x] b-union: A  B list: type List valueall-type: valueall-type(T) eq_term: a == b CollapseTHEN: Error :CollapseTHEN
Lemmas :  assert-eq_term null-dataflow_wf valueall-type_wf dataflow-valueall-type isect_subtype_base nat_wf primrec_wf top_wf bag_wf subtype_base_sq dataflow_wf assert_wf squash_wf uall_wf is-null-df_wf

\mforall{}[A:\mBbbU{}'].  \mforall{}[B:Type].  \mforall{}[x:dataflow(A;bag(B))].
    (x  \msim{}  null-dataflow())  supposing  ((\muparrow{}is-null-df(x))  and  (\mdownarrow{}A))


Date html generated: 2011_08_16-AM-09_48_13
Last ObjectModification: 2011_02_03-PM-01_30_06

Home Index