TPTP Axioms File: MGT002+2.ax
%--------------------------------------------------------------------------
% File : MGT002+2 : TPTP v9.3.1. Released v9.3.0.
% Domain : Management
% Axioms : Axis decomposition, interval denotation, and verdict algebra
% Version : [Han98] axioms.
% English : Layer 1 axioms for the ODRL Axis Decomposition benchmark.
% Section A: interval membership (in_closed, in_lopen,
% in_ropen, in_open). Section B: per-axis verdicts
% (axis_conflict, axis_compatible, axis_subsumes). Section C:
% strong Kleene verdict algebra (conflict/compatible/unknown).
% Section D: box-level verdict aggregation (box_verdict/2).
% Requires ORD000-0.ax (loaded by problem file). For continuous
% domains also include ORD001-0.ax (density) before this file.
% Refs : [MC+26] Mustafa et al. (2026), Axis Decomposition for ODRL
% Source : [MC+26]
% Names : AXIS000-0.ax [MC+26]
% Status : Satisfiable
% Syntax : Number of formulae : 18 ( 6 unt; 0 def)
% Number of atoms : 53 ( 20 equ)
% Maximal formula atoms : 7 ( 2 avg)
% Number of connectives : 41 ( 6 ~; 6 |; 16 &)
% ( 7 <=>; 6 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 11 ( 10 usr; 0 prp; 1-4 aty)
% Number of functors : 4 ( 4 usr; 3 con; 0-2 aty)
% Number of variables : 36 ( 34 !; 2 ?)
% SPC : FOF_SAT_RFO_SEQ
% Comments : Requires ORD000-0.ax. Continuous domains also requires
% ORD001-0.ax.
% : Section B uses CLOSED intervals only -- for open/half-open
% boundary precision use Section A predicates + PREC000-0.ax.
% : GAP NOTE (lem:normalisation): the claim that the intersection
% of finitely many intervals on a totally ordered set is empty
% or a single interval is a meta-theorem not expressible as a
% FOL conjecture. It is supported by the transitivity and
% trichotomy axioms in ORD000-0.ax. No formula here.
%--------------------------------------------------------------------------
%----Section A: Interval membership
fof(in_closed,axiom,
! [X,A,B] :
( in_closed(X,A,B)
<=> ( leq(A,X)
& leq(X,B) ) ) ).
fof(in_lopen,axiom,
! [X,A,B] :
( in_lopen(X,A,B)
<=> ( less(A,X)
& leq(X,B) ) ) ).
fof(in_ropen,axiom,
! [X,A,B] :
( in_ropen(X,A,B)
<=> ( leq(A,X)
& less(X,B) ) ) ).
fof(in_open,axiom,
! [X,A,B] :
( in_open(X,A,B)
<=> ( less(A,X)
& less(X,B) ) ) ).
%----Section B: Per-axis verdicts
fof(axis_conflict_def,axiom,
! [I1lo,I1hi,I2lo,I2hi] :
( axis_conflict(I1lo,I1hi,I2lo,I2hi)
<=> ~ ? [X] :
( in_closed(X,I1lo,I1hi)
& in_closed(X,I2lo,I2hi) ) ) ).
fof(axis_compatible_def,axiom,
! [I1lo,I1hi,I2lo,I2hi] :
( axis_compatible(I1lo,I1hi,I2lo,I2hi)
<=> ? [X] :
( in_closed(X,I1lo,I1hi)
& in_closed(X,I2lo,I2hi) ) ) ).
fof(axis_subsumes_def,axiom,
! [I1lo,I1hi,I2lo,I2hi] :
( axis_subsumes(I1lo,I1hi,I2lo,I2hi)
<=> ! [X] :
( in_closed(X,I1lo,I1hi)
=> in_closed(X,I2lo,I2hi) ) ) ).
%----Section C: Verdict algebra
fof(conflict_is_verdict,axiom,
is_verdict(conflict) ).
fof(compatible_is_verdict,axiom,
is_verdict(compatible) ).
fof(unknown_is_verdict,axiom,
is_verdict(unknown) ).
fof(verdicts_distinct_cf_cp,axiom,
conflict != compatible ).
fof(verdicts_distinct_cf_un,axiom,
conflict != unknown ).
fof(verdicts_distinct_cp_un,axiom,
compatible != unknown ).
fof(verdict_enum,axiom,
! [V] :
( is_verdict(V)
=> ( V = conflict
| V = compatible
| V = unknown ) ) ).
%----Section D: Box-level verdict aggregation
fof(box_conflict,axiom,
! [V1,V2] :
( ( is_verdict(V1)
& is_verdict(V2)
& ( V1 = conflict
| V2 = conflict ) )
=> box_verdict(V1,V2) = conflict ) ).
fof(box_compatible,axiom,
! [V1,V2] :
( ( is_verdict(V1)
& is_verdict(V2)
& V1 = compatible
& V2 = compatible )
=> box_verdict(V1,V2) = compatible ) ).
fof(box_unknown,axiom,
! [V1,V2] :
( ( is_verdict(V1)
& is_verdict(V2)
& ( V1 = unknown
| V2 = unknown )
& V1 != conflict
& V2 != conflict )
=> box_verdict(V1,V2) = unknown ) ).
fof(box_verdict_total,axiom,
! [V1,V2] :
( ( is_verdict(V1)
& is_verdict(V2) )
=> ( box_verdict(V1,V2) = conflict
| box_verdict(V1,V2) = compatible
| box_verdict(V1,V2) = unknown ) ) ).
%--------------------------------------------------------------------------