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) ).
%--------------------------------------------------------------------------