TPTP Axioms File: MGT002+5.ax


%--------------------------------------------------------------------------
% File     : MGT002+5 : TPTP v9.3.1. Released v9.3.0.
% Domain   : Management
% Axioms   : Role-free endpoint precedence for the Conflict Criterion
% Version  : [Han98] axioms.
% English  : Defines prec(U,L,CU,CL): upper endpoint U precedes lower
%            endpoint L under closedness flags CU,CL in {c,o}.
%            Four explicit cases (cc/oc/co/oo) avoid the label-asymmetry
%            bug that arises when the definition references 'first/second
%            interval'. Both u1 prec l2 and u2 prec l1 use the same rules.
%            Also defines disjoint/8 encoding the full Conflict Criterion
%            and operator tag axioms (lower_tag/2, upper_tag/2).

% Refs     : [MC+26] Mustafa et al. (2026), Axis Decomposition for ODRL
% Source   : [MC+26]
% Names    : PREC000-0.ax [MC+26]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   19 (  13 unt;   0 def)
%            Number of atoms       :   27 (   3 equ)
%            Maximal formula atoms :    3 (   1 avg)
%            Number of connectives :    9 (   1   ~;   2   |;   0   &)
%                                         (   5 <=>;   1  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   11 (   2 avg)
%            Maximal term depth    :    1 (   1 avg)
%            Number of predicates  :    8 (   7 usr;   0 prp; 1-8 aty)
%            Number of functors    :    7 (   7 usr;   7 con; 0-0 aty)
%            Number of variables   :   17 (  17   !;   0   ?)
% SPC      : FOF_SAT_RFO_SEQ

% Comments : Requires AXIS001+1.ax and ORD000-0.ax. Continuous domains
%            also requires ORD001-0.ax.
%--------------------------------------------------------------------------
%----Endpoint types
fof(ep_c_is_ep,axiom,
    is_ep_type(c) ).

fof(ep_o_is_ep,axiom,
    is_ep_type(o) ).

fof(ep_types_distinct,axiom,
    c != o ).

fof(ep_type_enum,axiom,
    ! [T] :
      ( is_ep_type(T)
     => ( T = c
        | T = o ) ) ).

%----prec/4: role-free endpoint separation
%----prec(U, L, CU, CL): upper U is separated from lower L under flags CU,CL.
%----  (c,c): both attained -> need strict separation: U < L
%----  any o: boundary excluded -> weak separation suffices: U <= L
fof(prec_cc,axiom,
    ! [U,L] :
      ( prec(U,L,c,c)
    <=> less(U,L) ) ).

fof(prec_oc,axiom,
    ! [U,L] :
      ( prec(U,L,o,c)
    <=> leq(U,L) ) ).

fof(prec_co,axiom,
    ! [U,L] :
      ( prec(U,L,c,o)
    <=> leq(U,L) ) ).

fof(prec_oo,axiom,
    ! [U,L] :
      ( prec(U,L,o,o)
    <=> leq(U,L) ) ).

%----Conflict Criterion
%----Arguments: lo1, hi1, clo1, chi1, lo2, hi2, clo2, chi2
fof(disjoint_def,axiom,
    ! [L1,U1,CL1,CU1,L2,U2,CL2,CU2] :
      ( disjoint(L1,U1,CL1,CU1,L2,U2,CL2,CU2)
    <=> ( prec(U1,L2,CU1,CL2)
        | prec(U2,L1,CU2,CL1) ) ) ).

%----Operator tag extraction
%----Operator  lower_tag  upper_tag  Interval shape
%------------  ---------  ---------  ----------------------------------
%----eq        c          c          [v, v]
%----lteq      c          c          [inf D_k, v]   (ray bound closed)
%----gteq      c          c          [v, sup D_k]   (ray bound closed)
%----lt        c          o          [inf D_k, v)   (v is open)
%----gt        o          c          (v, sup D_k]   (v is open)
fof(lower_tag_eq,axiom,
    lower_tag(eq,c) ).

fof(lower_tag_lteq,axiom,
    lower_tag(lteq,c) ).

fof(lower_tag_gteq,axiom,
    lower_tag(gteq,c) ).

fof(lower_tag_lt,axiom,
    lower_tag(lt,c) ).

fof(lower_tag_gt,axiom,
    lower_tag(gt,o) ).

fof(upper_tag_eq,axiom,
    upper_tag(eq,c) ).

fof(upper_tag_lteq,axiom,
    upper_tag(lteq,c) ).

fof(upper_tag_gteq,axiom,
    upper_tag(gteq,c) ).

fof(upper_tag_lt,axiom,
    upper_tag(lt,o) ).

fof(upper_tag_gt,axiom,
    upper_tag(gt,c) ).

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