{ 
[X:
{j}]. 
[x:Expression]. 
[base:val:Atom 
 X]. 
[pair:fst:Expression
                                                            
 snd:Expression
                                                            
 rec1:X
                                                            
 rec2:X
                                                            
 X].
  
[apply:fun:Atom 
 arg:Expression 
 rec1:X 
 X].
    (case(x)
     leaf(val) => base[val]
     pair(fst,snd) => rec1,rec2.pair[fst;snd;rec1;rec2]
     fun(arg) => rec1.apply[fun;arg;rec1] 
 X) }
{ Proof }
Definitions occuring in Statement : 
expression_ind: expression_ind, 
expression: Expression, 
uall:
[x:A]. B[x], 
so_apply: x[s1;s2;s3;s4], 
so_apply: x[s1;s2;s3], 
so_apply: x[s], 
member: t 
 T, 
function: x:A 
 B[x], 
atom: Atom, 
universe: Type
Definitions : 
uall:
[x:A]. B[x], 
expression: Expression, 
member: t 
 T, 
expression_ind: expression_ind, 
so_apply: x[s], 
so_apply: x[s1;s2;s3;s4], 
so_apply: x[s1;s2;s3], 
type-monotone: Monotone(T.F[T]), 
uimplies: b supposing a, 
ycomb: Y, 
pi1: fst(t), 
pi2: snd(t)
Lemmas : 
subtype_rel_sum, 
subtype_rel_simple_product, 
expression_wf
\mforall{}[X:\mBbbU{}\{j\}].  \mforall{}[x:Expression].  \mforall{}[base:val:Atom  {}\mrightarrow{}  X].  \mforall{}[pair:fst:Expression
                                                                                                                    {}\mrightarrow{}  snd:Expression
                                                                                                                    {}\mrightarrow{}  rec1:X
                                                                                                                    {}\mrightarrow{}  rec2:X
                                                                                                                    {}\mrightarrow{}  X].  \mforall{}[apply:fun:Atom
                                                                                                                                                  {}\mrightarrow{}  arg:Expression
                                                                                                                                                  {}\mrightarrow{}  rec1:X
                                                                                                                                                  {}\mrightarrow{}  X].
    (case(x)
      leaf(val)  =>  base[val]
      pair(fst,snd)  =>  rec1,rec2.pair[fst;snd;rec1;rec2]
      fun(arg)  =>  rec1.apply[fun;arg;rec1]  \mmember{}  X)
Date html generated:
2011_08_17-PM-04_33_45
Last ObjectModification:
2011_06_18-AM-11_44_44
Home
Index