F(x) where 
F(0) = zero  
F(pre.body) = comm[pre; body; rec1] where  
               rec1 = F(body)   
F(left + right) = option[left; right; rec1; rec2] where  
                   rec1 = F(left)  
                   rec2 = F(right)  
F(left | right) = par[left; right; rec1; rec2] where  
                   rec1 = F(left)  
                   rec2 = F(right)  
F(!body) = rep[body; rec1] where  
            rec1 = F(body)  
F(new name.body) = new[name; body; rec1] where  
                    rec1 = F(body) ==
  Y 
  (pi_term_ind,x.
    case x
    of inl(x) =zero
     | inr(x) =case x
                 of inl(x) =comm[fst(x); snd(x); pi_term_ind (snd(x))]
                  | inr(x) =case x
                              of inl(x) =option[fst(x); snd(x); pi_term_ind 
                                                                  (fst(x)); ... 
                                                                            ...]
                               | inr(x) =case x
                                           of inl(x) =par[...; ...; ...; ... 
                                                                           ...]
                                            | inr(x) =case x
                                                        of inl(x) =rep[x; ... 
                                                                            x]
                                                         | inr(x) =...) 
  x



Definitions :  ycomb: Y lambda: x.A[x] decide: case b of inl(x) =s[x] | inr(y) =t[y] pi1: fst(t) apply: f a pi2: snd(t)
FDL editor aliases :  pi_ind

F(x)  where 
F(0)  =  zero   
F(pre.body)  =  comm[pre;  body;  rec1]  where   
                              rec1  =  F(body)     
F(left  +  right)  =  option[left;  right;  rec1;  rec2]  where   
                                      rec1  =  F(left)   
                                      rec2  =  F(right)   
F(left  |  right)  =  par[left;  right;  rec1;  rec2]  where   
                                      rec1  =  F(left)   
                                      rec2  =  F(right)   
F(!body)  =  rep[body;  rec1]  where   
                        rec1  =  F(body)   
F(new  name.body)  =  new[name;  body;  rec1]  where   
                                        rec1  =  F(body)  ==
    Y 
    (\mlambda{}pi\_term$_{ind}$,x.
        case  x
        of  inl(x)  =>  zero
          |  inr(x)  =>  case  x
                                  of  inl(x)  =>  comm[fst(x);  snd(x);  pi\_term$_{ind}$  (snd(x))]
                                    |  inr(x)  =>  case  x
                                                            of  inl(x)  =>  option[fst(x);  snd(x);  pi\_term$_{ind}\mbackslash{}ff2\000C
4  (fst(x));  pi\_term$_{ind}$ 
                                                                                                                                                                              (snd(x))]
                                                              |  inr(x)  =>  case  x
                                                                                      of  inl(x)  =>  par[fst(x);  snd(x);  pi\_term$_{in\000C
d}$ 
                                                                                                                                                        (fst(x));  pi\_term$\mbackslash{}f\000C
f5f{ind}$ 
                                                                                                                                                                            (snd(x))]
                                                                                        |  inr(x)  =>  case  x
                                                                                                                of  inl(x)  =>  rep[x;  pi\_term$_{in\000C
d}$  x]
                                                                                                                  |  inr(x)  =>  new[fst(x);  snd(x);  pi\_term\mbackslash{}ff2\000C
4_{ind}$ 
                                                                                                                                                                                  (snd(x))]) 
    x


Date html generated: 2010_08_27-PM-08_37_16
Last ObjectModification: 2010_02_11-PM-06_48_52

Home Index