TPTP Axioms File: LCL015^0.ax


%------------------------------------------------------------------------------
% File     : LCL015^0 : TPTP v7.4.0. Released v5.5.0.
% Domain   : Logic Calculi (Quantified multimodal logic, cumulative domains)
% Axioms   : Embedding of quantified multimodal logic in simple type theory
% Version  : [Ben12] axioms.
% English  : 

% Refs     : [Ben12] Benzmueller (2012), Email to Geoff Sutcliffe
% Source   : [Ben12]
% Names    : 

% Status   : Satisfiable
% Syntax   : Number of formulae    :   64 (   1 unit;  33 type;  30 defn)
%            Number of atoms       :  369 (  34 equality; 132 variable)
%            Maximal formula depth :   11 (   6 average)
%            Number of connectives :  128 (   4   ~;   4   |;   8   &; 103   @)
%                                         (   0 <=>;   9  =>;   0  <=;   0 <~>)
%                                         (   0  ~|;   0  ~&;   0  !!;   0  ??)
%            Number of type conns  :  170 ( 170   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   38 (  33   :)
%            Number of variables   :   83 (   2 sgn;  30   !;   7   ?;  46   ^)
%                                         (  83   :;   0  !>;   0  ?*)
%                                         (   0  @-;   0  @+)
% SPC      : THF_SAT_EQU

% Comments : LCL015^1 and this are essentially LCL013^0.ax with the following 
%            modifications to support cumulative domains:
%            - addition of a predicate exists_in_world
%            - use of this predicate in a modified definition mforall_ind
%            - use of this predicate in an added axiom for cumulative domains
%------------------------------------------------------------------------------
%----Declaration of additional base type mu
thf(mu_type,type,(
    mu: $tType )).

%----Equality
thf(qmltpeq_type,type,(
    qmltpeq: mu > mu > $i > $o )).

% originale Definition
%thf(qmltpeq,definition,
%    ( qmltpeq
%    = ( ^ [X: mu,Y: mu,W: $i] : ( X = Y ) ) )).

% erweiterte Leibnitz-Definition
%thf(qmltpeq,definition,
% ( qmltpeq
% = ( ^ [X: mu,Y: mu,W: $i] : (![P: mu > $i > $o]: ( (P @ X @ W) <=> (P @ Y @ W) ) ) ) )).

%  Leibnitz-Definition
%thf(qmltpeq,definition,
% ( qmltpeq
%  = ( ^ [X: mu,Y: mu,W: $i] : (! [P: mu > $o]: ( (P @ X) <=> (P @ Y) ) ) ) )).

thf(meq_prop_type,type,(
    meq_prop: ( $i > $o ) > ( $i > $o ) > $i > $o )).

thf(meq_prop,definition,
    ( meq_prop
    = ( ^ [X: $i > $o,Y: $i > $o,W: $i] :
          ( ( X @ W )
          = ( Y @ W ) ) ) )).

%----Modal operators not, or, box, Pi 
thf(mnot_type,type,(
    mnot: ( $i > $o ) > $i > $o )).

thf(mnot,definition,
    ( mnot
    = ( ^ [Phi: $i > $o,W: $i] :
          ~ ( Phi @ W ) ) )).

thf(mor_type,type,(
    mor: ( $i > $o ) > ( $i > $o ) > $i > $o )).

thf(mor,definition,
    ( mor
    = ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
          ( ( Phi @ W )
          | ( Psi @ W ) ) ) )).

thf(mbox_type,type,(
    mbox: ( $i > $i > $o ) > ( $i > $o ) > $i > $o )).

thf(mbox,definition,
    ( mbox
    = ( ^ [R: $i > $i > $o,Phi: $i > $o,W: $i] :
        ! [V: $i] :
          ( ~ ( R @ W @ V )
          | ( Phi @ V ) ) ) )).

thf(mforall_prop_type,type,(
    mforall_prop: ( ( $i > $o ) > $i > $o ) > $i > $o )).

thf(mforall_prop,definition,
    ( mforall_prop
    = ( ^ [Phi: ( $i > $o ) > $i > $o,W: $i] :
        ! [P: $i > $o] :
          ( Phi @ P @ W ) ) )).

