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)
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T uiff: uiff(P;Q) and: P ∧ Q uimplies: supposing a iff: ⇐⇒ Q implies:  Q prop: sq_type: SQType(T) all: x:A. B[x] guard: {T} assert: b ifthenelse: if then else fi  btrue: tt true: True rev_implies:  Q hdataflow: hdataflow(A;B) so_lambda: λ2x.t[x] so_apply: x[s] so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] F-bisimulation: x,y.R[x; y] is an T.F[T]-bisimulation subtype_rel: A ⊆B strong-type-continuous: Continuous+(T.F[T]) type-continuous: Continuous(T.F[T]) cand: c∧ B type-monotone: Monotone(T.F[T]) top: Top hdf-halted: hdf-halted(P) isr: isr(x) not: ¬A false: False hdf-ap: X(a) hdf-out: hdf-out(P;x)

Latex:
\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: 2016_05_16-AM-10_38_41
Last ObjectModification: 2015_12_28-PM-07_45_54

Theory : halting!dataflow


Home Index