%------------------------------------------------------------------------------
% File : LisaST---0.9
% Problem : GEO076-4 : TPTP v9.3.1. Released v1.0.0.
% Transfm : none
% Format : tptp:raw
% Command : casc-portfolio.sh -t 300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% Computer : n016.cluster.edu
% Model : x86_64 x86_64
% CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory : 8046.5625MB
% OS : Linux 6.8.0-71-generic
% CPULimit : 300s
% WCLimit : 300s
% DateTime : Sun Sep 27 07:14:06 AM UTC 2026
% Result : Unsatisfiable 14.63s 23.37s
% Output : CNFRefutation 14.63s
% Verified :
% SZS Type : Refutation
% Derivation depth : 26
% Number of leaves : 14
% Syntax : Number of clauses : 76 ( 9 unt; 41 nHn; 76 RR)
% Number of literals : 268 ( 107 equ; 139 neg)
% Maximal clause size : 10 ( 3 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 5 ( 3 usr; 1 prp; 0-2 aty)
% Number of functors : 6 ( 6 usr; 2 con; 0-2 aty)
% Number of variables : 63 ( 0 sgn)
% Comments :
%------------------------------------------------------------------------------
cnf(there_is_a_point,hypothesis,
point('a$upoint') ).
cnf(prove_point_is_not_on_every_line,negated_conjecture,
( on('a$upoint',X0)
| ~ line(X0) ) ).
cnf(axiom_G1A,axiom,
( ~ point(X1)
| ~ point(X0)
| X0 = X1
| on(X0,'line$ufrom$uto'(X0,X1)) ) ).
cnf(axiom_G1B,axiom,
( ~ point(X0)
| ~ point(X1)
| X1 = X0
| on(X0,'line$ufrom$uto'(X1,X0)) ) ).
cnf(axiom_G1C,axiom,
( ~ point(X1)
| ~ point(X0)
| X0 = X1
| line('line$ufrom$uto'(X0,X1)) ) ).
cnf(axiom_G1D,axiom,
( ~ line(X3)
| ~ line(X1)
| ~ point(X2)
| ~ point(X0)
| ~ on(X2,X3)
| ~ on(X0,X3)
| X1 = X3
| ~ on(X2,X1)
| X0 = X2
| ~ on(X0,X1) ) ).
cnf(axiom_G2A,axiom,
( ~ line(X0)
| on('point$u1$uon$uline'(X0),X0) ) ).
cnf(axiom_G2B,axiom,
( ~ line(X0)
| on('point$u2$uon$uline'(X0),X0) ) ).
cnf(axiom_G2C,axiom,
( ~ line(X0)
| point('point$u1$uon$uline'(X0)) ) ).
cnf(axiom_G2D,axiom,
( ~ line(X0)
| point('point$u2$uon$uline'(X0)) ) ).
cnf(axiom_G2E,axiom,
( ~ line(X0)
| 'point$u1$uon$uline'(X0) != 'point$u2$uon$uline'(X0) ) ).
cnf(axiom_G3A,axiom,
( ~ line(X0)
| ~ on('point$unot$uon$uline'(X0),X0) ) ).
cnf(axiom_G3B,axiom,
( ~ line(X0)
| point('point$unot$uon$uline'(X0)) ) ).
cnf(axiom_G4A,axiom,
line('at$uleast$uone$uline') ).
cnf(c0,plain,
point('a$upoint'),
inference(clausification,[status(esa)],[there_is_a_point]) ).
cnf(c1,plain,
( on('a$upoint',X0)
| ~ line(X0) ),
inference(clausification,[status(esa)],[prove_point_is_not_on_every_line]) ).
cnf(c2,plain,
( ~ point(X1)
| ~ point(X0)
| X0 = X1
| on(X0,'line$ufrom$uto'(X0,X1)) ),
inference(clausification,[status(esa)],[axiom_G1A]) ).
cnf(c3,plain,
( ~ point(X0)
| ~ point(X1)
| X1 = X0
| on(X0,'line$ufrom$uto'(X1,X0)) ),
inference(clausification,[status(esa)],[axiom_G1B]) ).
cnf(c4,plain,
( ~ point(X1)
| ~ point(X0)
| X0 = X1
| line('line$ufrom$uto'(X0,X1)) ),
inference(clausification,[status(esa)],[axiom_G1C]) ).
cnf(c5,plain,
( ~ line(X1)
| ~ on(X2,X0)
| ~ on(X2,X1)
| ~ point(X2)
| ~ on(X3,X0)
| ~ on(X3,X1)
| ~ point(X3)
| X2 = X3
| ~ line(X0)
| X0 = X1 ),
inference(clausification,[status(esa)],[axiom_G1D]) ).
cnf(c6,plain,
( ~ line(X0)
| on('point$u1$uon$uline'(X0),X0) ),
inference(clausification,[status(esa)],[axiom_G2A]) ).
cnf(c7,plain,
( ~ line(X0)
| on('point$u2$uon$uline'(X0),X0) ),
inference(clausification,[status(esa)],[axiom_G2B]) ).
cnf(c8,plain,
( ~ line(X0)
| point('point$u1$uon$uline'(X0)) ),
inference(clausification,[status(esa)],[axiom_G2C]) ).
cnf(c9,plain,
( ~ line(X0)
| point('point$u2$uon$uline'(X0)) ),
inference(clausification,[status(esa)],[axiom_G2D]) ).
cnf(c10,plain,
( ~ line(X0)
| 'point$u1$uon$uline'(X0) != 'point$u2$uon$uline'(X0) ),
inference(clausification,[status(esa)],[axiom_G2E]) ).
cnf(c11,plain,
( ~ line(X0)
| ~ on('point$unot$uon$uline'(X0),X0) ),
inference(clausification,[status(esa)],[axiom_G3A]) ).
cnf(c12,plain,
( ~ line(X0)
| point('point$unot$uon$uline'(X0)) ),
inference(clausification,[status(esa)],[axiom_G3B]) ).
cnf(c13,plain,
line('at$uleast$uone$uline'),
inference(clausification,[status(esa)],[axiom_G4A]) ).
cnf(d0,plain,
( ~ line(X1)
| ~ on('a$upoint',X0)
| ~ on(X2,X1)
| ~ on(X2,X0)
| ~ line(X1)
| ~ line(X0)
| ~ point('a$upoint')
| ~ point(X2)
| X2 = 'a$upoint'
| X0 = X1 ),
inference(resolution,[status(thm)],[c5,c1]) ).
cnf(d1,plain,
( ~ on('a$upoint',X1)
| ~ on(X0,X1)
| ~ on(X0,X2)
| ~ line(X1)
| ~ line(X2)
| ~ point(X0)
| X1 = X2
| X0 = 'a$upoint' ),
inference(resolution,[status(thm)],[c0,d0]) ).
cnf(d2,plain,
( ~ line(X0)
| ~ on(X2,X0)
| ~ on(X2,X1)
| ~ line(X0)
| ~ line(X1)
| ~ point(X2)
| X2 = 'a$upoint'
| X0 = X1 ),
inference(resolution,[status(thm)],[d1,c1]) ).
cnf(d3,plain,
( ~ point(X1)
| ~ point(X0)
| X0 = X1
| ~ on(X0,X2)
| ~ line('line$ufrom$uto'(X0,X1))
| ~ line(X2)
| ~ point(X0)
| 'line$ufrom$uto'(X0,X1) = X2
| X0 = 'a$upoint' ),
inference(resolution,[status(thm)],[d2,c2]) ).
cnf(d4,plain,
( ~ point(X0)
| ~ point(X1)
| X0 = X1
| ~ on(X0,X2)
| ~ line(X2)
| ~ point(X0)
| ~ point(X1)
| 'line$ufrom$uto'(X0,X1) = X2
| X0 = 'a$upoint'
| X0 = X1 ),
inference(resolution,[status(thm)],[d3,c4]) ).
cnf(d5,plain,
( ~ line(X0)
| ~ line(X0)
| ~ point('point$u1$uon$uline'(X0))
| ~ point(X1)
| 'line$ufrom$uto'('point$u1$uon$uline'(X0),X1) = X0
| 'point$u1$uon$uline'(X0) = 'a$upoint'
| 'point$u1$uon$uline'(X0) = X1 ),
inference(resolution,[status(thm)],[d4,c6]) ).
cnf(d6,plain,
( ~ line(X0)
| ~ line(X0)
| ~ point(X1)
| 'point$u1$uon$uline'(X0) = 'a$upoint'
| 'point$u1$uon$uline'(X0) = X1
| 'line$ufrom$uto'('point$u1$uon$uline'(X0),X1) = X0 ),
inference(resolution,[status(thm)],[d5,c8]) ).
cnf(d7,plain,
( ~ point(X0)
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| 'point$u1$uon$uline'('at$uleast$uone$uline') = X0
| 'line$ufrom$uto'('point$u1$uon$uline'('at$uleast$uone$uline'),X0) = 'at$uleast$uone$uline' ),
inference(resolution,[status(thm)],[d6,c13]) ).
cnf(d8,plain,
( ~ line(X0)
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'(X0)
| 'line$ufrom$uto'('point$u1$uon$uline'('at$uleast$uone$uline'),'point$unot$uon$uline'(X0)) = 'at$uleast$uone$uline' ),
inference(resolution,[status(thm)],[d7,c12]) ).
cnf(d9,plain,
( 'point$u1$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| 'line$ufrom$uto'('point$u1$uon$uline'('at$uleast$uone$uline'),'point$unot$uon$uline'('at$uleast$uone$uline')) = 'at$uleast$uone$uline' ),
inference(resolution,[status(thm)],[d8,c13]) ).
cnf(d10,plain,
( 'point$u1$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| ~ point('point$u1$uon$uline'('at$uleast$uone$uline'))
| ~ point('point$unot$uon$uline'('at$uleast$uone$uline'))
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| on('point$unot$uon$uline'('at$uleast$uone$uline'),'at$uleast$uone$uline') ),
inference(superposition,[status(thm)],[d9,c3]) ).
cnf(d11,plain,
( ~ line('at$uleast$uone$uline')
| ~ point('point$unot$uon$uline'('at$uleast$uone$uline'))
| ~ point('point$u1$uon$uline'('at$uleast$uone$uline'))
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[d10,c11]) ).
cnf(d12,plain,
( ~ point('point$unot$uon$uline'('at$uleast$uone$uline'))
| ~ point('point$u1$uon$uline'('at$uleast$uone$uline'))
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[c13,d11]) ).
cnf(d13,plain,
( ~ line('at$uleast$uone$uline')
| ~ point('point$u1$uon$uline'('at$uleast$uone$uline'))
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[d12,c12]) ).
cnf(d14,plain,
( ~ point('point$u1$uon$uline'('at$uleast$uone$uline'))
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[c13,d13]) ).
cnf(d15,plain,
( ~ line('at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[d14,c8]) ).
cnf(d16,plain,
( 'point$u1$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[c13,d15]) ).
cnf(d17,plain,
( 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| ~ line('at$uleast$uone$uline')
| ~ on('point$u1$uon$uline'('at$uleast$uone$uline'),'at$uleast$uone$uline') ),
inference(superposition,[status(thm)],[d16,c11]) ).
cnf(d18,plain,
( ~ on('point$u1$uon$uline'('at$uleast$uone$uline'),'at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[c13,d17]) ).
cnf(d19,plain,
( ~ line('at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[d18,c6]) ).
cnf(d20,plain,
'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint',
inference(resolution,[status(thm)],[c13,d19]) ).
cnf(d21,plain,
( ~ line(X0)
| ~ line(X0)
| ~ point('point$u2$uon$uline'(X0))
| ~ point(X1)
| 'line$ufrom$uto'('point$u2$uon$uline'(X0),X1) = X0
| 'point$u2$uon$uline'(X0) = 'a$upoint'
| 'point$u2$uon$uline'(X0) = X1 ),
inference(resolution,[status(thm)],[d4,c7]) ).
cnf(d22,plain,
( ~ line(X0)
| ~ line(X0)
| ~ point(X1)
| 'point$u2$uon$uline'(X0) = 'a$upoint'
| 'point$u2$uon$uline'(X0) = X1
| 'line$ufrom$uto'('point$u2$uon$uline'(X0),X1) = X0 ),
inference(resolution,[status(thm)],[d21,c9]) ).
cnf(d23,plain,
( ~ point(X0)
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| 'point$u2$uon$uline'('at$uleast$uone$uline') = X0
| 'line$ufrom$uto'('point$u2$uon$uline'('at$uleast$uone$uline'),X0) = 'at$uleast$uone$uline' ),
inference(resolution,[status(thm)],[d22,c13]) ).
cnf(d24,plain,
( ~ line(X0)
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'(X0)
| 'line$ufrom$uto'('point$u2$uon$uline'('at$uleast$uone$uline'),'point$unot$uon$uline'(X0)) = 'at$uleast$uone$uline' ),
inference(resolution,[status(thm)],[d23,c12]) ).
cnf(d25,plain,
( 'point$u2$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| 'line$ufrom$uto'('point$u2$uon$uline'('at$uleast$uone$uline'),'point$unot$uon$uline'('at$uleast$uone$uline')) = 'at$uleast$uone$uline' ),
inference(resolution,[status(thm)],[d24,c13]) ).
cnf(d26,plain,
( 'point$u2$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| ~ point('point$u2$uon$uline'('at$uleast$uone$uline'))
| ~ point('point$unot$uon$uline'('at$uleast$uone$uline'))
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| on('point$unot$uon$uline'('at$uleast$uone$uline'),'at$uleast$uone$uline') ),
inference(superposition,[status(thm)],[d25,c3]) ).
cnf(d27,plain,
( ~ line('at$uleast$uone$uline')
| ~ point('point$unot$uon$uline'('at$uleast$uone$uline'))
| ~ point('point$u2$uon$uline'('at$uleast$uone$uline'))
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[d26,c11]) ).
cnf(d28,plain,
( ~ point('point$unot$uon$uline'('at$uleast$uone$uline'))
| ~ point('point$u2$uon$uline'('at$uleast$uone$uline'))
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[c13,d27]) ).
cnf(d29,plain,
( ~ line('at$uleast$uone$uline')
| ~ point('point$u2$uon$uline'('at$uleast$uone$uline'))
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[d28,c12]) ).
cnf(d30,plain,
( ~ point('point$u2$uon$uline'('at$uleast$uone$uline'))
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[c13,d29]) ).
cnf(d31,plain,
( ~ line('at$uleast$uone$uline')
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[d30,c9]) ).
cnf(d32,plain,
( 'point$u2$uon$uline'('at$uleast$uone$uline') = 'point$unot$uon$uline'('at$uleast$uone$uline')
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[c13,d31]) ).
cnf(d33,plain,
( 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| ~ line('at$uleast$uone$uline')
| ~ on('point$u2$uon$uline'('at$uleast$uone$uline'),'at$uleast$uone$uline') ),
inference(superposition,[status(thm)],[d32,c11]) ).
cnf(d34,plain,
( ~ on('point$u2$uon$uline'('at$uleast$uone$uline'),'at$uleast$uone$uline')
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[c13,d33]) ).
cnf(d35,plain,
( ~ line('at$uleast$uone$uline')
| 'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[d34,c7]) ).
cnf(d36,plain,
'point$u2$uon$uline'('at$uleast$uone$uline') = 'a$upoint',
inference(resolution,[status(thm)],[c13,d35]) ).
cnf(d37,plain,
( ~ line('at$uleast$uone$uline')
| 'point$u1$uon$uline'('at$uleast$uone$uline') != 'a$upoint' ),
inference(superposition,[status(thm)],[d36,c10]) ).
cnf(d38,plain,
( ~ line('at$uleast$uone$uline')
| 'a$upoint' != 'a$upoint' ),
inference(demodulation,[status(thm)],[d37,d20]) ).
cnf(d39,plain,
'a$upoint' != 'a$upoint',
inference(resolution,[status(thm)],[c13,d38]) ).
cnf(d40,plain,
( 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| 'line$ufrom$uto'('point$u1$uon$uline'('at$uleast$uone$uline'),'a$upoint') = 'at$uleast$uone$uline' ),
inference(resolution,[status(thm)],[d7,c0]) ).
cnf(d41,plain,
( 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| ~ point('a$upoint')
| ~ point('point$u1$uon$uline'('at$uleast$uone$uline'))
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| on('point$u1$uon$uline'('at$uleast$uone$uline'),'at$uleast$uone$uline') ),
inference(superposition,[status(thm)],[d40,c2]) ).
cnf(d42,plain,
( on('point$u1$uon$uline'('at$uleast$uone$uline'),'at$uleast$uone$uline')
| ~ point('point$u1$uon$uline'('at$uleast$uone$uline'))
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[c0,d41]) ).
cnf(d43,plain,
( ~ point('point$u1$uon$uline'('at$uleast$uone$uline'))
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint'
| 'point$u1$uon$uline'('at$uleast$uone$uline') = 'a$upoint' ),
inference(resolution,[status(thm)],[d18,d42]) ).
cnf(d44,plain,
( ~ point('point$u1$uon$uline'('at$uleast$uone$uline'))
| 'a$upoint' = 'a$upoint' ),
inference(demodulation,[status(thm)],[d43,d20]) ).
cnf(d45,plain,
( ~ point('a$upoint')
| 'a$upoint' = 'a$upoint' ),
inference(demodulation,[status(thm)],[d44,d20]) ).
cnf(d46,plain,
'a$upoint' = 'a$upoint',
inference(resolution,[status(thm)],[c0,d45]) ).
cnf(d47,plain,
$false,
inference(resolution,[status(thm)],[d46,d39]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03 % Problem : GEO076-4 : TPTP v9.3.1. Released v1.0.0.
% 0.00/0.04 % Command : casc-portfolio.sh -t 300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.09/5.38 % Computer : n016.cluster.edu
% 0.09/5.38 % Model : x86_64 x86_64
% 0.09/5.38 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.09/5.38 % Memory : 8046.5625MB
% 0.09/5.38 % OS : Linux 6.8.0-71-generic
% 0.07/20.43 % CPULimit : 300
% 0.07/20.43 % WCLimit : 300
% 0.07/20.43 % DateTime : Fri Sep 25 12:40:12 UTC 2026
% 0.07/20.43 % CPUTime :
% 0.07/20.43 Running casc-portfolio.sh -t 300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% 14.63/23.37 % SZS status Unsatisfiable for theBenchmark.p
% 14.63/23.37 % SZS output start CNFRefutation for theBenchmark.p
% See solution above
%------------------------------------------------------------------------------