#line 145 "/home/travis/build/felix-lang/felix/src/packages/logic.fdoc"
  
  // Some operations on predicates.
  // These also automatically apply to relations, but just taking
  // the argument as a tuple.
  
  open class Predicate[T]
  {
     fun land (f:T->bool,g:T->bool) =>
       fun (x:T) => f x and g x
     ;
  
     fun lor (f:T->bool,g:T->bool) =>
       fun (x:T) => f x or g x
     ;
  
     fun implies (f:T->bool,g:T->bool) =>
       fun (x:T) => f x implies g x
     ;
  
     fun lnot (f:T->bool) =>
       fun (x:T) => not (f x)
     ;
  
  }