{ [k,L:Top].
    (rec-case(L) of
     [] => ff
     a::_ =>
      r.case a
     of inl(pa) =>
      case k
      of inl(qa) =>
       let x,y = pa 
       in let x1,y1 = x 
          in let x,y2 = qa 
             in let x2,y3 = x 
                in if x1=2 x2
                    then let x@0,y2@0 = y1 
                         in let x,y4 = y3 
                            in if x@0=2 x
                                then if y2@0=2 y4
                                      then if y=2 y2
                                            then tt
                                            else r
                                      else r
                                else r
                    else r
       | inr(_) =>
       r
      | inr(pb) =>
      case k of inl(_) => r | inr(qb) => if pb=2 qb then tt else r 
    ~ deq-member(KindDeq;k;L)) }

{ Proof }



Definitions occuring in Statement :  Kind-deq: KindDeq,  bfalse: ff,  btrue: tt,  uall: [x:A]. B[x],  top: Top,  spread: spread def,  decide: case b of inl(x) => s[x] | inr(y) => t[y],  list_ind: list_ind def,  sqequal: s ~ t,  deq-member: deq-member(eq;x;L),  atom_eq: atomeqn def
Definitions :  atom_eq: atomeqn def,  spread: spread def,  decide: case b of inl(x) => s[x] | inr(y) => t[y],  inr: inr x ,  deq-member: deq-member(eq;x;L),  strong-subtype: strong-subtype(A;B),  le: A  B,  ge: i  j ,  not: A,  less_than: a < b,  product: x:A  B[x],  and: P  Q,  uiff: uiff(P;Q),  guard: {T},  implies: P  Q,  bool: ,  bfalse: ff,  list_ind: list_ind def,  sq_type: SQType(T),  uimplies: b supposing a,  universe: Type,  subtype_rel: A r B,  isect: x:A. B[x],  uall: [x:A]. B[x],  top: Top,  all: x:A. B[x],  function: x:A  B[x],  equal: s = t,  sqequal: s ~ t,  member: t  T,  lambda: x.A[x],  eqof: eqof(d),  id-deq: IdDeq,  product-deq: product-deq(A;B;a;b),  CollapseTHEN: Error :CollapseTHEN,  tactic: Error :tactic
Lemmas :  top_wf,  bfalse_wf,  deq-member_wf,  bool_subtype_base,  bool_wf,  subtype_base_sq

\mforall{}[k,L:Top].
    (rec-case(L)  of
      []  =>  ff
      a::$_{}$  =>
        r.case  a
      of  inl(pa)  =>
        case  k
        of  inl(qa)  =>
          let  x,y  =  pa 
          in  let  x1,y1  =  x 
                in  let  x,y2  =  qa 
                      in  let  x2,y3  =  x 
                            in  if  x1=2  x2
                                    then  let  x@0,y2@0  =  y1 
                                              in  let  x,y4  =  y3 
                                                    in  if  x@0=2  x
                                                            then  if  y2@0=2  y4
                                                                        then  if  y=2  y2
                                                                                    then  tt
                                                                                    else  r
                                                                        else  r
                                                            else  r
                                    else  r
          |  inr($_{}$)  =>
          r
        |  inr(pb)  =>
        case  k  of  inl($_{}$)  =>  r  |  inr(qb)  =>  if  pb=2  qb  then  tt  else  r  \msim{}  deq-membe\000Cr(KindDeq;k;L))


Date html generated: 2011_08_10-AM-07_52_45
Last ObjectModification: 2011_06_18-AM-08_14_44

Home Index