{ 
[A,B:Type]. 
[f,g,h:dataflow(A;B)].  (f 
 h) supposing (f 
 g and g 
 h) }
{ Proof }
Definitions occuring in Statement : 
dataflow-equiv: d1 
 d2, 
dataflow: dataflow(A;B), 
uimplies: b supposing a, 
uall:
[x:A]. B[x], 
universe: Type
Definitions : 
b-union: A 
 B, 
union: left + right, 
bag: Error :bag, 
fpf-sub: f 
 g, 
deq: EqDecider(T), 
ma-state: State(ds), 
apply: f a, 
fpf-dom: x 
 dom(f), 
false: False, 
rcv: rcv(l,tg), 
locl: locl(a), 
Knd: Knd, 
pair: <a, b>, 
true: True, 
squash:
T, 
primrec: primrec(n;b;c), 
bool:
, 
fpf-cap: f(x)?z, 
guard: {T}, 
limited-type: LimitedType, 
void: Void, 
subtype: S 
 T, 
fpf: a:A fp-> B[a], 
top: Top, 
int:
, 
length: ||as||, 
nat:
, 
set: {x:A| B[x]} , 
sq_type: SQType(T), 
strong-subtype: strong-subtype(A;B), 
corec: corec(T.F[T]), 
le: A 
 B, 
ge: i 
 j , 
not:
A, 
less_than: a < b, 
product: x:A 
 B[x], 
and: P 
 Q, 
uiff: uiff(P;Q), 
subtype_rel: A 
r B, 
axiom: Ax, 
data-stream: data-stream(P;L), 
list: type List, 
lambda:
x.A[x], 
all:
x:A. B[x], 
function: x:A 
 B[x], 
equal: s = t, 
universe: Type, 
uall:
[x:A]. B[x], 
dataflow: dataflow(A;B), 
uimplies: b supposing a, 
prop:
, 
isect:
x:A. B[x], 
dataflow-equiv: d1 
 d2, 
member: t 
 T, 
MaAuto: Error :MaAuto, 
CollapseTHEN: Error :CollapseTHEN, 
ParallelOp: Error :ParallelOp, 
RepeatFor: Error :RepeatFor, 
Auto: Error :Auto
Lemmas : 
member_wf, 
subtype_rel_wf, 
dataflow_wf, 
top_wf, 
data-stream_wf, 
length_wf_nat, 
nat_wf, 
list_subtype_base, 
subtype_base_sq, 
dataflow-equiv_wf, 
true_wf, 
squash_wf, 
dataflow_subtype, 
subtype_rel_self
\mforall{}[A,B:Type].  \mforall{}[f,g,h:dataflow(A;B)].    (f  \mequiv{}  h)  supposing  (f  \mequiv{}  g  and  g  \mequiv{}  h)
Date html generated:
2011_08_10-AM-08_21_53
Last ObjectModification:
2011_06_18-AM-08_32_30
Home
Index