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: T List,  bool: 𝔹,  uiff: uiff(P;Q),  uall: ∀[x:A]. B[x],  and: P ∧ Q,  universe: Type,  equal: s = 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: b supposing a,  iff: P ⇐⇒ Q,  implies: P ⇒ Q,  prop: ℙ,  sq_type: SQType(T),  all: ∀x:A. B[x],  guard: {T},  assert: ↑b,  ifthenelse: if b then t else f fi ,  btrue: tt,  true: True,  rev_implies: P ⇐ Q,  hdataflow: hdataflow(A;B),  so_lambda: λ2x.t[x],  so_apply: x[s],  so_lambda: λ2x y.t[x; y],  so_apply: x[s1;s2],  F-bisimulation: x,y.R[x; y] is an T.F[T]-bisimulation,  subtype_rel: A ⊆r B,  strong-type-continuous: Continuous+(T.F[T]),  type-continuous: Continuous(T.F[T]),  cand: A 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