{ prg:eclass-program{i:l}(Message). S:LimitedType. P:S  .
  f:Id  eclass-program-type(prg)  {v:S| P[v]} . g:eclass-program-type(prg\000C)
                                                         (Id List). h:Name.
    assuming(env,r.reliable-env(env; r))
     mk-init-sys(prop-rule-realizer(eclass-program-flows(prg);S;f;g;h)) |=
     es.defined-class(prg) f baseclass(h; S; v.P[v])@g }

{ Proof }



Definitions occuring in Statement :  prop-rule-realizer: prop-rule-realizer(pr;T;f;g;hdr) std-l2m: std-l2m() std-n2m: std-n2m() strong-realizes: strong-realizes mk-init-sys: mk-init-sys(Cs) Message: Message reliable-env: reliable-env(env; r) defined-class: defined-class(prg) eclass-program-flows: eclass-program-flows(p) eclass-program-type: eclass-program-type(prg) eclass-program: eclass-program{i:l}(Info) es-propagation-rule: A f B@g Id: Id name: Name assert: b bool: so_apply: x[s] all: x:A. B[x] set: {x:A| B[x]}  function: x:A  B[x] list: type List limited-type: LimitedType
Definitions :  RepUR: Error :RepUR,  Repeat: Error :Repeat,  AssertBY: Error :AssertBY,  member: t  T Complete: Error :Complete,  universe: Type Try: Error :Try,  CollapseTHENA: Error :CollapseTHENA,  eclass: EClass(A[eo; e]) Message: Message Auto: Error :Auto,  D: Error :D,  CollapseTHEN: Error :CollapseTHEN,  MaAuto: Error :MaAuto,  so_lambda: x.t[x] strong-realizes: strong-realizes function: x:A  B[x] all: x:A. B[x] product: x:A  B[x] eclass-program: eclass-program{i:l}(Info) equal: s = t isect: x:A. B[x] uall: [x:A]. B[x] so_lambda: x y.t[x; y] std-l2m: std-l2m() std-n2m: std-n2m() mk-init-sys: mk-init-sys(Cs) prop-rule-realizer: prop-rule-realizer(pr;T;f;g;hdr) eclass-program-flows: eclass-program-flows(p) pair: <a, b> eclass-program-type: eclass-program-type(prg) name: Name list: type List Id: Id limited-type: LimitedType fpf: a:A fp-B[a] set: {x:A| B[x]}  dataflow-program: DataflowProgram(A) bool: df-program-type: df-program-type(dfp) union: left + right top: Top intensional-universe: IType exists: x:A. B[x] subtype_rel: A r B uimplies: b supposing a es-E-interface: E(X) subtype: S  T defined-class: defined-class(prg) assert: b fpf-join: f  g fpf-single: x : v so_apply: x[s] apply: f a prop: system-strongly-realizes: system-strongly-realizes reliable-env: reliable-env(env; r) implies: P  Q system-realizes: system-realizes sub-system: sub-system(P.M[P];S1;S2) InitialSystem: InitialSystem(P.M[P]) mData: mData lambda: x.A[x] System: System(P.M[P]) std-initial: std-initial(S) uiff: uiff(P;Q) and: P  Q less_than: a < b not: A ge: i  j  le: A  B strong-subtype: strong-subtype(A;B) ldag: LabeledDAG(T) event-ordering+: EO+(Info) es-E: E event_ordering: EO dataflow-set-class: dataflow-set-class(x.P[x]) df-program-meaning: df-program-meaning(dfp) fpf-cap: f(x)?z id-deq: IdDeq null-df-program: null-df-program(B) dataflow: dataflow(A;B) corec: corec(T.F[T]) atom: Atom$n deq: EqDecider(T) class-program: ClassProgram(T) ma-state: State(ds) fpf-sub: f  g true: True bag: bag(T) b-union: A  B pi1: fst(t) spread: spread def isect2: T1  T2 fset: FSet{T} record: record(x.T[x]) record+: record+ labeled-graph: LabeledGraph(T) iff: P  Q or: P  Q rev_implies: P  Q tag-by: zT sq_stable: SqStable(P) squash: T ext-eq: A  B ParallelOp: Error :ParallelOp,  tactic: Error :tactic,  Unfold: Error :Unfold,  ORELSE: Error :ORELSE,  RepeatFor: Error :RepeatFor,  THENM: Error :THENM,  parameter: parm{i} Component: Component nat: pCom: pCom(P.M[P]) EnvType: EnvType RunType: RunType pEnvType: pEnvType(T.M[T]) pRunType: pRunType(T.M[T]) InitSys: InitSys unit: Unit l_all: (xL.P[x]) es-loc: loc(e) lg-all: xG.P[x] Proc-out-at: Proc-out-at(es;P;e) pi2: snd(t) atom: Atom com-kind: com-kind(c) token: "$token" es-causl: (e < e') es-info: info(e) comm-msg: comm-msg(c) inl: inl x  ProcOut: ProcOut l_member: (x  l) dep-isect: Error :dep-isect,  ifthenelse: if b then t else f fi  decide: case b of inl(x) =s[x] | inr(y) =t[y] let: let eq_atom: eq_atom$n(x;y) eq_atom: x =a y record-select: r.x subsys: S1  S2 component: component(P.M[P]) ProcOut-all: ProcOut-all(G;p.P[p]) Proc: Proc Process: Process(P.M[P]) pMsg: pMsg(P.M[P]) process: process(P.M[P];P.E[P]) Com: Com(P.M[P]) es-propagation-rule: A f B@g baseclass: BaseClass(h;T) es-base-E: es-base-E(es) sq_type: SQType(T) l_exists: (xL. P[x]) l_disjoint: l_disjoint(T;l1;l2) Sys: Sys lg-contains: g1  g2 pInTransit: pInTransit(P.M[P]) sublist: L1  L2 int_seg: {i..j} natural_number: $n lg-size: lg-size(g) int: lg-label: lg-label(g;x) minus: -n lelt: i  j < k false: False void: Void in-eclass: e  X length: ||as|| select: l[i] eclass-val: X(e) btrue: tt guard: {T} modulus-of-ccontinuity: modulus-of-ccontinuity(omega;I;f) partitions: partitions(I;p) i-member: r  I rleq: x  y rnonneg: rnonneg(r) req: x = y is_accum_splitting: is_accum_splitting(T;A;L;LL;L2;f;g;x) is_list_splitting: is_list_splitting(T;L;LL;L2;f) so_apply: x[s1;s2] SplitOn: Error :SplitOn,  deq-member: deq-member(eq;x;L) can-apply: can-apply(f;x) dataflow-history-val: dataflow-history-val(es;e;x.P[x]) fpf-dom: x  dom(f) fpf_ap_pair: fpf_ap_pair{fpf_ap_pair_compseq_tag_def:o}(x; eq; f; d) bnot: b bor: p q band: p  q bimplies: p  q es-ble: e loc e' es-bless: e <loc e' es-eq-E: e = e' eq_lnk: a = b eq_id: a = b deq-all-disjoint: deq-all-disjoint(eq;ass;bs) deq-disjoint: deq-disjoint(eq;as;bs) bfalse: ff le_int: i z j lt_int: i <z j do-apply: do-apply(f;x) outl: outl(x) last: last(L) data-stream: data-stream(P;L) map: map(f;as) es-le-before: loc(e) dataflow-to-Process: dataflow-to-Process prop-rule-realizer-out: prop-rule-realizer-out(T;x;f;g;hdr) cand: A c B suptype: suptype(S; T) isl: isl(x) valueall-type: valueall-type(T) value-type: value-type(T) no_repeats: no_repeats(T;l) prime_ideal_p: IsPrimeIdeal(R;P) integ_dom_p: IsIntegDom(r) grp_leq: a  b monoid_hom_p: IsMonHom{M1,M2}(f) group_p: IsGroup(T;op;id;inv) monoid_p: IsMonoid(T;op;id) monot: monot(T;x,y.R[x; y];f) cancel: Cancel(T;S;op) fun_thru_2op: FunThru2op(A;B;opa;opb;f) fun_thru_1op: fun_thru_1op(A;B;opa;opb;f) dist_1op_2op_lr: Dist1op2opLR(A;1op;2op) action_p: IsAction(A;x;e;S;f) bilinear_p: IsBilinear(A;B;C;+a;+b;+c;f) bilinear: BiLinear(T;pl;tm) inverse: Inverse(T;op;id;inv) comm: Comm(T;op) assoc: Assoc(T;op) ident: Ident(T;op;id) coprime: CoPrime(a,b) uconnex: uconnex(T; x,y.R[x; y]) connex: Connex(T;x,y.R[x; y]) uanti_sym: UniformlyAntiSym(T;x,y.R[x; y]) anti_sym: AntiSym(T;x,y.R[x; y]) utrans: UniformlyTrans(T;x,y.E[x; y]) trans: Trans(T;x,y.E[x; y]) usym: UniformlySym(T;x,y.E[x; y]) sym: Sym(T;x,y.E[x; y]) urefl: UniformlyRefl(T;x,y.E[x; y]) refl: Refl(T;x,y.E[x; y]) eqfun_p: IsEqFun(T;eq) inject: Inj(A;B;f) inv_funs: InvFuns(A;B;f;g) uni_sat: a = !x:T. Q[x] decidable: Dec(P) infix_ap: x f y lg-edge: lg-edge(g;a;b) path-goes-thru: x-f*-y thru i cut-order: a (X;f) b collect-event: collect-event(es;X;n;v.num[v];L.P[L];e) same-thread: same-thread(es;p;e;e') es-r-immediate-pred: es-r-immediate-pred(es;R;e';e) es-fset-loc: i  locs(s) existse-between3: e(e1,e2].P[e] existse-between2: e[e1,e2].P[e] alle-between2: e[e1,e2].P[e] existse-between1: e[e1,e2).P[e] alle-between1: e[e1,e2).P[e] alle-le: ee'.P[e] alle-lt: e<e'.P[e] existse-le: ee'.P[e] existse-before: e<e'.P[e] es-causle: e c e' es-le: e loc e'  es-locl: (e <loc e') cs-precondition: state s may consider v in inning i cs-archive-blocked: in state s, ws' blocks ws from archiving v in inning i cs-inning-committable: in state s, inning i could commit v  cs-inning-committed: in state s, inning i has committed v cs-passed: by state s, a passed inning i without archiving a value cs-archived: by state s, a archived v in inning i cs-not-completed: in state s, a has not completed inning i fset-closed: (s closed under fs) f-subset: xs  ys fset-member: a  s p-outcome: Outcome i-closed: i-closed(I) i-finite: i-finite(I) sq_exists: x:{A| B[x]} q-rel: q-rel(r;x) qless: r < s qle: r  s fun-connected: y is f*(x) prime: prime(a) reducible: reducible(a) l_contains: A  B grp_lt: a < b set_lt: a <p b set_leq: a  b assoced: a ~ b divides: b | a nil: [] remove-repeats: remove-repeats(eq;L) hd: hd(l) cons: [car / cdr] listp: A List combination: Combination(n;T) less: if (a) < (b)  then c  else d eq_str: Error :eq_str,  q_le: q_le(r;s) q_less: q_less(r;s) qeq: qeq(r;s) eq_type: eq_type(T;T') b-exists: (i<n.P[i])_b bl-exists: (xL.P[x])_b bl-all: (xL.P[x])_b dcdr-to-bool: [d] grp_blt: a < b set_blt: a < b null: null(as) eq_int: (i = j) sqequal: s ~ t es-before: before(e) add: n + m is-dag: is-dag(g) locl: locl(a) Knd: Knd rcv: rcv(l,tg) primrec: primrec(n;b;c) tl: tl(l) MaAuto: Error :MaAuto,  make-lg: make-lg(L) compose: f o g filter: filter(P;l) limited-type-level: limited-type-level{i:l}(n;T) es-init: es-init(es;e) ldst: destination(l) lsrc: source(l) es-first: first(e) causal-predecessor: causal-predecessor(es;p) es-p-locl: e pe' es-p-le: e p e' grp_car: |g| real: tagged-tag: x.tag tagged-val: x.val inr: inr x  it: decide_bfalse: decide_bfalse{decide_bfalse_compseq_tag_def:o}(v11.g[v11]; v21.f[v21]) BHyp: Error :BHyp,  rationals: Subst': Error :Subst',  label: ...$L... t spreadn: spread3 name_eq: name_eq(x;y) eq_bool: p =b q upto: upto(n) ExRepD: Error :ExRepD,  rev_uimplies: rev_uimplies(P;Q) append: as @ bs IdLnk: IdLnk HypSubst: Error :HypSubst
Lemmas :  member_upto rev_implies_wf iff_wf nat_properties uiff_inversion pi2_wf outl_wf union_subtype_base unit_subtype_base upto_wf btrue_wf intensional-universe_wf2 btrue_neq_bfalse eq_type_wf name_eq_wf assert-name_eq uiff_transitivity not_functionality_wrt_uiff assert-eq_type isl_wf subtype_rel_set es-interface-subtype_rel eclass_wf2 select_member int_seg_properties select_wf bfalse_wf es-le-before-not-null null-map data-stream-null-df-program event_ordering_wf es-le-before_wf2 es-le_wf lg-all_wf_dag select-map le_wf length-map atom2_subtype_base es-causl_irreflexivity es-loc-pred intensional-universe_subtype_base limited-type-level_wf atom_subtype_base product_subtype_base list_subtype_base set_subtype_base isect_subtype_base primrec_wf map-map member_null pos_length2 null-data-stream subtype_rel_list listp_properties last-map guard_wf last_wf map_wf data-stream_wf datastream-dataflow-to-Process length_wf_nat es-before_wf non_neg_length es-before_wf2 length-append assert_of_lt_int length_wf1 lt_int_wf es-le-before_wf map_wf_listp listp_wf l_member-set Process_wf member_map list-subtype sq_stable_from_decidable dataflow-to-Process_wf prop-rule-realizer-out_wf Com_wf bnot_wf deq-member_wf assert-deq-member not_functionality_wrt_iff assert_of_bnot iff_weakening_uiff iff_transitivity eqff_to_assert eqtt_to_assert bool_cases eclass-val_wf squash_wf in-eclass_wf assert_elim bool_subtype_base true_wf ifthenelse_wf false_wf es-interface-val_wf es-is-interface_wf sq_stable__assert es-interface-subtype_rel2 ldag_wf nat_wf lg-size_wf lg-label_wf_dag int_seg_wf Sys_wf InitSys_wf subsys_weakening sublist_wf component_wf lg-contains_wf pInTransit_wf subsys_wf not_wf l_disjoint_wf l_exists_wf es-E-interface_wf subtype_base_sq es-base-E_wf es-interface-top es-propagation-rule_wf baseclass_wf Proc_wf pMsg_wf comm-msg_wf es-info_wf com-kind_wf es-causl_wf ProcOut-all_wf components-realize2 pCom_wf strong-realizes_functionality reliable-env_wf2 RunType_wf EnvType_wf unit_wf l_all_wf l_all_wf2 es-loc_wf pi1_wf_top Proc-out-at_wf Component_wf l_member_wf ext-eq_weakening subtype_rel_weakening ext-eq_inversion sq_stable__subtype_rel subtype_rel_self dataflow_subtype null-df-program_wf id-deq_wf top_wf dataflow_wf df-program-type_wf df-program-meaning_wf fpf-cap_wf dataflow-program_wf dataflow-set-class_wf event-ordering+_inc es-E_wf event-ordering+_wf eclass_wf std-initial_wf System_wf mData_wf InitialSystem_wf sub-system_wf system-realizes_wf system-strongly-realizes_wf reliable-env_wf eclass-program_wf Message_wf limited-type_wf subtype_rel_wf member_wf intensional-universe_wf bool_wf assert_wf name_wf Id_wf std-l2m_wf std-n2m_wf prop-rule-realizer_wf mk-init-sys_wf strong-realizes_wf

\mforall{}prg:eclass-program\{i:l\}(Message).  \mforall{}S:LimitedType.  \mforall{}P:S  {}\mrightarrow{}  \mBbbB{}.  \mforall{}f:Id
                                                                                                                                  {}\mrightarrow{}  eclass-program-type(prg)
                                                                                                                                  {}\mrightarrow{}  \{v:S|  \muparrow{}P[v]\}  .
\mforall{}g:eclass-program-type(prg)  {}\mrightarrow{}  (Id  List).  \mforall{}h:Name.
    assuming(env,r.reliable-env(env;  r))
      mk-init-sys(prop-rule-realizer(eclass-program-flows(prg);S;f;g;h))  |=
      es.defined-class(prg)  {}f\mRightarrow{}  baseclass(h;  S;  v.P[v])@g


Date html generated: 2011_08_17-PM-04_21_19
Last ObjectModification: 2011_01_13-PM-08_33_26

Home Index