{ [A:Type]. [p,q:DataflowProgram(A)].
    df-program-meaning(p) = df-program-meaning(q) 
    supposing (df-program-type(p) = df-program-type(q))
     (R:df-program-statetype(p)?  df-program-statetype(q)?  
        df-prog-equiv(A;p;q;s1,s2.R[s1;s2])) }

{ Proof }



Definitions occuring in Statement :  df-prog-equiv: df-prog-equiv(A;p;q;s1,s2.R[s1; s2]) df-program-meaning: df-program-meaning(dfp) df-program-statetype: df-program-statetype(dfp) df-program-type: df-program-type(dfp) dataflow-program: DataflowProgram(A) dataflow: dataflow(A;B) uimplies: b supposing a uall: [x:A]. B[x] prop: so_apply: x[s1;s2] exists: x:A. B[x] and: P  Q unit: Unit function: x:A  B[x] union: left + right universe: Type equal: s = t bag: bag(T)
Definitions :  tactic: Error :tactic,  RepeatFor: Error :RepeatFor,  RepUR: Error :RepUR,  bag: bag(T) union: left + right unit: Unit so_lambda: x y.t[x; y] decide: case b of inl(x) =s[x] | inr(y) =t[y] apply: f a pair: <a, b> empty-bag: {} inl: inl x  MaAuto: Error :MaAuto,  CollapseTHENA: Error :CollapseTHENA,  Repeat: Error :Repeat,  CollapseTHEN: Error :CollapseTHEN,  D: Error :D,  Auto: Error :Auto,  member: t  T and: P  Q isect: x:A. B[x] prop: universe: Type equal: s = t df-program-statetype: df-program-statetype(dfp) function: x:A  B[x] so_apply: x[s1;s2] df-prog-equiv: df-prog-equiv(A;p;q;s1,s2.R[s1; s2]) product: x:A  B[x] exists: x:A. B[x] uimplies: b supposing a dataflow-program: DataflowProgram(A) uall: [x:A]. B[x] dataflow: dataflow(A;B) df-program-type: df-program-type(dfp) df-program-meaning: df-program-meaning(dfp) axiom: Ax all: x:A. B[x] subtype_rel: A r B uiff: uiff(P;Q) less_than: a < b not: A ge: i  j  le: A  B strong-subtype: strong-subtype(A;B) fpf: a:A fp-B[a] limited-type: LimitedType lambda: x.A[x] squash: T true: True so_lambda: x.t[x] assert: b l_member: (x  l) list: type List guard: {T} or: P  Q implies: P  Q so_apply: x[s] rationals: Id: Id IdLnk: IdLnk Knd: Knd cand: A c B bool: spread: spread def set: {x:A| B[x]}  df-program-in-state-ap': df-program-in-state-ap'(dfp;s;m) df-program-state: df-program-state(dfp) df-program-in-state-ap: df-program-in-state-ap(dfp;s;m) pi2: snd(t) ifthenelse: if b then t else f fi  isl: isl(x) outl: outl(x) valueall-type: valueall-type(T) inr: inr x  subtype: S  T quotient: x,y:A//B[x; y] sq_stable: SqStable(P) fpf-sub: f  g 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 bag-member: bag-member(T;x;bs) 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) b-union: A  B tunion: x:A.B[x] rec: rec(x.A[x]) atom: Atom int: atom: Atom$n natural_number: $n 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] iff: P  Q decidable: Dec(P) l_disjoint: l_disjoint(T;l1;l2) 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) infix_ap: x f y l_all: (xL.P[x]) l_exists: (xL. P[x]) prime: prime(a) reducible: reducible(a) cmp-le: cmp-le(cmp;x;y) l_contains: A  B grp_lt: a < b set_lt: a <p b set_leq: a  b assoced: a ~ b divides: b | a false: False pi1: fst(t) rel_plus: R rel_exp: R^n llex: llex(A;a,b.<[a; b])
Lemmas :  sq_stable__equal sq_stable__all pi2_wf sq_stable_from_decidable equal-valueall-type union-valueall-type sq_stable__valueall-type valueall-type_wf member_wf empty-bag_wf rec-dataflow-equal uall_wf squash_wf true_wf df-program-type_wf bag_wf dataflow_wf df-program-meaning_wf dataflow-program_wf df-prog-equiv_wf unit_wf df-program-statetype_wf

\mforall{}[A:Type].  \mforall{}[p,q:DataflowProgram(A)].
    df-program-meaning(p)  =  df-program-meaning(q) 
    supposing  (df-program-type(p)  =  df-program-type(q))
    \mwedge{}  (\mexists{}R:df-program-statetype(p)?  {}\mrightarrow{}  df-program-statetype(q)?  {}\mrightarrow{}  \mBbbP{}
            df-prog-equiv(A;p;q;s1,s2.R[s1;s2]))


Date html generated: 2011_08_16-AM-09_36_49
Last ObjectModification: 2011_06_17-PM-01_34_29

Home Index