Nuprl Lemma : hdataflow-equal

[A,B:Type]. ∀[P,Q:hdataflow(A;B)].
  uiff(P Q ∈ hdataflow(A;B);∀[inputs:A List]
                                (hdf-halted(P*(inputs)) hdf-halted(Q*(inputs))
                                ∧ (∀[a:A]. (hdf-out(P*(inputs);a) hdf-out(Q*(inputs);a) ∈ bag(B)))))


Proof




Definitions occuring in Statement :  iterate-hdataflow: P*(inputs) hdf-out: hdf-out(P;x) hdf-halted: hdf-halted(P) hdataflow: hdataflow(A;B) list: List bool: 𝔹 uiff: uiff(P;Q) uall: [x:A]. B[x] and: P ∧ Q universe: Type equal: t ∈ T bag: bag(T)
Lemmas :  iff_imp_equal_bool hdf-halted_wf iterate-hdataflow_wf and_wf equal_wf hdataflow_wf assert_elim subtype_base_sq bool_wf bool_subtype_base assert_wf hdf-out_wf list_wf coinduction-principle bag_wf unit_wf2 continuous-monotone-union continuous-monotone-function continuous-monotone-product continuous-monotone-id continuous-monotone-constant uall_wf corec_wf corec_subtype strong-continuous-union strong-continuous-function strong-continuous-product continuous-id continuous-constant subtype_rel_weakening nat_wf subtype_corec subtype_rel_sum subtype_rel_function subtype_rel_simple_product subtype_rel_wf all_wf nil_wf iter_hdf_nil_lemma pair-eta subtype_rel_product top_wf subtype_top btrue_neq_bfalse equal-unit cons_wf iter_hdf_cons_lemma iff_weakening_equal
\mforall{}[A,B:Type].  \mforall{}[P,Q:hdataflow(A;B)].
    uiff(P  =  Q;\mforall{}[inputs:A  List]
                              (hdf-halted(P*(inputs))  =  hdf-halted(Q*(inputs))
                              \mwedge{}  (\mforall{}[a:A].  (hdf-out(P*(inputs);a)  =  hdf-out(Q*(inputs);a)))))



Date html generated: 2015_07_17-AM-08_05_09
Last ObjectModification: 2015_02_03-PM-09_46_37

Home Index