%------------------------------------------------------------------------------
% File : Prover9---2026-6A
% Problem : MGT026-1 : TPTP v9.3.1. Released v2.4.0.
% Transfm : none
% Format : tptp:raw
% Command : prover9 -casc 300 -f /export/starexec/sandbox/benchmark/theBenchmark.p
% Computer : n019.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 08:02:10 AM UTC 2026
% Result : Unsatisfiable 0.14s 0.37s
% Output : CNFRefutation 0.14s
% Verified :
% SZS Type : Refutation
% Derivation depth : 26
% Number of leaves : 16
% Syntax : Number of formulae : 85 ( 20 unt; 0 def)
% Number of atoms : 222 ( 59 equ)
% Maximal formula atoms : 6 ( 2 avg)
% Number of connectives : 245 ( 108 ~; 137 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 11 ( 4 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 9 ( 7 usr; 1 prp; 0-4 aty)
% Number of functors : 9 ( 9 usr; 5 con; 0-2 aty)
% Number of variables : 77 ( 0 sgn 29 !; 0 ?)
% Comments :
%------------------------------------------------------------------------------
fof(prove_l8_42,axiom,
environment(sk1),
file('theBenchmark.p',prove_l8_42) ).
cnf(c_1,plain,
environment(sk1),
inference(clausify,[status(thm)],[prove_l8_42]) ).
fof(t6_41,axiom,
! [VAR_0,VAR_1] :
( greater(cardinality_at_time(efficient_producers,VAR_1),zero)
| ~ greater_or_equal(VAR_1,appear(efficient_producers,VAR_0))
| ~ in_environment(VAR_0,VAR_1)
| ~ environment(VAR_0) ),
file('theBenchmark.p',t6_41) ).
cnf(c_2,plain,
( greater(cardinality_at_time(efficient_producers,B),zero)
| ~ greater_or_equal(B,appear(efficient_producers,A))
| ~ in_environment(A,B)
| ~ environment(A) ),
inference(clausify,[status(thm)],[t6_41]) ).
fof(d1_40,axiom,
! [VAR_0,VAR_1,VAR_2] :
( greater(growth_rate(efficient_producers,VAR_2),growth_rate(first_movers,VAR_2))
| ~ greater(VAR_2,VAR_1)
| ~ subpopulations(first_movers,efficient_producers,VAR_0,VAR_2)
| VAR_1 != critical_point(VAR_0)
| ~ environment(VAR_0) ),
file('theBenchmark.p',d1_40) ).
cnf(c_3,plain,
( greater(growth_rate(efficient_producers,C),growth_rate(first_movers,C))
| ~ greater(C,B)
| ~ subpopulations(first_movers,efficient_producers,A,C)
| B != critical_point(A)
| ~ environment(A) ),
inference(clausify,[status(thm)],[d1_40]) ).
fof(mp_critical_point_after_EP_34,axiom,
! [VAR_0] :
( greater_or_equal(critical_point(VAR_0),appear(efficient_producers,VAR_0))
| ~ environment(VAR_0) ),
file('theBenchmark.p',mp_critical_point_after_EP_34) ).
cnf(c_5,plain,
( greater_or_equal(critical_point(A),appear(efficient_producers,A))
| ~ environment(A) ),
inference(clausify,[status(thm)],[mp_critical_point_after_EP_34]) ).
fof(mp_subpopulations_33,axiom,
! [VAR_0,VAR_1] :
( subpopulation(efficient_producers,VAR_0,VAR_1)
| ~ in_environment(VAR_0,VAR_1)
| ~ environment(VAR_0) ),
file('theBenchmark.p',mp_subpopulations_33) ).
cnf(c_6,plain,
( subpopulation(efficient_producers,A,B)
| ~ in_environment(A,B)
| ~ environment(A) ),
inference(clausify,[status(thm)],[mp_subpopulations_33]) ).
fof(mp_subpopulations_32,axiom,
! [VAR_0,VAR_1] :
( subpopulation(first_movers,VAR_0,VAR_1)
| ~ in_environment(VAR_0,VAR_1)
| ~ environment(VAR_0) ),
file('theBenchmark.p',mp_subpopulations_32) ).
cnf(c_7,plain,
( subpopulation(first_movers,A,B)
| ~ in_environment(A,B)
| ~ environment(A) ),
inference(clausify,[status(thm)],[mp_subpopulations_32]) ).
fof(mp_first_movers_exist_31,axiom,
! [VAR_0,VAR_1] :
( greater_or_equal(cardinality_at_time(first_movers,VAR_1),zero)
| ~ in_environment(VAR_0,VAR_1)
| ~ environment(VAR_0) ),
file('theBenchmark.p',mp_first_movers_exist_31) ).
cnf(c_8,plain,
( greater_or_equal(cardinality_at_time(first_movers,B),zero)
| ~ in_environment(A,B)
| ~ environment(A) ),
inference(clausify,[status(thm)],[mp_first_movers_exist_31]) ).
fof(mp_non_empty_fm_and_ep_30,axiom,
! [VAR_0,VAR_1] :
( subpopulations(first_movers,efficient_producers,VAR_0,VAR_1)
| ~ greater(cardinality_at_time(efficient_producers,VAR_1),zero)
| ~ greater(cardinality_at_time(first_movers,VAR_1),zero)
| ~ in_environment(VAR_0,VAR_1)
| ~ environment(VAR_0) ),
file('theBenchmark.p',mp_non_empty_fm_and_ep_30) ).
cnf(c_9,plain,
( subpopulations(first_movers,efficient_producers,A,B)
| ~ greater(cardinality_at_time(efficient_producers,B),zero)
| ~ greater(cardinality_at_time(first_movers,B),zero)
| ~ in_environment(A,B)
| ~ environment(A) ),
inference(clausify,[status(thm)],[mp_non_empty_fm_and_ep_30]) ).
fof(mp2_favour_members_29,axiom,
! [VAR_0,VAR_1,VAR_2,VAR_3] :
( selection_favors(VAR_1,VAR_3,VAR_2)
| cardinality_at_time(VAR_3,VAR_2) != zero
| ~ greater(cardinality_at_time(VAR_1,VAR_2),zero)
| ~ subpopulation(VAR_3,VAR_0,VAR_2)
| ~ subpopulation(VAR_1,VAR_0,VAR_2)
| ~ environment(VAR_0) ),
file('theBenchmark.p',mp2_favour_members_29) ).
cnf(c_10,plain,
( selection_favors(B,D,C)
| cardinality_at_time(D,C) != zero
| ~ greater(cardinality_at_time(B,C),zero)
| ~ subpopulation(D,A,C)
| ~ subpopulation(B,A,C)
| ~ environment(A) ),
inference(clausify,[status(thm)],[mp2_favour_members_29]) ).
fof(mp1_high_growth_rates_28,axiom,
! [VAR_0,VAR_1,VAR_2,VAR_3] :
( selection_favors(VAR_2,VAR_1,VAR_3)
| ~ greater(growth_rate(VAR_2,VAR_3),growth_rate(VAR_1,VAR_3))
| ~ subpopulations(VAR_1,VAR_2,VAR_0,VAR_3)
| ~ environment(VAR_0) ),
file('theBenchmark.p',mp1_high_growth_rates_28) ).
cnf(c_11,plain,
( selection_favors(C,B,D)
| ~ greater(growth_rate(C,D),growth_rate(B,D))
| ~ subpopulations(B,C,A,D)
| ~ environment(A) ),
inference(clausify,[status(thm)],[mp1_high_growth_rates_28]) ).
cnf(c_12,plain,
( selection_favors(B,A,C)
| ~ greater(growth_rate(B,C),growth_rate(A,C))
| ~ subpopulations(A,B,sk1,C) ),
inference(resolve,[status(thm)],[c_1,c_11]) ).
cnf(c_13,plain,
( selection_favors(A,C,B)
| cardinality_at_time(C,B) != zero
| ~ greater(cardinality_at_time(A,B),zero)
| ~ subpopulation(C,sk1,B)
| ~ subpopulation(A,sk1,B) ),
inference(resolve,[status(thm)],[c_1,c_10]) ).
cnf(c_14,plain,
( subpopulations(first_movers,efficient_producers,sk1,A)
| ~ greater(cardinality_at_time(efficient_producers,A),zero)
| ~ greater(cardinality_at_time(first_movers,A),zero)
| ~ in_environment(sk1,A) ),
inference(resolve,[status(thm)],[c_1,c_9]) ).
cnf(c_15,plain,
( greater_or_equal(cardinality_at_time(first_movers,A),zero)
| ~ in_environment(sk1,A) ),
inference(resolve,[status(thm)],[c_1,c_8]) ).
cnf(c_16,plain,
( subpopulation(first_movers,sk1,A)
| ~ in_environment(sk1,A) ),
inference(resolve,[status(thm)],[c_1,c_7]) ).
cnf(c_17,plain,
( subpopulation(efficient_producers,sk1,A)
| ~ in_environment(sk1,A) ),
inference(resolve,[status(thm)],[c_1,c_6]) ).
cnf(c_18,plain,
greater_or_equal(critical_point(sk1),appear(efficient_producers,sk1)),
inference(resolve,[status(thm)],[c_1,c_5]) ).
cnf(c_21,plain,
( greater(growth_rate(efficient_producers,B),growth_rate(first_movers,B))
| ~ greater(B,A)
| ~ subpopulations(first_movers,efficient_producers,sk1,B)
| A != critical_point(sk1) ),
inference(resolve,[status(thm)],[c_1,c_3]) ).
cnf(c_22,plain,
( greater(growth_rate(efficient_producers,B),growth_rate(first_movers,B))
| ~ greater(B,A)
| ~ subpopulations(first_movers,efficient_producers,sk1,B)
| critical_point(sk1) != A ),
inference(copy,[status(thm)],[c_21]) ).
cnf(c_23,plain,
( greater(cardinality_at_time(efficient_producers,A),zero)
| ~ greater_or_equal(A,appear(efficient_producers,sk1))
| ~ in_environment(sk1,A) ),
inference(resolve,[status(thm)],[c_1,c_2]) ).
fof(prove_l8_45,axiom,
~ selection_favors(efficient_producers,first_movers,sk2),
file('theBenchmark.p',prove_l8_45) ).
cnf(c_24,plain,
~ selection_favors(efficient_producers,first_movers,sk2),
inference(clausify,[status(thm)],[prove_l8_45]) ).
fof(prove_l8_44,axiom,
greater(sk2,critical_point(sk1)),
file('theBenchmark.p',prove_l8_44) ).
cnf(c_25,plain,
greater(sk2,critical_point(sk1)),
inference(clausify,[status(thm)],[prove_l8_44]) ).
fof(prove_l8_43,axiom,
in_environment(sk1,sk2),
file('theBenchmark.p',prove_l8_43) ).
cnf(c_26,plain,
in_environment(sk1,sk2),
inference(clausify,[status(thm)],[prove_l8_43]) ).
fof(mp_greater_or_equal_37,axiom,
! [VAR_0,VAR_1] :
( greater_or_equal(VAR_0,VAR_1)
| ~ greater(VAR_0,VAR_1) ),
file('theBenchmark.p',mp_greater_or_equal_37) ).
cnf(c_28,plain,
( greater_or_equal(A,B)
| ~ greater(A,B) ),
inference(clausify,[status(thm)],[mp_greater_or_equal_37]) ).
fof(mp_greater_or_equal_36,axiom,
! [VAR_0,VAR_1] :
( VAR_0 = VAR_1
| greater(VAR_0,VAR_1)
| ~ greater_or_equal(VAR_0,VAR_1) ),
file('theBenchmark.p',mp_greater_or_equal_36) ).
cnf(c_29,plain,
( A = B
| greater(A,B)
| ~ greater_or_equal(A,B) ),
inference(clausify,[status(thm)],[mp_greater_or_equal_36]) ).
fof(mp_greater_transitivity_35,axiom,
! [VAR_0,VAR_1,VAR_2] :
( greater(VAR_0,VAR_2)
| ~ greater(VAR_1,VAR_2)
| ~ greater(VAR_0,VAR_1) ),
file('theBenchmark.p',mp_greater_transitivity_35) ).
cnf(c_30,plain,
( greater(A,C)
| ~ greater(B,C)
| ~ greater(A,B) ),
inference(clausify,[status(thm)],[mp_greater_transitivity_35]) ).
cnf(c_33,plain,
( greater(cardinality_at_time(efficient_producers,sk2),zero)
| ~ greater_or_equal(sk2,appear(efficient_producers,sk1)) ),
inference(resolve,[status(thm)],[c_26,c_23]) ).
cnf(c_34,plain,
subpopulation(efficient_producers,sk1,sk2),
inference(resolve,[status(thm)],[c_26,c_17]) ).
cnf(c_35,plain,
subpopulation(first_movers,sk1,sk2),
inference(resolve,[status(thm)],[c_26,c_16]) ).
cnf(c_36,plain,
greater_or_equal(cardinality_at_time(first_movers,sk2),zero),
inference(resolve,[status(thm)],[c_26,c_15]) ).
cnf(c_37,plain,
( subpopulations(first_movers,efficient_producers,sk1,sk2)
| ~ greater(cardinality_at_time(efficient_producers,sk2),zero)
| ~ greater(cardinality_at_time(first_movers,sk2),zero) ),
inference(resolve,[status(thm)],[c_26,c_14]) ).
cnf(c_39,plain,
greater_or_equal(sk2,critical_point(sk1)),
inference(resolve,[status(thm)],[c_28,c_25]) ).
cnf(c_40,plain,
( critical_point(sk1) = appear(efficient_producers,sk1)
| greater(critical_point(sk1),appear(efficient_producers,sk1)) ),
inference(resolve,[status(thm)],[c_29,c_18]) ).
cnf(c_41,plain,
( greater(sk2,A)
| ~ greater(critical_point(sk1),A) ),
inference(resolve,[status(thm)],[c_30,c_25]) ).
cnf(c_45,plain,
( selection_favors(efficient_producers,A,sk2)
| cardinality_at_time(A,sk2) != zero
| ~ greater(cardinality_at_time(efficient_producers,sk2),zero)
| ~ subpopulation(A,sk1,sk2) ),
inference(resolve,[status(thm)],[c_34,c_13]) ).
cnf(c_49,plain,
( cardinality_at_time(first_movers,sk2) = zero
| greater(cardinality_at_time(first_movers,sk2),zero) ),
inference(resolve,[status(thm)],[c_36,c_29]) ).
cnf(c_50,plain,
( greater(sk2,appear(efficient_producers,sk1))
| critical_point(sk1) = appear(efficient_producers,sk1) ),
inference(resolve,[status(thm)],[c_40,c_41]) ).
cnf(c_53,plain,
( subpopulations(first_movers,efficient_producers,sk1,sk2)
| ~ greater(cardinality_at_time(efficient_producers,sk2),zero)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_49,c_37]) ).
cnf(c_58,plain,
( greater_or_equal(sk2,appear(efficient_producers,sk1))
| critical_point(sk1) = appear(efficient_producers,sk1) ),
inference(resolve,[status(thm)],[c_50,c_28]) ).
cnf(c_59,plain,
( greater(cardinality_at_time(efficient_producers,sk2),zero)
| critical_point(sk1) = appear(efficient_producers,sk1) ),
inference(resolve,[status(thm)],[c_58,c_33]) ).
cnf(c_105,plain,
( selection_favors(efficient_producers,first_movers,sk2)
| cardinality_at_time(first_movers,sk2) != zero
| ~ greater(cardinality_at_time(efficient_producers,sk2),zero) ),
inference(resolve,[status(thm)],[c_45,c_35]) ).
cnf(c_65,plain,
( cardinality_at_time(first_movers,sk2) != zero
| ~ greater(cardinality_at_time(efficient_producers,sk2),zero) ),
inference(resolve,[status(thm)],[c_24,c_105]) ).
cnf(c_66,plain,
( critical_point(sk1) = appear(efficient_producers,sk1)
| cardinality_at_time(first_movers,sk2) != zero ),
inference(resolve,[status(thm)],[c_65,c_59]) ).
cnf(c_68,plain,
( critical_point(sk1) = appear(efficient_producers,sk1)
| subpopulations(first_movers,efficient_producers,sk1,sk2)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_53,c_59]) ).
cnf(c_69,plain,
( greater(growth_rate(efficient_producers,sk2),growth_rate(first_movers,sk2))
| ~ greater(sk2,A)
| critical_point(sk1) != A
| critical_point(sk1) = appear(efficient_producers,sk1)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_68,c_22]) ).
cnf(c_106,plain,
( selection_favors(efficient_producers,first_movers,sk2)
| ~ greater(growth_rate(efficient_producers,sk2),growth_rate(first_movers,sk2))
| critical_point(sk1) = appear(efficient_producers,sk1)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_68,c_12]) ).
cnf(c_70,plain,
( ~ greater(growth_rate(efficient_producers,sk2),growth_rate(first_movers,sk2))
| critical_point(sk1) = appear(efficient_producers,sk1)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_24,c_106]) ).
cnf(c_107,plain,
( greater(growth_rate(efficient_producers,sk2),growth_rate(first_movers,sk2))
| critical_point(sk1) != critical_point(sk1)
| critical_point(sk1) = appear(efficient_producers,sk1)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_69,c_25]) ).
cnf(c_71,plain,
( greater(growth_rate(efficient_producers,sk2),growth_rate(first_movers,sk2))
| critical_point(sk1) = appear(efficient_producers,sk1)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(copy,[status(thm)],[c_107]) ).
cnf(c_108,plain,
( critical_point(sk1) = appear(efficient_producers,sk1)
| cardinality_at_time(first_movers,sk2) = zero
| critical_point(sk1) = appear(efficient_producers,sk1)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_71,c_70]) ).
cnf(c_109,plain,
( critical_point(sk1) = appear(efficient_producers,sk1)
| critical_point(sk1) = appear(efficient_producers,sk1)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(copy,[status(thm)],[c_108]) ).
cnf(c_72,plain,
( critical_point(sk1) = appear(efficient_producers,sk1)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(copy,[status(thm)],[c_109]) ).
cnf(c_77,plain,
( greater_or_equal(sk2,appear(efficient_producers,sk1))
| cardinality_at_time(first_movers,sk2) = zero ),
inference(paramod,[status(thm)],[c_72,c_39]) ).
cnf(c_80,plain,
( greater(cardinality_at_time(efficient_producers,sk2),zero)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_77,c_33]) ).
cnf(c_110,plain,
( subpopulations(first_movers,efficient_producers,sk1,sk2)
| cardinality_at_time(first_movers,sk2) = zero
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_80,c_53]) ).
cnf(c_81,plain,
( subpopulations(first_movers,efficient_producers,sk1,sk2)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(copy,[status(thm)],[c_110]) ).
cnf(c_86,plain,
( greater(growth_rate(efficient_producers,sk2),growth_rate(first_movers,sk2))
| ~ greater(sk2,A)
| critical_point(sk1) != A
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_81,c_22]) ).
cnf(c_111,plain,
( selection_favors(efficient_producers,first_movers,sk2)
| ~ greater(growth_rate(efficient_producers,sk2),growth_rate(first_movers,sk2))
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_81,c_12]) ).
cnf(c_87,plain,
( ~ greater(growth_rate(efficient_producers,sk2),growth_rate(first_movers,sk2))
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_24,c_111]) ).
cnf(c_112,plain,
( greater(growth_rate(efficient_producers,sk2),growth_rate(first_movers,sk2))
| critical_point(sk1) != critical_point(sk1)
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_86,c_25]) ).
cnf(c_90,plain,
( greater(growth_rate(efficient_producers,sk2),growth_rate(first_movers,sk2))
| cardinality_at_time(first_movers,sk2) = zero ),
inference(copy,[status(thm)],[c_112]) ).
cnf(c_113,plain,
( cardinality_at_time(first_movers,sk2) = zero
| cardinality_at_time(first_movers,sk2) = zero ),
inference(resolve,[status(thm)],[c_90,c_87]) ).
cnf(c_91,plain,
cardinality_at_time(first_movers,sk2) = zero,
inference(copy,[status(thm)],[c_113]) ).
cnf(c_92,plain,
critical_point(sk1) = appear(efficient_producers,sk1),
inference(resolve,[status(thm)],[c_91,c_66]) ).
cnf(c_93,plain,
~ greater(cardinality_at_time(efficient_producers,sk2),zero),
inference(resolve,[status(thm)],[c_91,c_65]) ).
cnf(c_96,plain,
~ greater_or_equal(sk2,appear(efficient_producers,sk1)),
inference(resolve,[status(thm)],[c_93,c_33]) ).
cnf(c_97,plain,
~ greater(sk2,appear(efficient_producers,sk1)),
inference(resolve,[status(thm)],[c_28,c_96]) ).
cnf(c_114,plain,
greater(sk2,appear(efficient_producers,sk1)),
inference(paramod,[status(thm)],[c_92,c_25]) ).
cnf(c_104,plain,
$false,
inference(resolve,[status(thm)],[c_97,c_114]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.02 % Problem : MGT026-1 : TPTP v9.3.1. Released v2.4.0.
% 0.00/0.04 % Command : prover9 -casc 300 -f /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.10/0.35 % Computer : n019.cluster.edu
% 0.10/0.35 % Model : x86_64 x86_64
% 0.10/0.35 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.10/0.35 % Memory : 8046.5625MB
% 0.10/0.35 % OS : Linux 6.8.0-71-generic
% 0.10/0.35 % CPULimit : 300
% 0.10/0.35 % WCLimit : 300
% 0.10/0.35 % DateTime : Sat Sep 26 00:04:49 UTC 2026
% 0.10/0.35 % CPUTime :
% 0.10/0.36 % Prover9 (64) version 2026-6A, July 2026, CASC-J13.
% 0.10/0.36 % Process 4043009 was started by sandbox on n019,
% 0.10/0.36 % Sat Sep 26 00:04:49 2026
% 0.10/0.36 % The command was "/export/starexec/sandbox/solver/bin/prover9 -casc 300 -f /export/starexec/sandbox/benchmark/theBenchmark.p".
% 0.14/0.36
% 0.14/0.36 % From the command line: assign(max_seconds, 300).
% 0.14/0.37
% 0.14/0.37 % SZS status Unsatisfiable for theBenchmark
% 0.14/0.37
% 0.14/0.37 % Proof 1 at 0.00 (+ 0.00) seconds.
% 0.14/0.37 % Length of proof is 59.
% 0.14/0.37 % Level of proof is 19.
% 0.14/0.37 % Maximum clause weight is 35.000.
% 0.14/0.37 % Given clauses 83.
% 0.14/0.37
% 0.14/0.37 % SZS output start CNFRefutation for theBenchmark
% See solution above
%------------------------------------------------------------------------------