TPTP Axioms File: SWV008^0.ax


%------------------------------------------------------------------------------
% File     : SWV008^0 : TPTP v9.0.0. Released v3.6.0.
% Domain   : Software Verification (Security)
% Axioms   : ICL logic based upon modal logic based upon simple type theory
% Version  : [Ben08] axioms.
% English  :

% Refs     : [GA08]  Garg & Abadi (2008), A Modal Deconstruction of Access
%          : [Ben08] Benzmueller (2008), Automating Access Control Logics i
%          : [BP09]  Benzmueller & Paulson (2009), Exploring Properties of
% Source   : [Ben08]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of formulae    :   19 (   9 unt;  10 typ;   9 def)
%            Number of atoms       :   31 (   9 equ;   0 cnn)
%            Maximal formula atoms :    1 (   1 avg)
%            Number of connectives :   15 (   0   ~;   0   |;   0   &;  15   @)
%                                         (   0 <=>;   0  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    1 (   1 avg;  15 nst)
%            Number of types       :    2 (   0 usr)
%            Number of type conns  :   43 (  43   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   18 (  17 usr;   7 con; 0-3 aty)
%            Number of variables   :   11 (  11   ^   0   !;   0   ?;  11   :)
% SPC      : 

% Comments : Requires LCL008^0.ax
%          : THF0 syntax
%------------------------------------------------------------------------------
%----The encoding of ICL logic employs only one accessibility relation which
%----introduce here as a constant 'rel'; we don't need multimodal logic.
thf(rel_type,type,
    rel: $i > $i > $o ).

%----ICL logic distiguishes between atoms and principals; for this we introduce
%----a predicate 'icl_atom' ...
thf(icl_atom_type,type,
    icl_atom: ( $i > $o ) > $i > $o ).

thf(icl_atom,definition,
    ( icl_atom
    = ( ^ [P: $i > $o] : ( mbox @ rel @ P ) ) ) ).

%---- ... and also a predicate 'icl_princ'
thf(icl_princ_type,type,
    icl_princ: ( $i > $o ) > $i > $o ).

thf(icl_princ,definition,
    ( icl_princ
    = ( ^ [P: $i > $o] : P ) ) ).

%----ICL and connective
thf(icl_and_type,type,
    icl_and: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(icl_and,definition,
    ( icl_and
    = ( ^ [A: $i > $o,B: $i > $o] : ( mand @ A @ B ) ) ) ).

%----ICL or connective
thf(icl_or_type,type,
    icl_or: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(icl_or,definition,
    ( icl_or
    = ( ^ [A: $i > $o,B: $i > $o] : ( mor @ A @ B ) ) ) ).

%----ICL implication connective
thf(icl_impl_type,type,
    icl_impl: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(icl_impl,definition,
    ( icl_impl
    = ( ^ [A: $i > $o,B: $i > $o] : ( mbox @ rel @ ( mimpl @ A @ B ) ) ) ) ).

%----ICL true connective
thf(icl_true_type,type,
    icl_true: $i > $o ).

thf(icl_true,definition,
    icl_true = mtrue ).

%----ICL false connective
thf(icl_false_type,type,
    icl_false: $i > $o ).

thf(icl_false,definition,
    icl_false = mfalse ).

%----ICL says connective
thf(icl_says_type,type,
    icl_says: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(icl_says,definition,
    ( icl_says
    = ( ^ [A: $i > $o,S: $i > $o] : ( mbox @ rel @ ( mor @ A @ S ) ) ) ) ).

%----An ICL formula is K-valid if its translation into modal logic is valid
thf(iclval_decl_type,type,
    iclval: ( $i > $o ) > $o ).

thf(icl_s4_valid,definition,
    ( iclval
    = ( ^ [X: $i > $o] : ( mvalid @ X ) ) ) ).

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