TPTP Axioms File: SWV010^0.ax


%------------------------------------------------------------------------------
% File     : SWV010^0 : TPTP v7.5.0. Released v3.7.0.
% Domain   : Software Verification (Security)
% Axioms   : Translation from Binder Logic (BL) to CS4
% Version  : [Gar08] axioms.
% English  :

% Refs     : [AM+01] Alechina et al. (2001), Categorical and Kripke Semanti
%          : [Gar08] Garg (2008), Principal-Centric Reasoning in Constructi
%          : [Gar09] Garg (2009), Email to Geoff Sutcliffe
% Source   : [Gar09]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of formulae    :   23 (   1 unit;  12 type;  10 defn)
%            Number of atoms       :  121 (  10 equality;  12 variable)
%            Maximal formula depth :    9 (   4 average)
%            Number of connectives :   20 (   0   ~;   0   |;   0   &;  20   @)
%                                         (   0 <=>;   0  =>;   0  <=;   0 <~>)
%                                         (   0  ~|;   0  ~&;   0  !!;   0  ??)
%            Number of type conns  :   46 (  46   >;   0   *;   0   +)
%            Number of symbols     :   25 (  12   :;   0  :=)
%            Number of variables   :   12 (   0 sgn;   0   !;   0   ?;  12   ^)
%                                         (  12   :;   0  :=;   0  !>;   0  ?*)
% SPC      : 

% Comments : Requires LCL008^0.ax LCL009^0.ax
%          : This translation is not perfectly correct, because BL does not
%            admit the Barcan formula, but its translation to BM4 does. That
%            will not make a difference to the policies, however.
%          : THF0 syntax
%------------------------------------------------------------------------------
%----We now introduce one predicate for each connective of BL, and define the
%----predicates.
%----An injection from principals to formulas. Has no definition, it's symbolic.
thf(princ_inj,type,(
    princ_inj: individuals > $i > $o )).

thf(bl_atom_decl,type,(
    bl_atom: ( $i > $o ) > $i > $o )).

thf(bl_princ_decl,type,(
    bl_princ: ( $i > $o ) > $i > $o )).

thf(bl_and_decl,type,(
    bl_and: ( $i > $o ) > ( $i > $o ) > $i > $o )).

thf(bl_or_decl,type,(
    bl_or: ( $i > $o ) > ( $i > $o ) > $i > $o )).

thf(bl_impl_decl,type,(
    bl_impl: ( $i > $o ) > ( $i > $o ) > $i > $o )).

thf(bl_all_decl,type,(
    bl_all: ( individuals > $i > $o ) > $i > $o )).

thf(bl_true_decl,type,(
    bl_true: $i > $o )).

thf(bl_false_decl,type,(
    bl_false: $i > $o )).

thf(bl_says_decl,type,(
    bl_says: individuals > ( $i > $o ) > $i > $o )).

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

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

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

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

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

thf(bl_all,definition,
    ( bl_all
    = ( ^ [A: individuals > $i > $o] :
          ( cs4_all @ A ) ) )).

thf(bl_true,definition,(
    bl_true = cs4_true )).

thf(bl_false,definition,(
    bl_false = cs4_false )).

thf(bl_says,definition,
    ( bl_says
    = ( ^ [K: individuals,A: $i > $o] :
          ( cs4_box @ ( cs4_impl @ ( bl_princ @ ( princ_inj @ K ) ) @ A ) ) ) )).

%----Validity in BL
thf(bl_valid_decl,type,(
    bl_valid: ( $i > $o ) > $o )).

thf(bl_valid_def,definition,(
    bl_valid = mvalid )).

%----Local authority (loca) - the strongest principal.
thf(loca_decl,type,(
    loca: individuals )).

%----Every principal must entail loca, this makes loca the strongest principal.
%----This is done by adding the CS4 axiom: forall K. [] (K => loca).
thf(loca_strength,axiom,
    ( cs4_valid
    @ ( cs4_all
      @ ^ [K: individuals] :
          ( cs4_impl @ ( princ_inj @ K ) @ ( princ_inj @ loca ) ) ) )).

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