{ 
[X1:
{j}]. 
[x:ClassDerivation]. 
[base:args:BaseDef 
 X1].
  
[... }
{ Proof }
Definitions occuring in Statement : 
classderiv_ind: classderiv_ind, 
classderiv: ClassDerivation, 
base-deriv: BaseDef, 
uall:
[x:A]. B[x], 
so_apply: x[s1;s2;s3;s4;s5], 
so_apply: x[s1;s2;s3;s4], 
so_apply: x[s1;s2;s3], 
so_apply: x[s], 
unit: Unit, 
member: t 
 T, 
function: x:A 
 B[x], 
universe: Type, 
bag: bag(T)
Definitions : 
fpf: a:A fp-> B[a], 
strong-subtype: strong-subtype(A;B), 
le: A 
 B, 
ge: i 
 j , 
not:
A, 
less_than: a < b, 
lambda:
x.A[x], 
tag-by: z
T, 
ldag: LabeledDAG(T), 
labeled-graph: LabeledGraph(T), 
record+: record+, 
record: record(x.T[x]), 
eclass: EClass(A[eo; e]), 
fset: FSet{T}, 
dataflow: dataflow(A;B), 
isect2: T1 
 T2, 
b-union: A 
 B, 
rev_implies: P 
 Q, 
or: P 
 Q, 
implies: P 
 Q, 
iff: P 

 Q, 
uiff: uiff(P;Q), 
and: P 
 Q, 
list: type List, 
set: {x:A| B[x]} , 
top: Top, 
true: True, 
subtype_rel: A 
r B, 
uimplies: b supposing a, 
type-monotone: Monotone(T.F[T]), 
product: x:A 
 B[x], 
union: left + right, 
rec: rec(x.A[x]), 
all:
x:A. B[x], 
axiom: Ax, 
so_apply: x[s1;s2;s3;s4;s5], 
so_apply: x[s1;s2;s3], 
so_apply: x[s1;s2;s3;s4], 
apply: f a, 
so_apply: x[s], 
classderiv_ind: classderiv_ind, 
equal: s = t, 
base-deriv: BaseDef, 
isect:
x:A. B[x], 
uall:
[x:A]. B[x], 
so_lambda: 
x.t[x], 
member: t 
 T, 
prop:
, 
bag: bag(T), 
universe: Type, 
unit: Unit, 
classderiv: ClassDerivation, 
function: x:A 
 B[x]
Lemmas : 
uall_wf, 
classderiv_wf, 
bag_wf, 
member_wf, 
base-deriv_wf, 
unit_wf, 
type-monotone_wf, 
subtype_rel_wf, 
subtype_rel_sum, 
subtype_rel_simple_product, 
subtype_rel_product
\mforall{}[X1:\mBbbU{}\{j\}].  \mforall{}[x:ClassDerivation].  \mforall{}[base:args:BaseDef  {}\mrightarrow{}  X1].  \mforall{}[pair:fst:ClassDerivation
                                                                                                                                          {}\mrightarrow{}  snd:ClassDerivation
                                                                                                                                          {}\mrightarrow{}  rec1:X1
                                                                                                                                          {}\mrightarrow{}  rec2:X1
                                                                                                                                          {}\mrightarrow{}  X1].
\mforall{}[delay:X:ClassDerivation  {}\mrightarrow{}  dummy:Unit  {}\mrightarrow{}  rec1:X1  {}\mrightarrow{}  X1].  \mforall{}[comb:typ:Type
                                                                                                                                    {}\mrightarrow{}  argtype:Type
                                                                                                                                    {}\mrightarrow{}  arg:ClassDerivation
                                                                                                                                    {}\mrightarrow{}  fun:argtype  {}\mrightarrow{}  bag(typ)
                                                                                                                                    {}\mrightarrow{}  rec1:X1
                                                                                                                                    {}\mrightarrow{}  X1].
\mforall{}[reccomb:typ:Type
                    {}\mrightarrow{}  argtype:Type
                    {}\mrightarrow{}  arg:ClassDerivation
                    {}\mrightarrow{}  fun:argtype  {}\mrightarrow{}  bag(typ)  {}\mrightarrow{}  bag(typ)
                    {}\mrightarrow{}  rec1:X1
                    {}\mrightarrow{}  X1].
    (case(x)
      Base(args)=>  base[args]
      pair(fst,snd)  =>  rec1,rec2.pair[fst;snd;rec1;rec2]
      (X)'=>  rec1.delay[X;dummy;rec1]
      fun(arg:argtype):typ=>  rec1.comb[typ;argtype;arg;fun;rec1]
      fun(arg:argtype,  self'):typ=>  rec1.reccomb[typ;argtype;arg;fun;rec1]  \mmember{}  X1)
Date html generated:
2011_08_17-PM-04_23_25
Last ObjectModification:
2011_06_18-AM-11_35_14
Home
Index