%----Further modal operators
thf(mtrue_type,type,(
    mtrue: $i > $o )).

thf(mtrue,definition,
    ( mtrue
    = ( ^ [W: $i] : $true ) )).

thf(mfalse_type,type,(
    mfalse: $i > $o )).

thf(mfalse,definition,
    ( mfalse
    = ( mnot @ mtrue ) )).

thf(mand_type,type,(
    mand: ( $i > $o ) > ( $i > $o ) > $i > $o )).

thf(mand,definition,
    ( mand
    = ( ^ [Phi: $i > $o,Psi: $i > $o] :
          ( mnot @ ( mor @ ( mnot @ Phi ) @ ( mnot @ Psi ) ) ) ) )).

thf(mimplies_type,type,(
    mimplies: ( $i > $o ) > ( $i > $o ) > $i > $o )).

thf(mimplies,definition,
    ( mimplies
    = ( ^ [Phi: $i > $o,Psi: $i > $o] :
          ( mor @ ( mnot @ Phi ) @ Psi ) ) )).

thf(mimplied_type,type,(
    mimplied: ( $i > $o ) > ( $i > $o ) > $i > $o )).

thf(mimplied,definition,
    ( mimplied
    = ( ^ [Phi: $i > $o,Psi: $i > $o] :
          ( mor @ ( mnot @ Psi ) @ Phi ) ) )).

thf(mequiv_type,type,(
    mequiv: ( $i > $o ) > ( $i > $o ) > $i > $o )).

thf(mequiv,definition,
    ( mequiv
    = ( ^ [Phi: $i > $o,Psi: $i > $o] :
          ( mand @ ( mimplies @ Phi @ Psi ) @ ( mimplies @ Psi @ Phi ) ) ) )).

thf(mxor_type,type,(
    mxor: ( $i > $o ) > ( $i > $o ) > $i > $o )).

thf(mxor,definition,
    ( mxor
    = ( ^ [Phi: $i > $o,Psi: $i > $o] :
          ( mnot @ ( mequiv @ Phi @ Psi ) ) ) )).

thf(mdia_type,type,(
    mdia: ( $i > $i > $o ) > ( $i > $o ) > $i > $o )).

thf(mdia,definition,
    ( mdia
    = ( ^ [R: $i > $i > $o,Phi: $i > $o] :
          ( mnot @ ( mbox @ R @ ( mnot @ Phi ) ) ) ) )).

%--- (new for cumulative)
%---Declaration of existence predicate for simulating cumulative domain
thf(exists_in_world_type,type,(
    exists_in_world: mu > $i > $o )).

%----The domains are non-empty
thf(nonempty_ax,axiom,(
    ! [V: $i] :
    ? [X: mu] :
      ( exists_in_world @ X @ V ) )).

thf(mforall_ind_type,type,(
    mforall_ind: ( mu > $i > $o ) > $i > $o )).

%--- (new for cumulative)
thf(mforall_ind,definition,
    ( mforall_ind
    = ( ^ [Phi: mu > $i > $o,W: $i] :
        ! [X: mu] :
          ( ( exists_in_world @ X @ W )
         => ( Phi @ X @ W ) ) ) )).

%thf(mforall_ind,definition,
%    ( mforall_ind
%    = ( ^ [Phi: mu > $i > $o,W: $i] :
%        ! [X: mu] :
%          ( Phi @ X @ W ) ) )).

thf(mexists_ind_type,type,(
    mexists_ind: ( mu > $i > $o ) > $i > $o )).

thf(mexists_ind,definition,
    ( mexists_ind
    = ( ^ [Phi: mu > $i > $o] :
          ( mnot
          @ ( mforall_ind
            @ ^ [X: mu] :
                ( mnot @ ( Phi @ X ) ) ) ) ) )).

thf(mexists_prop_type,type,(
    mexists_prop: ( ( $i > $o ) > $i > $o ) > $i > $o )).

thf(mexists_prop,definition,
    ( mexists_prop
    = ( ^ [Phi: ( $i > $o ) > $i > $o] :
          ( mnot
          @ ( mforall_prop
            @ ^ [P: $i > $o] :
                ( mnot @ ( Phi @ P ) ) ) ) ) )).

