|  | Who Cites discrete  equality? | 
|  | 
| discrete_equality | Def {T=  } == {eq:(T   T    )|  x,y:T.  (eq(x,y))   x = y } | 
 | |  | Thm*  T:Type. {T=  }  Type | 
|  | 
| sublist | Def L1(  eq)L2 ==  x  L1.  x(  eq) L2 | 
 | |  | Thm*  T:Type, eq:(T   T    ), L1,L2:T List. L1(  eq)L2  Type | 
 | |  | Thm*  T:Type, eq:{T=  }, L1,L2:T List. L1(  eq)L2  Type | 
 | |  | Thm*  T:Type, eq:{T   }, L1,L2:T List. L1(  eq)L2  Type | 
|  | 
| assert | Def  b == if b  True else False fi | 
 | |  | Thm*  b:  . b  Prop | 
|  | 
| iff | Def P   Q == (P   Q)  &  (P   Q) | 
 | |  | Thm*  A,B:Prop. (A   B)  Prop | 
|  | 
| sublist_2 | Def (   eq)(L,M) ==  x   L.x(  eq) M | 
 | |  | Thm*  T:Type, eq:(T   T    ). (   eq)  (T List)   (T List)    | 
|  | 
| rev_implies | Def P   Q == Q   P | 
 | |  | Thm*  A,B:Prop. (A   B)  Prop | 
|  | 
| is_member | Def x(  eq) L == (letrec is_member x eq L = (Case of L; nil  false  ; h.t  if eq(x,h)  true  else is_member(x,eq,t) fi)    ) (x,eq,L) | 
 | |  | Thm*  T:Type, eq:(T   T    ), u:T. u(  eq) nil    | 
 | |  | Thm*  T:Type, eq:(T   T    ), x:T, L:T List. x(  eq) L    | 
|  | 
| list_all | Def  x  L.P(x) == (letrec list_all L = (Case of L; nil  True ; h.t  P(h)  &  list_all(t))  ) (L) | 
 | |  | Thm*  T:Type, P:(T   Prop), L:T List.  x  L.P(x)  Type | 
 | |  | Thm*  T:Type, P:(T   Type).  x  nil.P(x)  Type | 
|  | 
| list_all_2 | Def  x   L.P(x) == (letrec all L = (Case of L; nil  true  ; h.t  P(h)   (all(t)))  ) (L) | 
 | |  | Thm*  T:Type, P:(T    ), L:T List.  x   L.P(x)    | 
|  | 
| letrec_body | Def = b  == b | 
|  | 
| letrec_arg | Def x b(x) (x) == b(x) | 
|  | 
| letrec | Def (letrec f b(f))  == b((letrec f b(f)) )  (recursive) | 
|  | 
| band | Def p   q == if p  q else false  fi | 
 | |  | Thm*  p,q:  . (p   q)    |