Nuprl Definition : mrec_ind

mrec_ind(L;h;x) ==
  let i,x1 = x 
  in letrec r(i)=λx.(h i (fst(x)) (snd(x)) 
                     let L' = case apply-alist(AtomDeq;L;i)
                               of inl(L2) =>
                               case apply-alist(AtomDeq;L2;fst(x)) of inl(as) => as | inr(_) => Ax
                               | inr(_) =>
                               Ax in
                         λj.case L'[j]
                             of inl(x@0) =>
                             case x@0 of inl(x1) => r x1 snd(x).j | inr(y) => λi@0.(r y snd(x).j[i@0])
                             | inr(y) =>
                             Ax) in
      r(i) 
     x1



Definitions occuring in Statement :  select-tuple: x.n,  apply-alist: apply-alist(eq;L;x),  select: L[n],  length: ||as||,  atom-deq: AtomDeq,  genrec-ap: genrec-ap,  let: let,  pi1: fst(t),  pi2: snd(t),  apply: f a,  lambda: λx.A[x],  spread: spread def,  decide: case b of inl(x) => s[x] | inr(y) => t[y],  axiom: Ax
Definitions occuring in definition :  spread: spread def,  genrec-ap: genrec-ap,  let: let,  apply-alist: apply-alist(eq;L;x),  atom-deq: AtomDeq,  pi1: fst(t),  decide: case b of inl(x) => s[x] | inr(y) => t[y],  lambda: λx.A[x],  apply: f a,  select: L[n],  select-tuple: x.n,  length: ||as||,  pi2: snd(t),  axiom: Ax
FDL editor aliases :  mrec_ind

Latex:
mrec\_ind(L;h;x)  ==
    let  i,x1  =  x 
    in  letrec  r(i)=\mlambda{}x.(h  i  (fst(x))  (snd(x)) 
                                          let  L'  =  case  apply-alist(AtomDeq;L;i)
                                                              of  inl(L2)  =>
                                                              case  apply-alist(AtomDeq;L2;fst(x))  of  inl(as)  =>  as  |  inr($_\000C{}$)  =>  Ax
                                                              |  inr($_{}$)  =>
                                                              Ax  in
                                                  \mlambda{}j.case  L'[j]
                                                          of  inl(x@0)  =>
                                                          case  x@0
                                                            of  inl(x1)  =>
                                                            r  x1  snd(x).j
                                                            |  inr(y)  =>
                                                            \mlambda{}i@0.(r  y  snd(x).j[i@0])
                                                          |  inr(y)  =>
                                                          Ax)  in
            r(i) 
          x1



Date html generated: 2019_06_20-PM-02_16_21
Last ObjectModification: 2019_02_28-PM-06_07_55

Theory : tuples


Home Index