{ [A:']. [dfps:DataflowProgram(A) List].
    [B:Type]. [F,buf,P:Top].
      (df-program-type(feedback-df-program(B;F;buf;P;dfps)) = B) 
    supposing 0 < ||dfps|| }

{ Proof }



Definitions occuring in Statement :  feedback-df-program: feedback-df-program(B;F;buf;P;dfps) df-program-type: df-program-type(dfp) dataflow-program: DataflowProgram(A) length: ||as|| uimplies: b supposing a uall: [x:A]. B[x] top: Top less_than: a < b list: type List natural_number: $n universe: Type equal: s = t
Definitions :  lambda: x.A[x] feedback-df-prog2: feedback-df-prog2(B;G;P;buf;dfp1;dfp2) feedback-df-prog1: feedback-df-prog1(B;G;P;buf;dfp) ifthenelse: if b then t else f fi  cons: [car / cdr] tl: tl(l) hd: hd(l) bfalse: ff limited-type: LimitedType btrue: tt le_int: i z j eq_int: (i = j) eq_atom: x =a y null: null(as) set_blt: a < b grp_blt: a < b apply: f a infix_ap: x f y dcdr-to-bool: [d] bl-all: (xL.P[x])_b bl-exists: (xL.P[x])_b b-exists: (i<n.P[i])_b eq_type: eq_type(T;T') eq_atom: eq_atom$n(x;y) qeq: qeq(r;s) q_less: q_less(r;s) q_le: q_le(r;s) deq-member: deq-member(eq;x;L) deq-disjoint: deq-disjoint(eq;as;bs) deq-all-disjoint: deq-all-disjoint(eq;ass;bs) name_eq: name_eq(x;y) eq_id: a = b eq_lnk: a = b bimplies: p  q band: p  q bor: p q lt_int: i <z j assert: b bnot: b unit: Unit union: left + right bool: pair: <a, b> fpf: a:A fp-B[a] strong-subtype: strong-subtype(A;B) ge: i  j  product: x:A  B[x] and: P  Q uiff: uiff(P;Q) subtype_rel: A r B false: False not: A void: Void set: {x:A| B[x]}  real: grp_car: |g| subtype: S  T int: nat: le: A  B guard: {T} implies: P  Q length: ||as|| natural_number: $n function: x:A  B[x] all: x:A. B[x] axiom: Ax feedback-df-program: feedback-df-program(B;F;buf;P;dfps) df-program-type: df-program-type(dfp) prop: member: t  T so_lambda: x.t[x] equal: s = t top: Top less_than: a < b list: type List dataflow-program: DataflowProgram(A) universe: Type uimplies: b supposing a uall: [x:A]. B[x] isect: x:A. B[x] minus: -n add: n + m subtract: n - m nil: [] quotient: x,y:A//B[x; y] valueall-type: valueall-type(T) l_member: (x  l) bag-merge: bag-merge(as;bs) bag: bag(T) parallel-df-prog2: parallel-df-prog2(B;G;dfp1;dfp2) atom: Atom$n atom: Atom rec: rec(x.A[x]) tunion: x:A.B[x] b-union: A  B so_apply: x[s] or: P  Q
Lemmas :  non_neg_length union-valueall-type df-program-type-valueall-type false_wf bag_wf bag-merge_wf parallel-df-prog2_wf pos_length3 valueall-type_wf pos_length2 ge_wf nat_properties nat_ind_tp le_wf length_wf1 dataflow-program_wf top_wf comp_nat_ind_tp nat_wf guard_wf uall_wf length_wf_nat member_wf feedback-df-program_wf df-program-type_wf bool_wf uiff_transitivity eqtt_to_assert assert_of_lt_int assert_wf eqff_to_assert assert_functionality_wrt_uiff bnot_of_lt_int assert_of_le_int le_int_wf bnot_wf lt_int_wf tl_wf hd_wf feedback-df-prog1_wf ifthenelse_wf assert_of_eq_int not_wf assert_of_bnot not_functionality_wrt_uiff eq_int_wf feedback-df-prog2_wf

\mforall{}[A:\mBbbU{}'].  \mforall{}[dfps:DataflowProgram(A)  List].
    \mforall{}[B:Type].  \mforall{}[F,buf,P:Top].    (df-program-type(feedback-df-program(B;F;buf;P;dfps))  =  B) 
    supposing  0  <  ||dfps||


Date html generated: 2011_08_16-AM-09_45_52
Last ObjectModification: 2011_06_18-AM-08_34_55

Home Index