Functional Programming & Proofs


Predicate calculus

The second language to consider is the one of the "predicates", i.e. boolean functions that corresponds to properties of some objects.

  1. More precisely, a "predicate" is a function returning a proposition.
    The domain of a predicate is called "Universe" of discourse U.
Man         : U->Prop
Mortal      : U->Prop
Man Socrate : Prop // to be read "Socrate is a Man"
  1. The logical language is then extended with a new construct: "forall x:U, Predicate(x)"
forall x:U, Man x => Mortal x // Every man is mortal, isn't it ?

9 - 12