[semidet]assert_predicate_options(:PI, 
+Arg, +Options, ?New)false, the predicate becomes semidet and 
fails without modifications if modifications are required.
[semidet]assert_predicate_options(:PI, 
+Arg, +Options, ?New)false, the predicate becomes semidet and 
fails without modifications if modifications are required.