%------------------------------------------------------------------------------ % File : Duper---1.0 % Problem : SEU733^2 : TPTP v9.2.0. Released v3.7.0. % Transfm : none % Format : tptp:raw % Command : duper %s % Computer : n012.cluster.edu % Model : x86_64 x86_64 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz % Memory : 8042.1875MB % OS : Linux 3.10.0-693.el7.x86_64 % CPULimit : 300s % WCLimit : 300s % DateTime : Fri Oct 3 08:02:19 PM UTC 2025 % Result : Theorem 4.93s 5.11s % Output : Proof 4.93s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.11/0.12 % Problem : SEU733^2 : TPTP v9.2.0. Released v3.7.0. % 0.11/0.13 % Command : duper %s % 0.13/0.34 % Computer : n012.cluster.edu % 0.13/0.34 % Model : x86_64 x86_64 % 0.13/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz % 0.13/0.34 % Memory : 8042.1875MB % 0.13/0.34 % OS : Linux 3.10.0-693.el7.x86_64 % 0.13/0.34 % CPULimit : 300 % 0.13/0.34 % WCLimit : 300 % 0.13/0.34 % DateTime : Fri Oct 3 04:40:23 EDT 2025 % 0.13/0.34 % CPUTime : % 4.93/5.11 SZS status Theorem for theBenchmark.p % 4.93/5.11 SZS output start Proof for theBenchmark.p % 4.93/5.11 Clause #0 (by assumption #[]): Eq (Eq setminusI (∀ (A B Xx : Iota), in Xx A → Not (in Xx B) → in Xx (setminus A B))) True % 4.93/5.11 Clause #1 (by assumption #[]): Eq % 4.93/5.11 (Eq complementTnotintersectT % 4.93/5.11 (∀ (A X : Iota), % 4.93/5.11 in X (powerset A) → % 4.93/5.11 ∀ (Y : Iota), % 4.93/5.11 in Y (powerset A) → ∀ (Xx : Iota), in Xx A → in Xx (setminus A X) → Not (in Xx (binintersect X Y)))) % 4.93/5.11 True % 4.93/5.11 Clause #2 (by assumption #[]): Eq % 4.93/5.11 (Not % 4.93/5.11 (setminusI → % 4.93/5.11 complementTnotintersectT → % 4.93/5.11 ∀ (A X : Iota), % 4.93/5.11 in X (powerset A) → % 4.93/5.11 ∀ (Y : Iota), % 4.93/5.11 in Y (powerset A) → % 4.93/5.11 ∀ (Xx : Iota), in Xx A → in Xx (setminus A X) → in Xx (setminus A (binintersect X Y)))) % 4.93/5.11 True % 4.93/5.11 Clause #3 (by clausification #[0]): Eq setminusI (∀ (A B Xx : Iota), in Xx A → Not (in Xx B) → in Xx (setminus A B)) % 4.93/5.11 Clause #21 (by clausification #[1]): Eq complementTnotintersectT % 4.93/5.11 (∀ (A X : Iota), % 4.93/5.11 in X (powerset A) → % 4.93/5.11 ∀ (Y : Iota), in Y (powerset A) → ∀ (Xx : Iota), in Xx A → in Xx (setminus A X) → Not (in Xx (binintersect X Y))) % 4.93/5.11 Clause #25 (by clausification #[2]): Eq % 4.93/5.11 (setminusI → % 4.93/5.11 complementTnotintersectT → % 4.93/5.11 ∀ (A X : Iota), % 4.93/5.11 in X (powerset A) → % 4.93/5.11 ∀ (Y : Iota), % 4.93/5.11 in Y (powerset A) → ∀ (Xx : Iota), in Xx A → in Xx (setminus A X) → in Xx (setminus A (binintersect X Y))) % 4.93/5.11 False % 4.93/5.11 Clause #26 (by clausification #[25]): Eq setminusI True % 4.93/5.11 Clause #27 (by clausification #[25]): Eq % 4.93/5.11 (complementTnotintersectT → % 4.93/5.11 ∀ (A X : Iota), % 4.93/5.11 in X (powerset A) → % 4.93/5.11 ∀ (Y : Iota), % 4.93/5.11 in Y (powerset A) → ∀ (Xx : Iota), in Xx A → in Xx (setminus A X) → in Xx (setminus A (binintersect X Y))) % 4.93/5.11 False % 4.93/5.11 Clause #28 (by backward demodulation #[26, 3]): Eq True (∀ (A B Xx : Iota), in Xx A → Not (in Xx B) → in Xx (setminus A B)) % 4.93/5.11 Clause #31 (by clausification #[28]): ∀ (a : Iota), Eq (∀ (B Xx : Iota), in Xx a → Not (in Xx B) → in Xx (setminus a B)) True % 4.93/5.11 Clause #32 (by clausification #[31]): ∀ (a a_1 : Iota), Eq (∀ (Xx : Iota), in Xx a → Not (in Xx a_1) → in Xx (setminus a a_1)) True % 4.93/5.11 Clause #33 (by clausification #[32]): ∀ (a a_1 a_2 : Iota), Eq (in a a_1 → Not (in a a_2) → in a (setminus a_1 a_2)) True % 4.93/5.11 Clause #34 (by clausification #[33]): ∀ (a a_1 a_2 : Iota), Or (Eq (in a a_1) False) (Eq (Not (in a a_2) → in a (setminus a_1 a_2)) True) % 4.93/5.11 Clause #35 (by clausification #[34]): ∀ (a a_1 a_2 : Iota), Or (Eq (in a a_1) False) (Or (Eq (Not (in a a_2)) False) (Eq (in a (setminus a_1 a_2)) True)) % 4.93/5.11 Clause #36 (by clausification #[35]): ∀ (a a_1 a_2 : Iota), Or (Eq (in a a_1) False) (Or (Eq (in a (setminus a_1 a_2)) True) (Eq (in a a_2) True)) % 4.93/5.11 Clause #53 (by clausification #[27]): Eq complementTnotintersectT True % 4.93/5.11 Clause #54 (by clausification #[27]): Eq % 4.93/5.11 (∀ (A X : Iota), % 4.93/5.11 in X (powerset A) → % 4.93/5.11 ∀ (Y : Iota), % 4.93/5.11 in Y (powerset A) → ∀ (Xx : Iota), in Xx A → in Xx (setminus A X) → in Xx (setminus A (binintersect X Y))) % 4.93/5.11 False % 4.93/5.11 Clause #55 (by backward demodulation #[53, 21]): Eq True % 4.93/5.11 (∀ (A X : Iota), % 4.93/5.11 in X (powerset A) → % 4.93/5.11 ∀ (Y : Iota), in Y (powerset A) → ∀ (Xx : Iota), in Xx A → in Xx (setminus A X) → Not (in Xx (binintersect X Y))) % 4.93/5.11 Clause #62 (by clausification #[55]): ∀ (a : Iota), % 4.93/5.11 Eq % 4.93/5.11 (∀ (X : Iota), % 4.93/5.11 in X (powerset a) → % 4.93/5.11 ∀ (Y : Iota), % 4.93/5.11 in Y (powerset a) → ∀ (Xx : Iota), in Xx a → in Xx (setminus a X) → Not (in Xx (binintersect X Y))) % 4.93/5.11 True % 4.93/5.11 Clause #63 (by clausification #[62]): ∀ (a a_1 : Iota), % 4.93/5.11 Eq % 4.93/5.11 (in a (powerset a_1) → % 4.93/5.11 ∀ (Y : Iota), % 4.93/5.11 in Y (powerset a_1) → ∀ (Xx : Iota), in Xx a_1 → in Xx (setminus a_1 a) → Not (in Xx (binintersect a Y))) % 4.93/5.11 True % 4.93/5.11 Clause #64 (by clausification #[63]): ∀ (a a_1 : Iota), % 4.93/5.11 Or (Eq (in a (powerset a_1)) False) % 4.93/5.11 (Eq % 4.93/5.11 (∀ (Y : Iota), % 4.93/5.11 in Y (powerset a_1) → ∀ (Xx : Iota), in Xx a_1 → in Xx (setminus a_1 a) → Not (in Xx (binintersect a Y))) % 4.93/5.11 True) % 4.93/5.13 Clause #65 (by clausification #[64]): ∀ (a a_1 a_2 : Iota), % 4.93/5.13 Or (Eq (in a (powerset a_1)) False) % 4.93/5.13 (Eq (in a_2 (powerset a_1) → ∀ (Xx : Iota), in Xx a_1 → in Xx (setminus a_1 a) → Not (in Xx (binintersect a a_2))) % 4.93/5.13 True) % 4.93/5.13 Clause #66 (by clausification #[65]): ∀ (a a_1 a_2 : Iota), % 4.93/5.13 Or (Eq (in a (powerset a_1)) False) % 4.93/5.13 (Or (Eq (in a_2 (powerset a_1)) False) % 4.93/5.13 (Eq (∀ (Xx : Iota), in Xx a_1 → in Xx (setminus a_1 a) → Not (in Xx (binintersect a a_2))) True)) % 4.93/5.13 Clause #67 (by clausification #[66]): ∀ (a a_1 a_2 a_3 : Iota), % 4.93/5.13 Or (Eq (in a (powerset a_1)) False) % 4.93/5.13 (Or (Eq (in a_2 (powerset a_1)) False) % 4.93/5.13 (Eq (in a_3 a_1 → in a_3 (setminus a_1 a) → Not (in a_3 (binintersect a a_2))) True)) % 4.93/5.13 Clause #68 (by clausification #[67]): ∀ (a a_1 a_2 a_3 : Iota), % 4.93/5.13 Or (Eq (in a (powerset a_1)) False) % 4.93/5.13 (Or (Eq (in a_2 (powerset a_1)) False) % 4.93/5.13 (Or (Eq (in a_3 a_1) False) (Eq (in a_3 (setminus a_1 a) → Not (in a_3 (binintersect a a_2))) True))) % 4.93/5.13 Clause #69 (by clausification #[68]): ∀ (a a_1 a_2 a_3 : Iota), % 4.93/5.13 Or (Eq (in a (powerset a_1)) False) % 4.93/5.13 (Or (Eq (in a_2 (powerset a_1)) False) % 4.93/5.13 (Or (Eq (in a_3 a_1) False) % 4.93/5.13 (Or (Eq (in a_3 (setminus a_1 a)) False) (Eq (Not (in a_3 (binintersect a a_2))) True)))) % 4.93/5.13 Clause #70 (by clausification #[69]): ∀ (a a_1 a_2 a_3 : Iota), % 4.93/5.13 Or (Eq (in a (powerset a_1)) False) % 4.93/5.13 (Or (Eq (in a_2 (powerset a_1)) False) % 4.93/5.13 (Or (Eq (in a_3 a_1) False) (Or (Eq (in a_3 (setminus a_1 a)) False) (Eq (in a_3 (binintersect a a_2)) False)))) % 4.93/5.13 Clause #71 (by clausification #[54]): ∀ (a : Iota), % 4.93/5.13 Eq % 4.93/5.13 (Not % 4.93/5.13 (∀ (X : Iota), % 4.93/5.13 in X (powerset (skS.0 5 a)) → % 4.93/5.13 ∀ (Y : Iota), % 4.93/5.13 in Y (powerset (skS.0 5 a)) → % 4.93/5.13 ∀ (Xx : Iota), % 4.93/5.13 in Xx (skS.0 5 a) → in Xx (setminus (skS.0 5 a) X) → in Xx (setminus (skS.0 5 a) (binintersect X Y)))) % 4.93/5.13 True % 4.93/5.13 Clause #72 (by clausification #[71]): ∀ (a : Iota), % 4.93/5.13 Eq % 4.93/5.13 (∀ (X : Iota), % 4.93/5.13 in X (powerset (skS.0 5 a)) → % 4.93/5.13 ∀ (Y : Iota), % 4.93/5.13 in Y (powerset (skS.0 5 a)) → % 4.93/5.13 ∀ (Xx : Iota), % 4.93/5.13 in Xx (skS.0 5 a) → in Xx (setminus (skS.0 5 a) X) → in Xx (setminus (skS.0 5 a) (binintersect X Y))) % 4.93/5.13 False % 4.93/5.13 Clause #73 (by clausification #[72]): ∀ (a a_1 : Iota), % 4.93/5.13 Eq % 4.93/5.13 (Not % 4.93/5.13 (in (skS.0 6 a a_1) (powerset (skS.0 5 a)) → % 4.93/5.13 ∀ (Y : Iota), % 4.93/5.13 in Y (powerset (skS.0 5 a)) → % 4.93/5.13 ∀ (Xx : Iota), % 4.93/5.13 in Xx (skS.0 5 a) → % 4.93/5.13 in Xx (setminus (skS.0 5 a) (skS.0 6 a a_1)) → % 4.93/5.13 in Xx (setminus (skS.0 5 a) (binintersect (skS.0 6 a a_1) Y)))) % 4.93/5.13 True % 4.93/5.13 Clause #74 (by clausification #[73]): ∀ (a a_1 : Iota), % 4.93/5.13 Eq % 4.93/5.13 (in (skS.0 6 a a_1) (powerset (skS.0 5 a)) → % 4.93/5.13 ∀ (Y : Iota), % 4.93/5.13 in Y (powerset (skS.0 5 a)) → % 4.93/5.13 ∀ (Xx : Iota), % 4.93/5.13 in Xx (skS.0 5 a) → % 4.93/5.13 in Xx (setminus (skS.0 5 a) (skS.0 6 a a_1)) → % 4.93/5.13 in Xx (setminus (skS.0 5 a) (binintersect (skS.0 6 a a_1) Y))) % 4.93/5.13 False % 4.93/5.13 Clause #75 (by clausification #[74]): ∀ (a a_1 : Iota), Eq (in (skS.0 6 a a_1) (powerset (skS.0 5 a))) True % 4.93/5.13 Clause #76 (by clausification #[74]): ∀ (a a_1 : Iota), % 4.93/5.13 Eq % 4.93/5.13 (∀ (Y : Iota), % 4.93/5.13 in Y (powerset (skS.0 5 a)) → % 4.93/5.13 ∀ (Xx : Iota), % 4.93/5.13 in Xx (skS.0 5 a) → % 4.93/5.13 in Xx (setminus (skS.0 5 a) (skS.0 6 a a_1)) → % 4.93/5.13 in Xx (setminus (skS.0 5 a) (binintersect (skS.0 6 a a_1) Y))) % 4.93/5.13 False % 4.93/5.13 Clause #77 (by superposition #[75, 70]): ∀ (a a_1 a_2 a_3 : Iota), % 4.93/5.13 Or (Eq True False) % 4.93/5.13 (Or (Eq (in a (powerset (skS.0 5 a_1))) False) % 4.93/5.13 (Or (Eq (in a_2 (skS.0 5 a_1)) False) % 4.93/5.13 (Or (Eq (in a_2 (setminus (skS.0 5 a_1) (skS.0 6 a_1 a_3))) False) % 4.93/5.13 (Eq (in a_2 (binintersect (skS.0 6 a_1 a_3) a)) False)))) % 4.93/5.13 Clause #84 (by clausification #[76]): ∀ (a a_1 a_2 : Iota), % 4.93/5.13 Eq % 4.93/5.13 (Not % 4.93/5.13 (in (skS.0 8 a a_1 a_2) (powerset (skS.0 5 a)) → % 4.93/5.13 ∀ (Xx : Iota), % 4.93/5.13 in Xx (skS.0 5 a) → % 4.93/5.13 in Xx (setminus (skS.0 5 a) (skS.0 6 a a_1)) → % 4.93/5.13 in Xx (setminus (skS.0 5 a) (binintersect (skS.0 6 a a_1) (skS.0 8 a a_1 a_2))))) % 4.93/5.16 True % 4.93/5.16 Clause #85 (by clausification #[84]): ∀ (a a_1 a_2 : Iota), % 4.93/5.16 Eq % 4.93/5.16 (in (skS.0 8 a a_1 a_2) (powerset (skS.0 5 a)) → % 4.93/5.16 ∀ (Xx : Iota), % 4.93/5.16 in Xx (skS.0 5 a) → % 4.93/5.16 in Xx (setminus (skS.0 5 a) (skS.0 6 a a_1)) → % 4.93/5.16 in Xx (setminus (skS.0 5 a) (binintersect (skS.0 6 a a_1) (skS.0 8 a a_1 a_2)))) % 4.93/5.16 False % 4.93/5.16 Clause #86 (by clausification #[85]): ∀ (a a_1 a_2 : Iota), Eq (in (skS.0 8 a a_1 a_2) (powerset (skS.0 5 a))) True % 4.93/5.16 Clause #87 (by clausification #[85]): ∀ (a a_1 a_2 : Iota), % 4.93/5.16 Eq % 4.93/5.16 (∀ (Xx : Iota), % 4.93/5.16 in Xx (skS.0 5 a) → % 4.93/5.16 in Xx (setminus (skS.0 5 a) (skS.0 6 a a_1)) → % 4.93/5.16 in Xx (setminus (skS.0 5 a) (binintersect (skS.0 6 a a_1) (skS.0 8 a a_1 a_2)))) % 4.93/5.16 False % 4.93/5.16 Clause #96 (by clausification #[87]): ∀ (a a_1 a_2 a_3 : Iota), % 4.93/5.16 Eq % 4.93/5.16 (Not % 4.93/5.16 (in (skS.0 10 a a_1 a_2 a_3) (skS.0 5 a) → % 4.93/5.16 in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) (skS.0 6 a a_1)) → % 4.93/5.16 in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) (binintersect (skS.0 6 a a_1) (skS.0 8 a a_1 a_2))))) % 4.93/5.16 True % 4.93/5.16 Clause #97 (by clausification #[96]): ∀ (a a_1 a_2 a_3 : Iota), % 4.93/5.16 Eq % 4.93/5.16 (in (skS.0 10 a a_1 a_2 a_3) (skS.0 5 a) → % 4.93/5.16 in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) (skS.0 6 a a_1)) → % 4.93/5.16 in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) (binintersect (skS.0 6 a a_1) (skS.0 8 a a_1 a_2)))) % 4.93/5.16 False % 4.93/5.16 Clause #98 (by clausification #[97]): ∀ (a a_1 a_2 a_3 : Iota), Eq (in (skS.0 10 a a_1 a_2 a_3) (skS.0 5 a)) True % 4.93/5.16 Clause #99 (by clausification #[97]): ∀ (a a_1 a_2 a_3 : Iota), % 4.93/5.16 Eq % 4.93/5.16 (in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) (skS.0 6 a a_1)) → % 4.93/5.16 in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) (binintersect (skS.0 6 a a_1) (skS.0 8 a a_1 a_2)))) % 4.93/5.16 False % 4.93/5.16 Clause #100 (by superposition #[98, 36]): ∀ (a a_1 a_2 a_3 a_4 : Iota), % 4.93/5.16 Or (Eq True False) % 4.93/5.16 (Or (Eq (in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) a_4)) True) (Eq (in (skS.0 10 a a_1 a_2 a_3) a_4) True)) % 4.93/5.16 Clause #112 (by clausification #[100]): ∀ (a a_1 a_2 a_3 a_4 : Iota), % 4.93/5.16 Or (Eq (in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) a_4)) True) (Eq (in (skS.0 10 a a_1 a_2 a_3) a_4) True) % 4.93/5.16 Clause #114 (by clausification #[77]): ∀ (a a_1 a_2 a_3 : Iota), % 4.93/5.16 Or (Eq (in a (powerset (skS.0 5 a_1))) False) % 4.93/5.16 (Or (Eq (in a_2 (skS.0 5 a_1)) False) % 4.93/5.16 (Or (Eq (in a_2 (setminus (skS.0 5 a_1) (skS.0 6 a_1 a_3))) False) % 4.93/5.16 (Eq (in a_2 (binintersect (skS.0 6 a_1 a_3) a)) False))) % 4.93/5.16 Clause #116 (by superposition #[114, 86]): ∀ (a a_1 a_2 a_3 a_4 : Iota), % 4.93/5.16 Or (Eq (in a (skS.0 5 a_1)) False) % 4.93/5.16 (Or (Eq (in a (setminus (skS.0 5 a_1) (skS.0 6 a_1 a_2))) False) % 4.93/5.16 (Or (Eq (in a (binintersect (skS.0 6 a_1 a_2) (skS.0 8 a_1 a_3 a_4))) False) (Eq False True))) % 4.93/5.16 Clause #117 (by clausification #[99]): ∀ (a a_1 a_2 a_3 : Iota), Eq (in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) (skS.0 6 a a_1))) True % 4.93/5.16 Clause #118 (by clausification #[99]): ∀ (a a_1 a_2 a_3 : Iota), % 4.93/5.16 Eq (in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) (binintersect (skS.0 6 a a_1) (skS.0 8 a a_1 a_2)))) False % 4.93/5.16 Clause #120 (by superposition #[118, 112]): ∀ (a a_1 a_2 a_3 : Iota), % 4.93/5.16 Or (Eq False True) (Eq (in (skS.0 10 a a_1 a_2 a_3) (binintersect (skS.0 6 a a_1) (skS.0 8 a a_1 a_2))) True) % 4.93/5.16 Clause #121 (by clausification #[120]): ∀ (a a_1 a_2 a_3 : Iota), Eq (in (skS.0 10 a a_1 a_2 a_3) (binintersect (skS.0 6 a a_1) (skS.0 8 a a_1 a_2))) True % 4.93/5.16 Clause #134 (by clausification #[116]): ∀ (a a_1 a_2 a_3 a_4 : Iota), % 4.93/5.16 Or (Eq (in a (skS.0 5 a_1)) False) % 4.93/5.16 (Or (Eq (in a (setminus (skS.0 5 a_1) (skS.0 6 a_1 a_2))) False) % 4.93/5.16 (Eq (in a (binintersect (skS.0 6 a_1 a_2) (skS.0 8 a_1 a_3 a_4))) False)) % 4.93/5.16 Clause #135 (by superposition #[134, 98]): ∀ (a a_1 a_2 a_3 a_4 a_5 a_6 : Iota), % 4.93/5.16 Or (Eq (in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) (skS.0 6 a a_4))) False) % 4.93/5.16 (Or (Eq (in (skS.0 10 a a_1 a_2 a_3) (binintersect (skS.0 6 a a_4) (skS.0 8 a a_5 a_6))) False) (Eq False True)) % 4.93/5.16 Clause #153 (by clausification #[135]): ∀ (a a_1 a_2 a_3 a_4 a_5 a_6 : Iota), % 4.93/5.16 Or (Eq (in (skS.0 10 a a_1 a_2 a_3) (setminus (skS.0 5 a) (skS.0 6 a a_4))) False) % 4.93/5.16 (Eq (in (skS.0 10 a a_1 a_2 a_3) (binintersect (skS.0 6 a a_4) (skS.0 8 a a_5 a_6))) False) % 4.93/5.16 Clause #155 (by superposition #[153, 117]): ∀ (a a_1 a_2 a_3 a_4 a_5 : Iota), % 4.93/5.16 Or (Eq (in (skS.0 10 a a_1 a_2 a_3) (binintersect (skS.0 6 a a_1) (skS.0 8 a a_4 a_5))) False) (Eq False True) % 4.93/5.16 Clause #156 (by clausification #[155]): ∀ (a a_1 a_2 a_3 a_4 a_5 : Iota), % 4.93/5.16 Eq (in (skS.0 10 a a_1 a_2 a_3) (binintersect (skS.0 6 a a_1) (skS.0 8 a a_4 a_5))) False % 4.93/5.16 Clause #157 (by superposition #[156, 121]): Eq False True % 4.93/5.16 Clause #158 (by clausification #[157]): False % 4.93/5.16 SZS output end Proof for theBenchmark.p %------------------------------------------------------------------------------