%----Definition of properties of accessibility relations
thf(mreflexive_type,type,(
    mreflexive: ( $i > $i > $o ) > $o )).

thf(mreflexive,definition,
    ( mreflexive
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i] :
          ( R @ S @ S ) ) )).

thf(msymmetric_type,type,(
    msymmetric: ( $i > $i > $o ) > $o )).

thf(msymmetric,definition,
    ( msymmetric
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i] :
          ( ( R @ S @ T )
         => ( R @ T @ S ) ) ) )).

thf(mserial_type,type,(
    mserial: ( $i > $i > $o ) > $o )).

thf(mserial,definition,
    ( mserial
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i] :
        ? [T: $i] :
          ( R @ S @ T ) ) )).

thf(mtransitive_type,type,(
    mtransitive: ( $i > $i > $o ) > $o )).

thf(mtransitive,definition,
    ( mtransitive
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( ( R @ S @ T )
            & ( R @ T @ U ) )
         => ( R @ S @ U ) ) ) )).

thf(meuclidean_type,type,(
    meuclidean: ( $i > $i > $o ) > $o )).

thf(meuclidean,definition,
    ( meuclidean
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( ( R @ S @ T )
            & ( R @ S @ U ) )
         => ( R @ T @ U ) ) ) )).

thf(mpartially_functional_type,type,(
    mpartially_functional: ( $i > $i > $o ) > $o )).

thf(mpartially_functional,definition,
    ( mpartially_functional
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( ( R @ S @ T )
            & ( R @ S @ U ) )
         => ( T = U ) ) ) )).

thf(mfunctional_type,type,(
    mfunctional: ( $i > $i > $o ) > $o )).

thf(mfunctional,definition,
    ( mfunctional
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i] :
        ? [T: $i] :
          ( ( R @ S @ T )
          & ! [U: $i] :
              ( ( R @ S @ U )
             => ( T = U ) ) ) ) )).

thf(mweakly_dense_type,type,(
    mweakly_dense: ( $i > $i > $o ) > $o )).

thf(mweakly_dense,definition,
    ( mweakly_dense
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( R @ S @ T )
         => ? [U: $i] :
              ( ( R @ S @ U )
              & ( R @ U @ T ) ) ) ) )).

thf(mweakly_connected_type,type,(
    mweakly_connected: ( $i > $i > $o ) > $o )).

thf(mweakly_connected,definition,
    ( mweakly_connected
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( ( R @ S @ T )
            & ( R @ S @ U ) )
         => ( ( R @ T @ U )
            | ( T = U )
            | ( R @ U @ T ) ) ) ) )).

thf(mweakly_directed_type,type,(
    mweakly_directed: ( $i > $i > $o ) > $o )).

thf(mweakly_directed,definition,
    ( mweakly_directed
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( ( R @ S @ T )
            & ( R @ S @ U ) )
         => ? [V: $i] :
              ( ( R @ T @ V )
              & ( R @ U @ V ) ) ) ) )).

%----Definition of validity
thf(mvalid_type,type,(
    mvalid: ( $i > $o ) > $o )).

thf(mvalid,definition,
    ( mvalid
    = ( ^ [Phi: $i > $o] :
        ! [W: $i] :
          ( Phi @ W ) ) )).

%----Definition of satisfiability
thf(msatisfiable_type,type,(
    msatisfiable: ( $i > $o ) > $o )).

thf(msatisfiable,definition,
    ( msatisfiable
    = ( ^ [Phi: $i > $o] :
        ? [W: $i] :
          ( Phi @ W ) ) )).

%----Definition of countersatisfiability
thf(mcountersatisfiable_type,type,(
    mcountersatisfiable: ( $i > $o ) > $o )).

thf(mcountersatisfiable,definition,
    ( mcountersatisfiable
    = ( ^ [Phi: $i > $o] :
        ? [W: $i] :
          ~ ( Phi @ W ) ) )).

%----Definition of invalidity
thf(minvalid_type,type,(
    minvalid: ( $i > $o ) > $o )).

thf(minvalid,definition,
    ( minvalid
    = ( ^ [Phi: $i > $o] :
        ! [W: $i] :
          ~ ( Phi @ W ) ) )).

%------------------------------------------------------------------------------