Higher Order Logic

Old Proposals, which influenced the development


Benzmüller, Brown version
Proposed Grammar 1:
----------
<term>               ::= $type | $o | $i | $true | $false | $equal | $description | $choice |
                         <variable> | 
                         <unary operator> | <binary operator> |
                         <quantifier> [<variables>] : <term> | 
                         <unary operator> <term> |
                         (<term> <binary operator> <term>) 
<variables>          ::= <typed variable> | <typed variable>,<variables>
<typed variable>     ::= <variable>:<term>
<variable>           ::= <upper word>
<quantifier>         ::= ! | ? | ^
<unary operator>     ::= ~
<binary operator>    ::= & | <vline> | => | <= | <=> | ~& | ~vline | <~> | : | @ | > | = | !=

Examples:
----------
hof(subset,definition,
    ^ [A:$type] :
    ^ [P:(A > $o),R:(A > $o)] : 
    ! [X:A] :
      ( ( P @ X )
     => ( R @ X ) )  ).

hof(set_union,definition,
    ^ [A:$type] :
    ^ [D:((A > $o) > $o),X:A] :
    ? [S:(A > $o)] :
      ( ( D @ S ) 
      & ( S @ X ) )  ).

hof(thm616A,conjecture,
    ! [A:$type] :
      ( ( ! [G:((A > $o) > $o)] :
            ( ( ( ( subset 
                  @ ( A > $o ) ) 
                @ G ) @ open ) 
           => ( open 
              @ ( ( setunion @ A ) @ G ) ) ) ) 
     => ( ! [B:(A > $o)] : 
            ( ( ! [X:A] :
                  ( ( B @ X ) 
                 => ( ? [D:(A > $o)] :
                        ( ( ( open @ D ) 
                          & ( D @ X ) ) 
                        & ( ( ( subset @ A ) @ D ) @ B ) ) ) ) ) 
           => ( open @ B ) ) ) )  ).

hof(a,conjecture,
    ! [P:(($o > $o) > $o)] :
      ( ( P @ (~) ) 
     => ( P 
        @ ^ [X:$o] : ( ~ ( ~ ( ~ X ) ) ) ) )  ).

hof(b,conjecture,
    ! [P:(($o > ($o > $o)) > $o)] :
      ( ( P @ (|) ) 
     => ( P 
        @ ^ [X:$o,Y:$o] :
            ( Y | X ) ) )  ).

hof(c,conjecture,
    ! [P:(($o > $o) > $o)] :
      ( ( P 
        @ ( (|) @ $true ) ) 
     => ( P 
        @ ^ [X:$o] : $true) )  ).

hof(d,conjecture,
    ! [B:$type,A:$type] :
    ! [P:(((B > A) > ((B > A) > $o)) > $o)] :
      ( ( P 
        @ ( (=)
          @ ( B > A ) ) )
     => ( P 
        @ ^ [X:(B > A),Y:(B > A)] :
            ( Y = X ) ) )  ).


Benzmüller, Sutcliffe; Schürmann version
%------------------------------------------------------------------------------
% File     : SYN001^1 : TPTP v4.0.0. Released v4.0.0.
% Domain   : Syntactic
% Problem  : 
% Version  : With type definitions
% English  : 

% Refs     : [BB05]  Benzmueller & Brown (2005), A Structured Set of Higher
%          : Hindley (or Seldin) ... Basic Simple Type Theory 
% Source   : [BB05]
% Names    : 

% Status   : Theorem (SEMANTICS)
% Rating   : ? v4.0.0
% Syntax   : 

% Comments : 
%------------------------------------------------------------------------------
hof(nat_defn,type_definition,
    ! [A] : nat(A) = ((A > A) > A > A)   ).

hof(successor_defn,definition,
    ( successor
    = ( ! [A:$type] :
        ^ [Z:nat(A),X:(A > A),Y:A] : 
          (X @ (Z @ X @ Y)) ) )   ).

%succ = [A:tp]
%    \ [z:tm ((A --> A) --> A --> A)]
%    \ [x:tm (A --> A)]
%    \ [y:tm A] x @ (z @ x @ y).

hof(zero,definition,
    ( zero
    = ( ! [A:$type] :
        ^ [F:(A>A),Y:A] : Y ) )   ).
   
hof(one,definition,
    ( one
    = ( ! [A:$type] :
        ^ [F:(A>A),Y:A] : (F @ Y) ) )   ).
   
hof(plus_defn,definition,
    ( plus
    = ( ! [A:$type] :
        ^ [M:nat(A),N:nat(A)] : 
        ^ [X:(A>A),Y:A] :
          (M @ X @ (N @ X @ Y)) ) )   ).

hof(times_defn,definition,
    ( times
    = ( ! [A:$type] :
        ^ [M:nat(A),N:nat(A)] : 
          (N @ (plus @ M) @ zero) ) )   ).

hof(carstens_times_defn,definition,
    ( times
    = ! [A:$type] :
      ^ [M:nat(A),N:nat(A),S:nat(A),Z:nat(A)] :
        (M @ (N @ S) @ Z) )   ).

hof(prove_this,conjecture,
    ! [I:i] :
    ? [N:nat(I)] : 
      (times @ N @ one) = ( ^ [F:(I>I)] : F )   ).
%------------------------------------------------------------------------------