[PostScript]
BinaryTree (E, T): trait
  % One of the many interesting tree structures
  introduces
    [__]: E -> T
    [__, __]: T, T -> T
    content: T -> E
    first, second: T -> T
    isLeaf: T -> Bool
  asserts
    T generated by [__], [__, __]
    T partitioned by content, first, second, isLeaf
    forall e: E, t1, t2: T
      content([e]) == e;
      first([t1, t2]) == t1;
      second([t1, t2]) == t2;
      isLeaf([e]);
      ~isLeaf([t1, t2])
  implies converts isLeaf
[Table of Contents] [Index]