TPTP Problem File: PRO029^16.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : PRO029^16 : TPTP v9.0.0. Released v8.1.0.
% Domain : Processes
% Problem : Phone user and company (requirement 1)
% Version : [BP13] axioms.
% English : Phone user U and phone company C have following relationship:
% + U does not pay a call before he has dialled it.
% + Both U nd C are able to prove when U is being charged.
% + U is able to prove that C can prove that U has made a call,
% + C is able to prove that U can prove that U has paid his call,
% + U is able to prove that C cannot prove that U has made a call,
% + C is able to prove that U cannot prove that he has paid his
% call, whenever these facts are true.
% Then the following requirement is true: From U's point of view,
% C should charge U only if he has made a call that is not yet paid.
% Refs : [HA97] Huima & Aura (1997), Using Multimodal Logic to Express
% : [RO12] Raths & Otten (2012), The QMLTP Problem Library for Fi
% : [BP13] Benzmueller & Paulson (2013), Quantified Multimodal Lo
% : [Ste22] Steen (2022), An Extensible Logic Embedding Tool for L
% Source : [TPTP]
% Names : MML011+1 [QMLTP]
% : MML011^1.016_s4_cumulative_rigid.p [QMLTP/5_THF]
% Status : Theorem
% Rating : 0.25 v9.0.0, 0.20 v8.2.0, 0.31 v8.1.0
% Syntax : Number of formulae : 36 ( 10 unt; 17 typ; 8 def)
% Number of atoms : 85 ( 8 equ; 0 cnn)
% Maximal formula atoms : 17 ( 4 avg)
% Number of connectives : 118 ( 1 ~; 1 |; 4 &; 107 @)
% ( 1 <=>; 4 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 4 avg)
% Number of types : 3 ( 2 usr)
% Number of type conns : 51 ( 51 >; 0 *; 0 +; 0 <<)
% Number of symbols : 16 ( 15 usr; 3 con; 0-3 aty)
% Number of variables : 31 ( 21 ^; 9 !; 1 ?; 31 :)
% SPC : TH0_THM_EQU_NAR
% Comments : This output was generated by embedproblem, version 1.7.1 (library
% version 1.3). Generated on Thu Apr 28 13:18:18 EDT 2022 using
% 'modal' embedding, version 1.5.2. Logic specification used:
% $modal == [$constants == $rigid,$quantification == $cumulative,
% $modalities == $modal_system_S4].
%------------------------------------------------------------------------------
thf(mworld,type,
mworld: $tType ).
thf(mindex,type,
mindex: $tType ).
thf(mrel_type,type,
mrel: mindex > mworld > mworld > $o ).
thf('#c_type',type,
'#c': mindex ).
thf('#u_type',type,
'#u': mindex ).
thf(mactual_type,type,
mactual: mworld ).
thf(mlocal_type,type,
mlocal: ( mworld > $o ) > $o ).
thf(mlocal_def,definition,
( mlocal
= ( ^ [Phi: mworld > $o] : ( Phi @ mactual ) ) ) ).
thf(mnot_type,type,
mnot: ( mworld > $o ) > mworld > $o ).
thf(mand_type,type,
mand: ( mworld > $o ) > ( mworld > $o ) > mworld > $o ).
thf(mor_type,type,
mor: ( mworld > $o ) > ( mworld > $o ) > mworld > $o ).
thf(mimplies_type,type,
mimplies: ( mworld > $o ) > ( mworld > $o ) > mworld > $o ).
thf(mequiv_type,type,
mequiv: ( mworld > $o ) > ( mworld > $o ) > mworld > $o ).
thf(mnot_def,definition,
( mnot
= ( ^ [A: mworld > $o,W: mworld] :
~ ( A @ W ) ) ) ).
thf(mand_def,definition,
( mand
= ( ^ [A: mworld > $o,B: mworld > $o,W: mworld] :
( ( A @ W )
& ( B @ W ) ) ) ) ).
thf(mor_def,definition,
( mor
= ( ^ [A: mworld > $o,B: mworld > $o,W: mworld] :
( ( A @ W )
| ( B @ W ) ) ) ) ).
thf(mimplies_def,definition,
( mimplies
= ( ^ [A: mworld > $o,B: mworld > $o,W: mworld] :
( ( A @ W )
=> ( B @ W ) ) ) ) ).
thf(mequiv_def,definition,
( mequiv
= ( ^ [A: mworld > $o,B: mworld > $o,W: mworld] :
( ( A @ W )
<=> ( B @ W ) ) ) ) ).
thf(mbox_type,type,
mbox: mindex > ( mworld > $o ) > mworld > $o ).
thf(mbox_def,definition,
( mbox
= ( ^ [R: mindex,Phi: mworld > $o,W: mworld] :
! [V: mworld] :
( ( mrel @ R @ W @ V )
=> ( Phi @ V ) ) ) ) ).
thf(mdia_type,type,
mdia: mindex > ( mworld > $o ) > mworld > $o ).
thf(mdia_def,definition,
( mdia
= ( ^ [R: mindex,Phi: mworld > $o,W: mworld] :
? [V: mworld] :
( ( mrel @ R @ W @ V )
& ( Phi @ V ) ) ) ) ).
thf('mrel_#c_reflexive',axiom,
! [W: mworld] : ( mrel @ '#c' @ W @ W ) ).
thf('mrel_#c_transitive',axiom,
! [W: mworld,V: mworld,U: mworld] :
( ( ( mrel @ '#c' @ W @ V )
& ( mrel @ '#c' @ V @ U ) )
=> ( mrel @ '#c' @ W @ U ) ) ).
thf('mrel_#u_reflexive',axiom,
! [W: mworld] : ( mrel @ '#u' @ W @ W ) ).
thf('mrel_#u_transitive',axiom,
! [W: mworld,V: mworld,U: mworld] :
( ( ( mrel @ '#u' @ W @ V )
& ( mrel @ '#u' @ V @ U ) )
=> ( mrel @ '#u' @ W @ U ) ) ).
thf(charge_decl,type,
charge: mworld > $o ).
thf(called_decl,type,
called: mworld > $o ).
thf(paid_decl,type,
paid: mworld > $o ).
thf(aciom_paid_charge,axiom,
mlocal @ ( mimplies @ paid @ called ) ).
thf(axiom_charge_u,axiom,
mlocal @ ( mimplies @ charge @ ( mand @ ( mbox @ '#u' @ charge ) @ ( mbox @ '#c' @ charge ) ) ) ).
thf(axiom_1,axiom,
mlocal @ ( mbox @ '#u' @ ( mimplies @ called @ ( mbox @ '#c' @ called ) ) ) ).
thf(axiom_2,axiom,
mlocal @ ( mbox @ '#c' @ ( mimplies @ paid @ ( mbox @ '#u' @ paid ) ) ) ).
thf(axiom_3,axiom,
mlocal @ ( mimplies @ ( mnot @ ( mbox @ '#c' @ called ) ) @ ( mbox @ '#u' @ ( mnot @ ( mbox @ '#c' @ called ) ) ) ) ).
thf(axiom_4,axiom,
mlocal @ ( mimplies @ ( mnot @ ( mbox @ '#u' @ paid ) ) @ ( mbox @ '#c' @ ( mnot @ ( mbox @ '#u' @ paid ) ) ) ) ).
thf(requirement_1,conjecture,
mlocal @ ( mimplies @ ( mnot @ ( mimplies @ charge @ ( mand @ called @ ( mnot @ paid ) ) ) ) @ ( mbox @ '#u' @ ( mnot @ ( mimplies @ charge @ ( mand @ called @ ( mnot @ paid ) ) ) ) ) ) ).
%------------------------------------------------------------------------------